FB_DALIV2Communication

FB_DALIV2Communication 1:

Die Bausteine 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 Baustein 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 Bausteine 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 Bausteinen gibt, können Sie beeinflussen, mit welcher Priorität der jeweilige DALI-Befehl von dem Baustein 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 Baustein FB_DALIV2Communication() und eine Variable vom Typ ST_DALIV2CommandBuffer. Der Baustein FB_DALIV2Communication() sollte, wenn möglich, in einer separaten, schnelleren Task aufgerufen werden.

Über die Ausgänge des Bausteins 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:

  • Wie stark sind die einzelnen SPS-Task ausgelastet? Der TwinCAT System Manager bietet zur Analyse entsprechende Hilfsmittel an.
  • Versuchen Sie die Zykluszeit der Task, in der der Baustein FB_DALIV2Communication() aufgerufen wird, zu verringern. Der Wert sollte nicht größer als 6ms sein, optimal sind 2ms.
  • Überprüfen Sie die Zykluszeit der SPS-Task, in der die Bausteine für die einzelnen DALI-Befehle aufgerufen werden. Dieser Werte sollte zwischen 10ms und 60ms liegen.
  • 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 Vorschaltgeräte gleichmäßig auf mehrere DALI-Linien. Da pro SPS-Zyklus mehrere DALI-Linien gleichzeitig bearbeitet werden, erhöht sich hierdurch der Datendurchsatz insgesamt.

VAR_INPUT

bResetMaximumDemandCounter : BOOL;
bResetOverflowCounter      : BOOL;

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

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

VAR_OUTPUT

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

arrBufferDemandMeter: Belegung des jeweiligen Puffers (0 - 100%).

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

arrBufferOverflowCounter: Bisherige Anzahl der Pufferüberläufe.

bLineIsBusy: Solange der Baustein FB_DALIV2Communication() aktiv ist, ist dieser Ausgang gesetzt.

bLineIsInitialized: Wird der Baustein 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.

VAR_IN_OUT

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

stDALIInData: Struktur im Eingangsprozessabbild der KL6811. Sie dient zur Kommunikation von der KL6811 zur SPS (siehe ST_DALIV2InData).

stDALIOutData: Struktur im Ausgangsprozessabbild der KL6811. Sie dient zur Kommunikation von der SPS zur KL6811 (siehe ST_DALIV2OutData).

stCommandBuffer: Verweis auf die Struktur zur Kommunikation (Puffer) mit dem FB_DALIV2Communication()-Baustein.

Voraussetzungen

Entwicklungsumgebung

erforderliche SPS-Bibliothek

TwinCAT ab v3.1.4020.14

Tc2_DALI ab v3.4.3.0