FB_KL6811Communication

FB_KL6811Communication 1:

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.

FB_KL6811Communication 2:

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:

Weitere Informationen finden Sie im Kapitel Bus-Timing.

FB_KL6811Communication 3: 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.

FB_KL6811Communication 4: Ein-/Ausgänge

VAR_IN_OUT
  stInData                : ST_KL6811InData;
  stOutData               : ST_KL6811OutData;
END_VAR

Name

Typ

Beschreibung

stInData

ST_KL6811InData

Struktur im Eingangsprozessabbild der KL6811. Sie dient zur Kommunikation von der KL6811 zur SPS.

stOutData

ST_KL6811OutData

Struktur im Ausgangsprozessabbild der KL6811. Sie dient zur Kommunikation von der SPS zur KL6811.

FB_KL6811Communication 5: 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.

FB_KL6811Communication 6: 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