FB_KL6811Communication

Die Bausteine für die DALI-Befehle greifen nicht direkt auf das Prozessabbild der KL6811 zu, sondern legen die einzelnen DALI-Befehle in einem Befehlspuffer ab. Der Baustein FB_KL6811Communication liest sequenziell die DALI-Befehle aus dem Befehlspuffer aus und gibt die DALI-Befehle zu der KL6811 weiter. Hierdurch wird sichergestellt, dass nicht mehrere Bausteine gleichzeitig auf das Prozessabbild der KL6811 zugreifen.
![]() | Die meisten Bausteine besitzen den Eingang eCommandPriority, der beim Einsatz der KL6811 keine Verwendung hat. Prioritäten für die DALI-Befehle werden erst ab DALI-2 unterstützt. |
Pro KL6811 ist eine Instanz vom Baustein FB_KL6811Communication notwendig. Diese Instanz muss in einer separaten, schnelleren Task aufgerufen werden. Diese schnellere Kommunikationstask muss auch eine höhere Priorität haben als die Task in der die Bausteine für die einzelnen DALI-Befehle aufgerufen werden.
Über die Ausgänge des Bausteins kann die Auslastung des Befehlspuffers ermittelt werden. Sollten Sie feststellen, dass der Befehlspuffer regelmäßig überläuft, so sollten Sie folgende Maßnahmen in Betracht ziehen:
- Wie stark sind die einzelnen SPS-Tasks ausgelastet? TwinCAT bietet zur Analyse entsprechende Hilfsmittel an.
- Versuchen Sie die Zykluszeit der Task, in der der Baustein FB_KL6811Communication aufgerufen wird zu verringern. Der Wert sollte nicht größer als 6 ms sein, optimal sind 2 ms oder kleiner.
- Vermeiden Sie möglichst das Pollen (regelmäßiges Auslesen) von Werten. Lesen Sie nur dann Werte aus, wenn diese auch benötigt werden.
- Verteilen Sie die einzelnen DALI-Vorschaltgeräte gleichmäßig auf mehrere DALI-Linien. Da pro SPS-Zyklus mehrere DALI-Linien gleichzeitig bearbeitet werden, erhöht sich hierdurch der Datendurchsatz.
Weitere Informationen finden Sie im Kapitel Bus-Timing.
Eingänge
VAR_INPUT
bResetMaximumDemandCounter : BOOL;
bResetOverflowCounter : BOOL;
nOptions : DWORD;
bInitialise : BOOL := FALSE;
bDisableInternalPowerSupply : BOOL := FALSE;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bResetMaximumDemandCounter | BOOL | Eine positive Flanke setzt den gespeicherten Wert für die maximale Auslastung des Befehlspuffers, nBufferMaximumDemandMeter (0…100 %), zurück.. |
bResetOverflowCounter | BOOL | Eine positive Flanke setzt den gespeicherten Wert für die Anzahl der Überläufe des Befehlspuffers, nBufferOverflowCounter, zurück. |
nOptions | DWORD | Reserviert für zukünftige Erweiterungen. |
bInitialise | BOOL | Durch eine positive Flanke an diesem Eingang wird das Konfigurieren der Busklemme gestartet. Das Initialisieren wird auch beim Starten der Steuerung automatisch ausgeführt. Während dieser Zeit werden keine DALI-Befehle bearbeitet. |
bDisableInternalPowerSupply | BOOL | Definiert die Betriebsart des internen DALI-Netzteils. Der Wert wird durch eine positive Flanke am Eingang bInitialise in die Klemme geschrieben und dort persistent abgespeichert. |
Ein-/Ausgänge
VAR_IN_OUT
stInData : ST_KL6811InData;
stOutData : ST_KL6811OutData;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
stInData | Struktur im Eingangsprozessabbild der KL6811. Sie dient zur Kommunikation von der KL6811 zur SPS. | |
stOutData | Struktur im Ausgangsprozessabbild der KL6811. Sie dient zur Kommunikation von der SPS zur KL6811. |
Ausgänge
VAR_OUTPUT
bError : BOOL;
ipResultMessage : I_TcMessage;
bBusy : BOOL;
nBufferDemandMeter : BYTE;
nBufferMaximumDemandMeter : BYTE;
nBufferOverflowCounter : UINT;
bCollisionErrorFC : BOOL;
bCollisionErrorBC : BOOL;
bPowerSupplyError : BOOL;
bInitialising : BOOL;
nTerminalDescription : WORD;
nFirmwareVersion : WORD;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bError | BOOL | Der Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung ein Fehler aufgetreten ist. Weitere Informationen zu dem Fehler können über die Variable ipResultMessage abgefragt werden. Der Ausgang wird wieder auf FALSE gesetzt, sobald bBusy auf TRUE geht. |
ipResultMessage | I_TcMessage | Interface-Pointer (siehe Fehlerauswertung) mit dem detaillierte Informationen über die Abarbeitung des Bausteins abgefragt werden können (siehe Laufzeitmeldungen). Der Interface-Pointer ist gültig, nachdem bBusy von TRUE auf FALSE gewechselt hat. |
bBusy | BOOL | Der Ausgang wird gesetzt, sobald die Ausführung der DALI-Befehle gestartet wurde und bleibt so lange aktiv, bis alle DALI-Befehle abgearbeitet wurden. |
nBufferDemandMeter | BYTE | Auslastung des Befehlspuffers (0…100 %). |
nBufferMaximumDemandMeter | BYTE | Bisher maximal erreichte Auslastung des Befehlspuffers (0…100 %). Über den Eingang bResetMaximumDemandCounter kann der Zähler wieder zurückgesetzt werden. |
nBufferOverflowCounter | UINT | Bisherige Anzahl der Überläufe des Befehlspuffers. Über den Eingang bResetOverflowCounter kann der Zähler wieder zurückgesetzt werden. |
bCollisionErrorFC | BOOL | Ist der Ausgang TRUE, so wurde eine DALI-Kollision auf dem Hin-Kanal (Forward Channel) erkannt. Das kann bedeuten, dass während der Übertragung eines DALI-Frames eine Kollision mit den Sendedaten eines anderen DALI-Steuergeräts erkannt wurde. Der Ausgang wird automatisch wieder auf FALSE gesetzt, sobald bei der Übertragung keine Kollision auf dem Hin-Kanal aufgetreten ist. |
bCollisionErrorBC | BOOL | Ist der Ausgang TRUE, so wurde eine DALI-Kollision auf dem Rück-Kanal (Backward Channel) erkannt. Das kann bedeuten, dass während der Übertragung eines DALI-Frames eine Kollision mit den Sendedaten eines anderen DALI-Geräts erkannt wurde. Der Ausgang wird automatisch wieder auf FALSE gesetzt, sobald bei der Übertragung keine Kollision auf dem Rück-Kanal aufgetreten ist. |
bPowerSupplyError | BOOL | Ist der Ausgang TRUE, so ist bei der Nutzung des internen DALI-Netzteils der Busklemme eine Überlastung erkannt worden (Busunterspannung). |
bInitialising | BOOL | Während der Initialisierung der Busklemme wird der Ausgang gesetzt und bleibt so lange aktiv, bis die Initialisierung abgeschlossen wurde. Das Initialisieren wird auch beim Starten der Steuerung automatisch ausgeführt. Während dieser Zeit werden keine DALI-Befehle bearbeitet. |
nTerminalDescription | WORD | Enthält die Klemmenbezeichnung (z. B. 6811). Diese Information ist in Register 8 der Busklemme enthalten. |
nFirmwareVersion | WORD | Enthält die Version der Firmware. Diese Information ist in Register 9 der Busklemme enthalten. |
Eigenschaften
Name | Typ | Zugriff | Initialwert | Beschreibung |
---|---|---|---|---|
ipDALICommunication | I_DALICommunication | Get,Set | 0 | Interface-Pointer auf den Kommunikationsbaustein (siehe Übergabe der Referenz auf den Kommunikationsbaustein). |
Voraussetzungen
Entwicklungsumgebung | Erforderliche SPS-Bibliothek |
---|---|
TwinCAT ab v3.1.4024.12 | Tc3_DALI ab v3.5.0.0 |