FB_DALIV2GetSettings
Dieser Baustein liest von allen Vorschaltgeräten einer DALI-Line die Variablen (MIN LEVEL, MAX LEVEL, FADE TIME, ...) aus, und speichert diese in einer Struktur vom Typ ST_DALIV2DeviceSettings.
Durch eine positive Flanke an dem Eingang bStart wird der Baustein gestartet und der Ausgang bBusy geht auf TRUE. Zunächst wird geprüft, ob ein Vorschaltgerät überhaupt vorhanden ist. Ist dies der Fall, so wird in der jeweiligen Struktur (siehe ST_DALIV2DeviceSettings) das Bit bPresent gesetzt und anschließend nacheinander die Einstellungen des Vorschaltgerätes ausgelesen und in die betreffenden Variablen der Struktur geschrieben. Wird ein Gerät als nicht vorhanden erkannt, so wird das Auslesen übersprungen und mit dem nächsten Gerät begonnen. Der Index der Struktur spiegelt dabei die Adresse des Gerätes wider, d.h. vom Gerät mit der Kurzadresse 0 liegen die Daten in arrDALIDeviceSettings[0] bis hin zu dem Gerät mit der Kurzadresse 63 in arrDALIDeviceSettings[63]. Tritt während des Auslesevorganges ein Lesefehler bei einem Gerät auf, so wird das entsprechende Bit in nErrors der jeweiligen Struktur gesetzt, ohne dass jedoch der Funktionsbaustein an sich in Störung geht. In der folgenden Tabelle wird aufgelistet, welches Bit in der Variablen nErrors gesetzt wird, wenn beim Auslesen einer Variablen aus einem Vorschaltgerät ein Fehler aufgetreten ist:
Bit | Fehler |
---|---|
0 | Bei dem Versuch das Vorschaltgerät zu suchen, ist ein Fehler aufgetreten. |
1 | Fehler beim Auslesen der Variable ACTUAL DIM LEVEL. |
2 | Fehler beim Auslesen der Variable POWER ON LEVEL. |
3 | Fehler beim Auslesen der Variable SYSTEM FAILURE LEVEL. |
4 | Fehler beim Auslesen der Variable MIN LEVEL. |
5 | Fehler beim Auslesen der Variable MAX LEVEL. |
6 | Fehler beim Auslesen der Variable FADE RATE. |
7 | Fehler beim Auslesen der Variable FADE TIME. |
8 | Fehler beim Auslesen der Variable RANDOM ADDRESS. |
9 | Fehler beim Auslesen der Variablen GROUP 0-7 und GROUP 8-15. |
10 | |
11 | Fehler beim Auslesen der Variable STATUS INFORMATION. |
12 | Fehler beim Auslesen der Variable VERSION NUMBER. |
13 | Fehler beim Auslesen der Variable DEVICE TYPE. |
14 | Fehler beim Auslesen der Variable PHYSICAL MIN LEVEL. |
Nach Abarbeitung des Bausteines wechselt der Ausgang bBusy von TRUE nach FALSE. Abhängig davon, wie viele Vorschaltgeräte angeschlossen sind, kann die Abarbeitung dieses Bausteines mehrere Sekunden dauern.
VAR_INPUT
bStart : BOOL;
bCancel : BOOL;
eCommandPriority : E_DALIV2CommandPriority := eDALIV2CommandPriorityMiddle;
nOptions : DWORD;
bStart: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.
bCancel: Über eine positive Flanke an diesem Eingang wird der Baustein deaktiviert und somit das Auslesen der Variablen abgebrochen.
eCommandPriority: Priorität (hoch, mittel oder niedrig), mit der der Befehl von der Library abgearbeitet wird (siehe E_DALIV2CommandPriority).
nOptions: Optionen für das Auslesen der Variablen (siehe Tabelle). Die einzelnen Konstanten müssen miteinander ODER-verknüpft werden.
Konstante | Beschreibung |
---|---|
DALIV2_OPTION_ACTUAL_DIM_LEVEL | Die Variable ACTUAL DIM LEVEL wird ausgelesen. |
DALIV2_OPTION_POWER_ON_LEVEL | Die Variable POWER ON LEVEL wird ausgelesen. |
DALIV2_OPTION_SYSTEM_FAILURE_LEVEL | Die Variable SYSTEM FAILURE LEVEL wird ausgelesen. |
DALIV2_OPTION_MIN_LEVEL | Die Variable MIN LEVEL wird ausgelesen. |
DALIV2_OPTION_MAX_LEVEL | Die Variable MAX LEVEL wird ausgelesen. |
DALIV2_OPTION_FADE_RATE_FADE_TIME | |
DALIV2_OPTION_RANDOM_ADDRESS | Die Variable RANDOM ADDRESS wird ausgelesen. |
DALIV2_OPTION_GROUPS | Die Variablen GROUP 0-7 und GROUP 8-15 werden ausgelesen. |
DALIV2_OPTION_SCENE_LEVELS | |
DALIV2_OPTION_STATUS_INFORMATION | Die Variable STATUS INFORMATION wird ausgelesen. |
DALIV2_OPTION_VERSION_NUMBER | Die Variable VERSION NUMBER wird ausgelesen. |
DALIV2_OPTION_DEVICE_TYPE | Die Variable DEVICE TYPE wird ausgelesen. |
DALIV2_OPTION_PHYSICAL_MIN_LEVEL | Die Variable PHYSICAL MIN LEVEL wird ausgelesen. |
DALIV2_OPTION_DONT_CLEAR_DEVICE_SETTINGS | Vor dem Lesen wird die Variable arrDALIDeviceSettings nicht gelöscht. |
DALIV2_OPTION_ALL | Alle Variablen werden ausgelesen. |
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrorId : UDINT;
nCurrentShortAddr : BYTE;
bBusy: Bei der Aktivierung des Bausteins wird der Ausgang gesetzt und bleibt so lange aktiv, bis der Befehl abgearbeitet wurde.
bError: 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: 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)
nCurrentShortAddr: Kurzadresse vom aktuellen Vorschaltgerät von dem gerade versucht wird die Variablen auszulesen.
VAR_IN_OUT
stCommandBuffer : ST_DALIV2CommandBuffer;
arrDALIDeviceSettings : ARRAY [0..63] OF ST_DALIV2DeviceSettings;
stCommandBuffer: Verweis auf die interne Struktur zur Kommunikation mit den Bausteinen FB_KL6811Communication() (KL6811) oder FB_KL6821Communication() (KL6821).
arrDALIDeviceSettings: Verweis auf ein Array mit 64 Elementen (siehe ST_DALIV2DeviceSettings). In dieser Variablen werden die Einstellungen von jedem einzelnen DALI-Vorschaltgerät abgelegt.
Voraussetzungen
Entwicklungsumgebung | erforderliche SPS-Bibliothek |
---|---|
TwinCAT ab v3.1.4020.14 | Tc2_DALI ab v3.4.3.0 |