FB_BA_Swi4DALI

FB_BA_Swi4DALI 1:

Dieser Baustein dient zum Auslesen eines DALI-4-fach-Tasters.

Hinweise zur Funktion des verwendeten DALI-Gerätes entnehmen Sie bitte der Gerätedokumentation des Herstellers.

Funktion

Das Gerät selbst ist spezifiziert durch die Instanznummern der Taster, nInstButton1nInstButton4.

Es wird grundsätzlich das geräteinterne Ereignissystem (notifications) verwendet, welches selbsttätig ein Telegramm losschickt, sobald ein Tastendruck oder ein Loslassen einer Taste erkannt wird.

Die Zustände der Tasten werden zusätzlich zyklisch abgefragt. So wird sichergestellt, dass der Zustand der Tasten immer wieder korrigiert wird, sollte einmal ein Telegramm "verloren gehen".

Der DALI-Tasterbaustein kann über den Eingang bInitialize mit fest eingestellten Parametern initialisiert werden, siehe VAR CONSTANT.

Syntax

FUNCTION_BLOCK FB_BA_Swi4DALI
VAR_INPUT
  bEn                    : BOOL;
  bInitialize            : BOOL;
  nAdr                   : BYTE;
  nInstButton1           : BYTE;
  nInstButton2           : BYTE;
  nInstButton3           : BYTE;
  nInstButton4           : BYTE;
  ipDALICommunication    : Tc3_DALI.I_DALICommunication;
END_VAR
VAR_OUTPUT
  bButton1               : BOOL;
  bButton2               : BOOL;
  bButton3               : BOOL;
  bButton4               : BOOL;
  bInitializing          : BOOL;
  bErr                   : BOOL;
END_VAR
VAR_INPUT CONSTANT PERSISTENT
  nPrdQuery              : UDINT := 60;
END_VAR
VAR CONSTANT
  nEventFilter           : DWORD := 131;
  eEventPriority         : Tc3_DALI.E_DALIEventPriority := Tc3_DALI.E_DALIEventPriority.Middle;
  eEventScheme           : Tc3_DALI.E_DALIEventScheme := Tc3_DALI.E_DALIEventScheme.DeviceInstance;
  nRepeatTimer           : UINT := 160;
  nShortTimer            : UINT := 500;
  nDoubleTimer           : UINT := 0;
  nStuckTimer            : BYTE := 20;
END_VAR

FB_BA_Swi4DALI 2: VAR_INPUT

Name

Typ

Beschreibung

bEn

BOOL

Freigabe des Bausteines: ein TRUE-Signal an diesem Eingang aktiviert die Funktion.

bInitialize

BOOL

Eine positive Flanke an diesem Eingang startet die DALI-Initialisierungsroutine, welche die eingestellten Parameter in das DALI-Gerät überträgt, siehe FB_BA_Swi4DALI.

nAdr

BYTE

DALI-Kurzadresse des Tastsensors.

nInstButton1… nInstButton4

BYTE

Nummern der abzufragenden Taster-Instanzen.

ipDALICommunication

Tc3_DALI.I_DALICommunication

Interface-Pointer auf den DALI-Kommunikationsbaustein.

FB_BA_Swi4DALI 3: VAR_OUTPUT

Name

Typ

Beschreibung

bButton1…bButton4

BOOL

Zustand der einzelnen Taster (TRUE = gedrückt).

bInitializing

BOOL

Der Sensor befindet sich in der DALI-Initialisierungsphase, d.h. die eingetragenen Parameter werden in das DALI-Gerät übertragen.

bErr

BOOL

Fehlerausgang. Ein Klartext wird in TwinCAT im Ausgabefenster in der Fehlerliste (Error List) ausgegeben.

FB_BA_Swi4DALI 4: VAR_INPUT CONSTANT PERSISTENT

Name

Typ

Beschreibung

nPrdQuery

UDINT

Abfrageintervall der Schalterzustände. Diese Abfrage dient lediglich der Korrektur, falls durch einen Telegrammfehler ein falscher Status gemerkt wird.

VAR CONSTANT

FB_BA_Swi4DALI 5:

Die folgenden Parameter sind unveränderbar und werden durch die Initialisierungsroutine in das DALI-Gerät übertragen.

Name

Typ

Beschreibung

nEventFilter

DWORD

DALI-Ereignisfilter-Maske für Präsenzmelder. Dieser Wert ist auf 7 eingestellt und fragt damit die Zustände Occupied, Vacant und Repeat Event ab.

eEventPriority

Tc3_DALI.E_DALIEventPriority

DALI-Ereignispriorität, mit der Input Notification Events von der Instanz des DALI-Steuergeräts versendet werden, eingestellt auf Middle.

eEventScheme

Tc3_DALI.E_DALIEventScheme

DALI-Ereignisschema. Dieses ist auf DeviceInstance eingestellt (Geräte- / Instanz-Adressierung mit Kurzadresse und Instanznummer).

nRepeatTimer

UINT

Repeat-Timer als Vielfaches von 20ms. Eingestellt auf 8 (=160ms).

nShortTimer

UINT

Short-Timer als Vielfaches von 20ms. Eingestellt auf 25 (=500ms).

nDoubleTimer

UINT

Double-Timer als Vielfaches von 20ms. Eingestellt auf 0 (=0ms). Damit ist dieser Wert auf den herstellerspezifischen Minimalwert gesetzt.

nStuckTimer

BYTE

Stuck-Timer in Sekunden. Eingestellt auf 20s.

Voraussetzungen

Entwicklungsumgebung

Erforderliche Function

TwinCAT ab v3.1.4024.35

TF8040 | TwinCAT Building Automation ab V5.0.0.0