FB_DALIV2LightControl

FB_DALIV2LightControl 1:

Der Funktionsbaustein FB_DALIV2LightControl dient zur tageslichtabhängigen Lichtsteuerung mit bis zu 30 Stützpunkten.

Kernstück dieses Funktionsbausteins ist eine Eingangs-/Stellgrößen-Tabelle von 30 Elementen mit einer Schwellwertumschaltung. Erreicht der Istwert der Helligkeit den Bereich eines Stützpunktes (arrControlTable[n].nActualValue-arrControlTable[n].nSwitchRange/2 ... arrControlTable[n].nActualValue+arrControlTable[n].nSwitchRange/2) so springt die Stellgröße auf den entsprechenden WertarrControlTable[n].nControlValue (siehe Diagramm). Daran angekoppelt ist ein Rampenbaustein, der die Stellgröße in der Zeit tRampTime anfährt. Beim Einschalten mit einer positiven Flanke an bOn wird das Licht jedoch zunächst auf die nächstgelegene Stellgröße direkt geschaltet. Erst dann wird die Steuerung aktiviert. Während die Steuerung aktiv ist, kann jederzeit mit einer positiven Flanke an bOn "nachgestartet" und damit das Licht auf die nächstgelegene Stellgröße direkt gesteuert werden. Eine positive Flanke an bOff schaltet alle angesteuerten Lampen direkt ab.

FB_DALIV2LightControl 2:

Es muss nicht der ganze Bereich der Tabelle genutzt werden. Das erste Tabellenelement, welches als Tabellenende nSwitchRange eine 0 hat, wird als Beginn des unbenutzten Bereiches angesehen.

Anmerkung zum Parameter nMasterDevAddr

Das DALI-System bietet die Möglichkeit, Lampen nicht nur einzeln zu steuern, sondern diese auch gruppenweise oder mit Sammelbefehlen anzusprechen. Da die einzelnen Geräte Teilnehmer von verschiedenen Gruppen sein können, kann es sein, dass die einzelnen Lampen vor einer Gruppen- bzw. Sammelansteuerung verschiedene Helligkeitszustände haben. Um dennoch eine Aussage darüber treffen zu können, ob die Lampen nun ein- oder ausgeschaltet werden sollen, wird jeder Gruppe ein Führungsgerät (Master-Device) zugeordnet, nach dessen Zustand sich die restlichen Geräte richten. Soll mit dem Baustein eine einzelne Lampe angesteuert werden, eAddrType = eAddrTypeShort, so braucht kein Master-Device angegeben werden. Der Parameter nMasterDevAddr ist in diesem Fall ohne Bedeutung.

FB_DALIV2LightControl 3: Eingänge

VAR_INPUT
  bEnable                    : BOOL := TRUE;
  bOn                        : BOOL;
  bOff                       : BOOL;
  nActualValue               : UINT;
  tRampTime                  : TIME := t#30s;
  arrControlTable            : ARRAY[1..30] OF ST_DALIV2ControlTable;
  nOptions                   : DWORD := 0;
  nAddr                      : BYTE := 0;
  eAddrType                  : E_DALIV2AddrType := eDALIV2AddrType  Short;
  nMasterDevAddr             : BYTE := 0;
  tCycleActualLevelMasterDev : TIME := t#0s;
END_VAR

Name

Typ

Beschreibung

bEnable

BOOL

Solange dieser Eingang auf TRUE steht, sind die Eingänge bOn und bOff aktiv. Ein negativer Zustand deaktiviert die Eingänge und setzt den Baustein nach Abarbeitung der letzten notwendigen DALI-Befehle zurück. Es werden dann keine DALI-Befehle außer die zyklische Abfrage der Helligkeit des Mastergerätes mehr ausgegeben.

bOn

BOOL

Eine steigende Flanke schaltet die angesteuerten Lampen direkt auf die nächstgelegene Stellgröße.

bOff

BOOL

Eine steigende Flanke schaltet die angesteuerten Lampen unmittelbar aus.

nActualValue

UINT

Istwert der Helligkeit

tRampTime

TIME

Zeitdauer, in der die Stellgröße auf den nächsten Wert gesteuert wird (voreingestellter Wert: 30 s).

arrControlTable

ARRAY OF ST_DALIV2ControlTable

Eingangs-/Stellgrößen-Tabelle: arrControlTable[1] bis arrControlTable[30] des Typen ST_DALIV2ControlTable

nOptions

DWORD

Reserviert für zukünftige Entwicklungen.

nAddr

BYTE

Adresse des Einzelgerätes bei Einzelansteuerung oder der Gruppe bei Gruppenansteuerung

nMasterDevAddr

BYTE

Adresse des Master-Gerätes (Referenzgerät) bei Gruppen- und Sammelschaltungen

eAddrType

E_DALIV2AddrType

Kurzadresse, Gruppenadresse oder Sammelruf (Broadcast)

tCycleActualLevelMasterDev

TIME

Zykluszeit, mit der im Hintergrund die aktuelle Stellgröße ausgelesen wird (siehe ACTUAL DIM LEVEL). Damit das Dimmen der Lampen nicht gestört wird, wird das Auslesen immer in der niedrigsten Priorität durchgeführt. Wird der Wert auf 0 gesetzt, so wird das Auslesen gesperrt.

FB_DALIV2LightControl 4: Ein-/Ausgänge

VAR_IN_OUT
  stCommandBuffer : ST_DALIV2CommandBuffer;
END_VAR

Name

Typ

Beschreibung

stCommandBuffer

ST_DALIV2CommandBuffer

Verweis auf die interne Struktur zur Kommunikation mit FB_KL6811Communication (KL6811) oder FB_KL6821Communication (KL6821).

FB_DALIV2LightControl 5: Ausgänge

VAR_OUTPUT
  nActualLevelMasterDev : BYTE;
  bBusy                 : BOOL;
  bError                : BOOL;
  nErrorId              : UDINT;
END_VAR

Name

Typ

Beschreibung

nActualLevelMasterDev

BYTE

Aktueller Ausgabewert des Master-Gerätes (bei eAddrType = eAddrTypeShort immer des jeweilig angesprochenen Gerätes)

bBusy

BOOL

Bei der Aktivierung des Funktionsbausteins wird der Ausgang gesetzt und bleibt so lange aktiv, bis der Befehl abgearbeitet wurde.

bError

BOOL

Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrorId enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.

nErrorId

UDINT

Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt (siehe Fehlercodes).

Voraussetzungen

Entwicklungsumgebung

Einzubindende SPS-Bibliothek

TwinCAT ab v3.1.4020.14

Tc2_DALI ab v3.4.3.0