FB_KL6821Communication

FB_KL6821Communication 1:

Die Bausteine für die DALI-Befehle greifen nicht direkt auf das Prozessabbild der KL6821 zu, sondern legen die einzelnen DALI-Befehle in einem Befehlspuffer ab. Der Baustein FB_KL6821Communication liest sequenziell die DALI-Befehle aus diesem Befehlspuffer aus und gibt die DALI-Befehle zu der KL6821 weiter. Hierdurch wird sichergestellt, dass nicht mehrere Bausteine gleichzeitig auf das Prozessabbild der KL6821 zugreifen.

Der Baustein liest ebenfalls die Ereignisse der DALI-Steuergeräte aus der KL6821 aus und legt diese in einer speziellen Tabelle ab. Mit den Bausteinen FB_DALIGetInputNotification und FB_DALIGetPowerCycleNotification werden aus dieser Tabelle die gewünschten Ereignisse ausgefiltert.

Pro KL6821 muss eine Instanz vom Baustein FB_KL6821Communication angelegt werden. 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_KL6821Communication 2: Eingänge

VAR_INPUT
  bResetMaximumDemandCounter : BOOL;
  bResetOverflowCounter      : BOOL;
  nOptions                   : DWORD := 0;
  bResetInactiveProcessImage : BOOL;
  bInitialise                : BOOL := FALSE;
  eCommandKBusWatchdog       : E_DALIConfigurationCommand := E_DALIConfigurationCommand.DoNothing;
  eCommandDI1RisingEdge      : E_DALIConfigurationCommand := E_DALIConfigurationCommand.Off;
  eCommandDI1FallingEdge     : E_DALIConfigurationCommand := E_DALIConfigurationCommand.DoNothing;
  eCommandDI2RisingEdge      : E_DALIConfigurationCommand := E_DALIConfigurationCommand.RecallMaxLevel;
  eCommandDI2FallingEdge     : E_DALIConfigurationCommand := E_DALIConfigurationCommand.DoNothing;
  bDoNotLockProcessImage     : 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.

bResetInactiveProcessImage

BOOL

Eine positive Flanke hebt die Sperrung des Prozessabbildes der Klemme wieder auf. Der Ausgang bProcessImageInactive wird wieder auf FALSE gesetzt. Die Sperrung wird aktiviert, sobald einer der beiden digitalen Eingänge an der Klemme betätigt wurde und der Eingangsparameter bDoNotLockProcessImage FALSE ist.

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.

eCommandKBusWatchdog

E_DALIConfigurationCommand

Definiert den DALI-Befehl, der versendet wird, sobald die Busklemme über den K-Bus nicht mehr angesprochen wird. Der Wert wird durch eine positive Flanke am Eingang bInitialise in die Klemme geschrieben und dort persistent abgespeichert.

eCommandDI1RisingEdge, eCommandDI2RisingEdge

E_DALIConfigurationCommand

Definiert den DALI-Befehl, der versendet wird, sobald am jeweiligen Eingang der Busklemme eine steigende Flanke erkannt wird. Der Wert wird durch eine positive Flanke am Eingang bInitialise in die Klemme geschrieben und dort persistent abgespeichert.

eCommandDI1FallingEdge, eCommandDI2FallingEdge

E_DALIConfigurationCommand

Definiert den DALI-Befehl, der versendet wird, sobald am jeweiligen Eingang der Busklemme eine fallende Flanke erkannt wird. Der Wert wird durch eine positive Flanke am Eingang bInitialise in die Klemme geschrieben und dort persistent abgespeichert.

bDoNotLockProcessImage

BOOL

Definiert, ob durch das Betätigen der digitalen Eingänge das Prozessabbild für die SPS nicht gesperrt wird (siehe auch bInactiveProcessImage). Der Wert wird durch eine positive Flanke am Eingang bInitialise in die Klemme geschrieben und dort persistent abgespeichert.

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_KL6821Communication 3: Ein-/Ausgänge

VAR_IN_OUT
  stInData                : ST_KL6821InData;
  stOutData               : ST_KL6821OutData;
END_VAR

Name

Typ

Beschreibung

stInData

ST_KL6821InData

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

stOutData

ST_KL6821OutData

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

FB_KL6821Communication 4: Ausgänge

VAR_OUTPUT
  bError                    : BOOL;
  ipResultMessage           : I_TcMessage;
  bBusy                     : BOOL;
  nBufferDemandMeter        : BYTE;
  nBufferMaximumDemandMeter : BYTE;
  nBufferOverflowCounter    : UINT;
  bDigitalInputnActive      : BOOL;
  bProcessImageInactive     : BOOL;
  bCollisionError           : BOOL;
  bPowerSupplyError         : BOOL;
  bShortCircuit             : 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.

bDigitalInput1Active, bDigitalInput2Active

BOOL

Einer der digitalen Eingänge an der Klemme wurde betätigt oder ist betätigt (siehe auch Klemmendokumentation). Wenn der Eingang bDoNotLockProcessImage nicht gesetzt ist, so wird der Ausgang bProcessImageInactive gesetzt und es können keine weiteren DALI-Befehle über die Busklemme versendet werden.

bProcessImageInactive

BOOL

Einer der beiden digitalen Eingänge wurde an der Busklemme betätigt und bDoNotLockProcessImage ist mit FALSE initialisiert. Es können keine weiteren DALI-Befehle aus der SPS über die Busklemme versendet werden. Über den Eingang bResetInactiveProcessImage kann die Sperrung wieder freigeschaltet werden.

bCollisionError

BOOL

Es wurde eine Datenkollision auf dem DALI-Bus erkannt, während ein DALI-Befehl versendet wurde.

bPowerSupplyError

BOOL

Bei Nutzung des internen DALI-Netzteils: Fehler Netzteil erkannt.

bShortCircuit

BOOL

Es fehlt die 24 V DC Versorgungsspannung an den Anschlüssen 1 und 5 der KL6821, oder es wurde ein Kurzschluss auf dem DALI-Bus erkannt.

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. 6821). 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_KL6821Communication 5: 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