FB_DALIV2Dimmer1Switch

FB_DALIV2Dimmer1Switch 1:

Der Funktionsbaustein FB_DALIV2Dimmer1Switch schaltet und dimmt eine einzelne DALI-Lampe, eine DALI-Gruppe oder eine komplette DALI-Line über einen Taster.

Bedienung über den Eingang bSwitchDimm

Durch ein kurzes Signal am Eingang bSwitchDimm, wird das Licht ein- oder ausgeschaltet. Liegt das Signal länger als tSwitchOverTime (empfohlener Richtwert: 200 ms) an, so wird in den Dimmermodus umgeschaltet. Das Ausgangssignal fährt zyklisch zwischen nMinLevelMasterDev und nMaxLevelMasterDev. Um den maximalen oder minimalen Wert besser einstellen zu können, verweilt das Ausgangssignal für die Zeit tCycleDelay auf dem minimalen bzw. maximalen Wert. Wird das Signal wieder weggenommen, so bleibt das aktuelle Ausgangssignal anstehen. Durch einen erneuten Impuls auf den Eingang, wird der Ausgang auf 0 gesetzt. Wird im Dimmermodus das Signal bSwitchDimm kurzzeitig weggenommen, so ändert der Baustein seine Dimmrichtung.

Bedienung über die Eingänge bOn und bOff

Wird eine positive Flanke an den Eingängen bOn oder bOff angelegt, so wird das Licht direkt ein- oder ausgeschaltet. Beim Ausschalten wird der Ausgangswert auf 0 gesetzt. Das Verhalten beim Einschalten kann durch die Memoryfunktion beeinflusst werden (siehe unten).

Bedienung über die Eingänge bSetDimmValue und nDimmValue

Ändert sich der Wert nDimmValue, so werden die angesprochenen Geräte direkt auf diesen Helligkeitswert gesteuert. Wichtig ist hierbei, dass sich der Wert ändert. Durch eine Änderung auf den Wert 0, wird die Beleuchtung ausgeschaltet. Durch eine positive Flanke an den Eingang bSetDimmValue wird der Wert nDimmValue direkt an den Ausgang ausgegeben. Das direkte Ändern des Ausgangs kann durch ein statisches 1-Signal am Eingang bSetDimmValue unterdrückt werden. Hierdurch kann ein Wert am Eingang nDimmValue angelegt werden, der erst bei der nächsten positiven Flanke, von bSetDimmValue an den Ausgang übergeben wird.

Mit Hilfe der Eingänge bSetDimmValue und nDimmValue können z.B. verschiedene Beleuchtungsszenarien realisiert werden. Das direkte Setzen des Ausgangs, mit Hilfe von nDimmValue, kann dazu benutzt werden, um bestimmte Helligkeiten anzufahren. Entweder direkt oder durch kontinuierliches Verändern des Wertes. nDimmValue muss einen Wert zwischen nMinLevelMasterDev und nMaxLevelMasterDev haben. Ausnahme ist der Wert 0. Liegt der Wert außerhalb des Bereichs, so wird der Ausgangswert auf die obere, bzw. untere Grenze begrenzt.

Memoryfunktion

Beim Einschalten muss unterschieden werden, ob die Memoryfunktion (Eingang bMemoryModeOn) aktiv ist oder nicht. Ist die Memoryfunktion aktiv, so wird beim Einschalten der zuletzt eingestellte Wert als Helligkeitswert übernommen. Ist die Memoryfunktion nicht aktiv, so wird den angesprochenen Geräten ein Helligkeitswert zugewiesen, der über den Parameter nOnValueWithoutMemoryMode vorgegeben wird. Hierbei ist es gleichgültig, ob das Licht über den Eingang bOn oder über den Eingang bSwitchDimm geschaltet wird. Zu beachten ist, dass der Parameter nOnValueWithoutMemoryMode zwischen nMinLevelMasterDev und nMaxLevelMasterDev liegen muss. Ist dieses nicht der Fall, so wird der Ausgangswert auf die untere bzw. obere Grenze angepasst.

Anmerkung zum Parameter tSwitchOverTime

Wird für den Parameter tSwitchOverTime eine Dauer von 0 vorgegeben, so kann mit dem Eingang bSwitchDimm das Licht nur gedimmt werden. Ein Ein-/Ausschalten ist nur mit den Eingängen bOn und bOff möglich.

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_DALIV2Dimmer1Switch 2: Eingänge

VAR_INPUT
  bSwitchDimm                : BOOL;
  bOn                        : BOOL;
  bOff                       : BOOL;
  bSetDimmValue              : BOOL;
  nDimmValue                 : BYTE;
  tSwitchOverTime            : TIME := t#400ms;
  tCycleDelay                : TIME := t#500ms;
  bMemoryModeOn              : BOOL := FALSE;
  nOnValueWithoutMemoryMode  : BYTE := 254;
  nAddr                      : BYTE := 0;
  eAddrType                  : E_DALIV2AddrType := eDALIV2AddrTypeShort;
  nMasterDevAddr             : BYTE := 0;
  nMinLevelMasterDev         : BYTE := 126;
  nMaxLevelMasterDev         : BYTE := 254;
  tCycleActualLevelMasterDev : TIME := t#0s;
END_VAR

Name

Typ

Beschreibung

bSwitchDimm

BOOL

Schaltet oder dimmt die angesprochenen Geräte.

bOn

BOOL

Schaltet die angesprochenen Geräte auf den letzten Ausgangswert oder auf den Wert nOnValueWithoutMemoryMode.

bOff

BOOL

Schaltet die angesprochenen Geräte aus (Wert 0).

bSetDimmValue

BOOL

Eine positive Flanke an diesem Eingang setzt die angesprochenen Geräte direkt auf den Helligkeitswert, der am Eingang nDimmValue ansteht. Ändert sich der Wert nDimmValue, so wird der Helligkeitswert direkt auf den geänderten Wert eingestellt, wenn der Eingang bSetDimmValue auf FALSE steht.

nDimmValue

BYTE

siehe bSetDimmValue

tSwitchOverTime

TIME

Umschaltzeit zwischen Licht ein/aus und Licht dimmen für den Eingang bSwitchDimm

tCycleDelay

TIME

Wartezeit, wenn der Min- bzw. Max-Wert erreicht ist.

bMemoryModeOn

BOOL

Schaltet auf Memoryfunktion um, sodass beim Einschalten der vorherige Wert an den Ausgang geschrieben wird.

nOnValueWithoutMemoryMode

BYTE

Einschaltwert, wenn die Memoryfunktion nicht eingeschaltet ist.

nAddr

BYTE

Adresse eines Teilnehmers oder einer Gruppe

eAddrType

E_DALIV2AddrType

Kurzadresse, Gruppenadresse oder Sammelruf (Broadcast)

nMasterDevAddr

BYTE

Adresse des Master-Gerätes bei Gruppen- und Sammelschaltungen

nMinLevelMasterDev

BYTE

Minimalwert des Master-Gerätes

nMaxLevelMasterDev

BYTE

Maximalwert des Master-Gerätes

tCycleActualLevelMasterDev

TIME

Zykluszeit, mit der im Hintergrund der aktuelle Istwert 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_DALIV2Dimmer1Switch 3: 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_DALIV2Dimmer1Switch 4: 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