FB_DALIV2ChangeAddressList

FB_DALIV2ChangeAddressList 1:

Mit dem Funktionsbaustein FB_DALIV2ChangeAddressList können die Kurzadressen mehrerer Vorschaltgeräte geändert werden. Im Gegensatz zum Baustein FB_DALIV2SwapShortAddressList ist es nicht notwendig, dass eine freie, unbenutzte Kurzadresse in der DALI-Line vorhanden ist.

In dem Array arrChangeAddressList vom Typ ST_DALIV2ChangeAddressList wird eine Liste mit den Vorschaltgeräten übergeben, bei denen die Kurzadresse geändert werden soll. Die Liste hat 64 Einträge von 0 bis 63. Jeder Eintrag enthält eine Variable nOldAddress und nNewAddress mit dem die Adresszuordnung parametriert wird. Das Listenende wird mit einem 255-Eintrag bei nOldAddress programmiert, sodass nicht unbedingt die ganze Liste ausgefüllt werden muss. Fehlt dieser Eintrag jedoch, so werden alle Einträge angenommen. Beim Start des Bausteines (positive Flanke an bStart) wird zunächst das Listen-Ende anhand des beschriebenen Eintrages ermittelt und danach der gültige Listenbereich auf folgende Fehleinträge hin untersucht:

Der Baustein ermittelt dann anhand der Kurzadressen die internen Langadressen der DALI-Geräte und trägt diese jeweils in die Parameter nRandomAddressHigh, nRandomAddressMiddle und nRandomAddressLow der Liste ein. Tritt bei diesen Abfragen ein Fehler auf, so führt das zu einem Fehlereintrag für das jeweilige Gerät in dem Listenelement nErrors (siehe ST_DALIV2ChangeAddressList). Der weitere Ablauf im Baustein hängt nun von der Option DALIV2_OPTION_SAFE_ADDRESSING (Eingang nOptions) ab. Ist sie gesetzt, so erfolgt eine sichere Neuadressierung: zunächst werden alle Kurzadressen der gewählten DALI-Geräte gelöscht. Danach werden an alle gewünschte Neuadressen Statusanfragen in die DALI-Linie geschickt. 2 Fälle sind nun möglich:

In beiden Fällen wird die Neuprogrammierung hinterher überprüft. Treten beim Löschen, bei der Statusabfrage oder bei der Neuprogrammierung Fehler auf, so führt dies zu einem Fehlereintrag für das jeweilige Gerät in dem Listenelement nErrors (siehe ST_DALIV2ChangeAddressList).
Ist die Option DALIV2_OPTION_SAFE_ADDRESSING (Eingang nOptions) nicht gesetzt, so wird auf das Löschen der Kurzadressen sowie auf die Statusabfrage zum Vorhandensein gewünschter Neuadressen verzichtet und die neuen Adressen direkt programmiert. Dies ist dadurch möglich, dass die Programmierung über die zuvor ermittelte Langadresse erfolgt. Die Neuprogrammierung wird in diesem Falle nicht verifiziert.

Die einzelnen Bits im Listenelement nErrors haben folgende Bedeutung:

Bit

Fehler

0

Fehler beim Lesen des High-Bytes der Langadresse (nRandomAddressHigh).

1

Fehler beim Lesen des Middle-Bytes der Langadresse (nRandomAddressMiddle).

2

Fehler beim Lesen des Low-Bytes der Langadresse (nRandomAddressLow).

3

Fehler beim Löschen einer Kurzadresse.

4

Fehler beim Verifizieren einer Kurzadresse.

5

Fehler beim Programmieren einer Kurzadresse.

FB_DALIV2ChangeAddressList 2: Eingänge

VAR_INPUT
  bStart                 : BOOL;
  bCancel                : BOOL;
  eCommandPriority : E_DALIV2CommandPriority := eDALIV2CommandPriorityHigh;
  nOptions               : DWORD := DALIV2_OPTION_OPTICAL_FEEDBACK;
END_VAR

Name

Typ

Beschreibung

bStart

BOOL

Über eine positive Flanke an diesem Eingang wird der Funktionsbaustein aktiviert und somit die Adressierung gestartet.

bCancel

BOOL

Über eine positive Flanke an diesem Eingang wird der Baustein deaktiviert und somit die Adressierung abgebrochen.

eCommandPriority

E_DALIV2CommandPriority

Priorität (hoch, mittel oder niedrig), mit der der Befehl von der Library abgearbeitet wird.

nOptions

DWORD

Optionen für das Schreiben der Variablen (siehe Tabelle). Die einzelnen Konstanten müssen miteinander ODER-verknüpft werden.

Konstante

Beschreibung

DALIV2_OPTION_SAFE_ADDRESSING

Sichere Adressierung: Alte Kurzadressen werden gelöscht, die Neuen auf schon Vorhandensein hin überprüft und die Neu-Programmierung verifiziert.

FB_DALIV2ChangeAddressList 3: Ein-/Ausgänge

VAR_IN_OUT
  arrChangeAddressList : ARRAY [0.. 63] OF ST_DALIV2ChangeAddressList;
  stCommandBuffer      : ST_DALIV2CommandBuffer;
END_VAR

Name

Typ

Beschreibung

arrChangeAddressList

ST_DALIV2ChangeAddressList

Verweis auf die Liste mit den zu ändernden Kurzadressen

stCommandBuffer

ST_DALIV2CommandBuffer

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

FB_DALIV2ChangeAddressList 4: Ausgänge

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

Name

Typ

Beschreibung

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