FB_DALIV2Communication

FB_DALIV2Communication 1:

Die Funktionsbausteine für die DALI-Befehle greifen nicht direkt auf das Prozessabbild der KL6811 zu, sondern legen die einzelnen DALI-Befehle in drei verschiedene Puffer ab. Der FunktionsFunktionsbaustein FB_DALIV2Communication liest sequentiell die DALI-Befehle aus diesen drei Puffern aus und gibt die DALI-Befehle zu der KL6811 weiter. So wird sichergestellt, dass nicht mehrere Funktionsbausteine gleichzeitig auf das Prozessabbild der KL6811 zugreifen. Jeder dieser drei Puffer wird mit einer anderen Priorität (hoch, mittel oder niedrig) abgearbeitet. Durch den Parameter eCommandPriority, den es bei den meisten Funktionsbausteinen gibt, können Sie beeinflussen, mit welcher Priorität der jeweilige DALI-Befehl von dem FunktionsFunktionsbaustein FB_DALIV2Communication bearbeitet werden soll.

Die Puffer, in denen die DALI-Befehle abgelegt werden, sind alle in einer Variablen vom Typ ST_DALIV2CommandBuffer enthalten. Pro KL6811 gibt es eine Instanz vom FunktionsFunktionsbaustein FB_DALIV2Communication und eine Variable vom Typ ST_DALIV2CommandBuffer. Der FunktionsFunktionsbaustein FB_DALIV2Communication sollte, wenn möglich, in einer separaten, schnelleren Task aufgerufen werden.

Über die Ausgänge des FunktionsFunktionsbausteins kann ermittelt werden, wie stark die Puffer ausgelastet sind. Hierzu werden drei Arrays ausgegeben, bei dem jedes Element (0, 1 oder 2) für einen der drei Puffer (hoch, mittel oder niedrig) steht. Sollten Sie feststellen, dass einer der drei Puffer regelmäßig überläuft, so sollten Sie folgende Maßnahmen in Betracht ziehen:

FB_DALIV2Communication 2: Eingänge

VAR_INPUT
  bResetMaximumDemandCounter : BOOL;
  bResetOverflowCounter      : BOOL;
END_VAR

Name

Typ

Beschreibung

bResetMaximumDemandCounter

BOOL

Eine positive Flanke setzt den gespeicherten Wert der maximalen Befehlspuffer-Auslastung, arrBufferMaximumDemandMeter (0 - 100%, siehe Ausgänge) zurück.

bResetOverflowCounter

BOOL

Eine positive Flanke setzt den gespeicherten Wert der Anzahl der Befehlspuffer-Überläufe, arrBufferOverflowCounter (siehe Ausgänge) zurück.

FB_DALIV2Communication 3: Ein-/Ausgänge

VAR_IN_OUT
  stDALIInData    : ST_DALIV2InData;
  stDALIOutData   : ST_DALIV2OutData;
  stCommandBuffer : ST_DALIV2CommandBuffer;
END_VAR

Name

Typ

Beschreibung

stDALIInData

ST_DALIV2InData

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

stDALIOutData

ST_DALIV2OutData

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

stCommandBuffer

ST_DALIV2CommandBuffer

Verweis auf die Struktur zur Kommunikation (Puffer) mit dem FB_DALIV2Communication-Funktionsbaustein.

FB_DALIV2Communication 4: Ausgänge

VAR_OUTPUT
  arrBufferDemandMeter        : ARRAY [0..2] OF BYTE;
  arrBufferMaximumDemandMeter : ARRAY [0..2] OF BYTE;
  arrBufferOverflowCounter    : ARRAY [0..2] OF UINT;
  bLineIsBusy                 : BOOL;
  bLineIsInitialized          : BOOL;
END_VAR

Name

Typ

Beschreibung

arrBufferDemandMeter

ARRAY

Belegung des jeweiligen Puffers (0 - 100%)

arrBufferMaximumDemandMeter

ARRAY

Bisherige maximale Auslastung des jeweiligen Puffers (0 - 100%)

arrBufferOverflowCounter

ARRAY

Bisherige Anzahl der Pufferüberläufe

bLineIsBusy

BOOL

Solange der Funktionsbaustein FB_DALIV2Communication aktiv ist, ist dieser Ausgang gesetzt.

bLineIsInitialized

BOOL

Wird der Funktionsbaustein das erste Mal aufgerufen (z. B. beim Starten der Steuerung), so wird eine Initialisierung durchgeführt. Während dieser Zeit können keine DALI-Befehle bearbeitet werden.

Voraussetzungen

Entwicklungsumgebung

Einzubindende SPS-Bibliothek

TwinCAT ab v3.1.4020.14

Tc2_DALI ab v3.4.3.0