FB_BA_DALILgtActr
Funktionsbaustein zum Ansteuern eines DALI-Lichtaktors
Funktionsbeschreibung
Der Baustein empfängt seine Kommandos über das Befehlstelegramm stLgtCmd.
Als Licht-Ansteuerungsbaustein für das DALI-Subsystem besitzt er als IN-OUT-Variable eine Referenz auf die Befehlsspeicher-Struktur stDALICmdBuf.
Ein-/Ausgänge
VAR_INPUT
byShrtAdr : BYTE;
byGrpAdr : BYTE;
eMod : BOOL;
lrSttupCtrlVal : LREAL;
lrMinCtrlVal : LREAL;
lrMaxCtrlVal : LREAL;
lrLgtOffset : LREAL;
uiDimTi : UINT;
uiBlinkTi : UINT;
uiOffDly : UINT;
uiPollActLgtLvl : UINT;
bReinit : BOOL;
stLgtCmd : ST_BA_LgtCmd;
byShrtAdr : Kurzadresse des anzusprechenden DALI-Vorschaltgeräts. Diese Adresse muss im gültigen Bereich von 0..63 sein, da der Baustein ein vorhandenes Vorschaltgerät braucht um die Status abzufragen. Bei einer ungültigen Adresse wird der Baustein nicht ausgeführt und ein entsprechender Fehlercode ausgegeben. Die Kurzadresse bezieht sich auf die DALI-Befehle, welche sich durch die Eingänge an diesem Baustein ergeben:
- lrSttupCtrlVal (Lichtwert nach Neustart)
- lrMinCtrlVal (Setzen minimaler Lichtausgabewert)
- lrMaxCtrlVal (Setzen maximaler Lichtausgabewert)
- uiDimTi (Definieren der Dimmrampe -> Änderung FadeRate)
byGrpAdr: Gruppenadresse. Wird nur berücksichtigt, wenn das Vorschaltgerät durch diesen Baustein als Master betrieben wird: eMod=eBA_DALIModGrpMst oder eMod=eBA_DALIModGrpSgl.
Auch wenn dieser Baustein als Master eine Gruppe ansteuern sollte, ist in jedem Fall die Kurzadresse des Masters unter byShrtAdr einzutragen, da aus dem entsprechenden Vorschaltgerät Daten stellvertretend für die ganze Gruppe ausgelesen werden. |
eMod: Auswahl über das Einzel-/Gruppen bzw. Master-/Slaveverhalten des Bausteins, siehe E_BA_DALIMod.
lrSttupCtrlVal: Lichtwert nach Neustart
lrMinCtrlVal: Minimaler Lichtausgabewert. [0..100%]. Eine Änderung am Bausteineingang bewirkt eine Umparametrierung (Kurzadresse) im Vorschaltgerät. Dort wird es nach unten hin auf den physikalischen Min-Wert und nach oben hin auf den Maximalwert begrenzt.
lrMaxCtrlVal: Maximaler Lichtausgabewert. [0..100%]. Eine Änderung am Bausteineingang bewirkt eine Umparametrierung (Kurzadresse) im Vorschaltgerät. Dort wird es nach unten hin auf den physikalischen Min-Wert begrenzt.
lrLgtOffset: Möglichkeit den Helligkeitswert zu erhöhen oder zu erniedrigen. Dies kann in einer Lampen-Gruppenschaltung bei den Leuchten sinnvoll sein, die in der Nähe von Tageslicht liegen und weniger hell sein müssen, als die Lampen, welche die dunklen Bereiche des Raumes ausleuchten. Der Lichtwert kann durch diesen Parameter jedoch nicht über lrMaxCtrlVal oder unter lrMinCtrlVal gesteuert werden.
Dieser Offset wirkt sich nur auf Befehle aus, welche über die Kommandostruktur als bSetCtrlValDct an den Baustein gelangen.
udiDimTi: Dimmrampe [s]: Zeit in der von 0 auf 100% gedimmt wird. Wird bausteinintern auf eine DALI-FadeRate umgerechnet und im Vorschaltgerät abgespeichert.
uiBlinkTi / uiOffDly: Mit diesen beiden Zeiten [ms] lässt sich eine Ausschaltwarnung, beispielsweise für eine Treppenhausbeleuchtung erzielen. Zu dem Zeitpunkt, an dem die Leuchte normalerweise abschaltet kommen diese beiden Intervalle zusätzlich zum Tragen: für die Zeit uiBlinkTi [s] wird das Licht ausgeschaltet und danach für die Zeit uiOffDly [s] noch einmal eingeschaltet.
uiPollActLgtLvl: Zykluszeit [s], mit der im Hintergrund der aktuelle Istwert (ACTUAL DIM LEVEL) ausgelesen wird. 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. Zusätzlich zum aktuellen Lichtwert wird auch das Statusbyte des Vorschaltgeräts ausgelesen und an den Ausgang byDALIDevSta geschrieben.
bReInit: Flankengesteuerter Eingang: Startet die Initialisierung des Bausteins erneut.
stLgtCmd: Befehlstelegramm vom Typ ST_BA_LgtCmd.
VAR_OUTPUT
lrActlLgtLvl : LREAL;
byActlLgtLvl : BYTE;
bLgt : BOOL;
lrActlMinCtrlVal : LREAL;
bMinCtrlValRchd : BOOL;
lrActlMaxCtrlVal : LREAL;
bMaxCtrlValRchd : BOOL;
lrRstVal : LREAL;
byActlFadeRate : BYTE;
byPhysMinVal : BYTE;
byActlMinCtrlVal : BYTE;
byActlMaxCtrlVal : BYTE;
bInitDevice : BOOL;
bBlinkSeqStarted : BOOL;
bActionBusy : BOOL;
bErr : BOOL;
udiErrId : UDINT;
udiErrArg : UDINT;
byDALIDevSta : BYTE;
lrActlLgtLvl: Aktueller Lichtausgabewert [0..100%]
byActlLgtLvl: Aktueller Lichtausgabewert [0..254]
bLgt: Licht ist ein- oder ausgeschaltet
lrActlMinCtrlVal: Aktuell gültiger Minimalwert. Die Ausgabe dieses Wertes wird nur in der Initialisierungsphase des Bausteins und damit des betreffenden Vorschaltgeräts durch eine QueryMinLevel-Abfrage verifiziert. Im weiteren Verlauf wird der Wert an diesem Ausgang ausgegeben, der über den Bausteineingang bzw. über die Kommandostruktur in das Vorschaltgerät einprogrammiert wird. In diesem kann eine Begrenzung auf den physikalischen Min-Wert oder auf den Max-Wert stattfinden.
bMinCtrlValRchd: Der Aktor hat seinen Minimalwert erreicht.
lrActlMaxCtrlVal: Aktuell gültiger Maximalwert. Die Ausgabe dieses Wertes wird nur in der Initialisierungsphase des Bausteins und damit des betreffenden Vorschaltgeräts durch eine QueryMinLevel-Abfrage verifiziert. Im weiteren Verlauf wird der Wert an diesem Ausgang ausgegeben, der über den Bausteineingang bzw. über die Kommandostruktur in das Vorschaltgerät einprogrammiert wird. In diesem kann eine Begrenzung auf den Min-Wert oder auf 100% stattfinden.
bMaxCtrlValRchd: Der Aktor hat seinen Maximalwert erreicht.
lrRstVal:In dieser Variable wir der Lichtwert vor Ausschalten gesichert. Über den Befehl bClRstVal in der Kommandostruktur kann dieser Wert wieder hergestellt werden. Anwendungsbeispiel: Wenn in einem Konferenzraum nach einer Präsentation das Licht wieder eingeschaltet wird.
byActlFadeRate: Aktuell gültige DALI-FadeRate, welche sich aus der Dimmzeit (Eingang uiDimTi) ergibt.
byPhysMinVal: Während der Initialisierungsphase des Bausteins ausgelesener physikalischer Minimalwert [1..254].
byActlMinCtrlVal: siehe lrActlMinCtrlVal. Von [0..100%] auf den Wertebereich von [0..254] umgerechnet.
byActlMaxCtrlVal: siehe lrActlMaxCtrlVal. Von [0..100%] auf den Wertebereich von [0..254] umgerechnet.
bInitDevice: Lichtbaustein in der Initialisierungsphase: Es werden folgende Aktionen ausgeführt:
- Die am Eingang anliegende Lichtrampe (uiDimTi) wird als DALI-FadeRate in das Vorschaltgerät (Kurzadresse) einprogrammiert.
- Der am Eingang anliegende Mindestwert (lrMinCtrlVal) wird als DALI-MinValue in das Vorschaltgerät (Kurzadresse) einprogrammiert.
- Der am Eingang anliegende Maximalwert (lrMaxCtrlVal) wird als DALI-MaxValue in das Vorschaltgerät (Kurzadresse) einprogrammiert.
- Der physikalische Mindestwert des DALI-Vorschaltgeräts wird gelesen und am Bausteinausgang ausgegeben.
- Der tatsächlich gültige Mindestwert des DALI-Vorschaltgeräts wird gelesen und am Bausteinausgang ausgegeben.
- Der tatsächlich gültige Maximalwert des DALI-Vorschaltgeräts wird gelesen und am Bausteinausgang ausgegeben.
- Das Vorschaltgerät (Kurzadresse) wird auf den am Eingang anliegende Startwert (lrSttupCtrlVal) gesetzt.
- Der tatsächlich gültige Lichtausgabewert des DALI-Vorschaltgeräts wird gelesen und am Bausteinausgang ausgegeben.
bBlinkSeqStarted: Die Blinksequenz wurde gestartet.
bActionBusy: Ein DALI-Befehl wird ausgeführt.
bErr: Lichtbaustein im Fehlerzustand
udiErrId / udiErrArg: Fehlernummer und -argument zur Bestimmung der Ursache, siehe Fehlercodes.
byDALIDevSta: Statusbyte des DALI-Vorschaltgeräts. Wird zusammen mit der automatischen Abfrage des Lichtwerts im Hintergrund ausgelesen, siehe Eingang uiPollActLgtLvl.
VAR_IN_OUT
stDALICmdBuf : ST_DALIV2CommandBuffer;
stDALICmdBuf: Referenz auf die Befehlsspeicher-Struktur stDALICmdBuf
Voraussetzungen
Entwicklungsumgebung | Zielsystem | erforderliche Bibliothek | erforderliches Supplement |
---|---|---|---|
TwinCAT 2.11 R3/x64 | PC/CX | TcBASubsystems-Bibliothek ab V1.0.0 | TS8040 | TwinCAT Building Automation ab V1.0.0 |