FB_DALI_Loytec_LDALI_BM2

FB_DALI_Loytec_LDALI_BM2 1:

Der Funktionsbaustein repräsentiert die DALI-Tasterschnittstelle LDALI-BM2 der Firma Loytec.

Über das Gerät können bis zu vier Taster (Instanzen 0, 3, 6 und 7) direkt angebunden werden.

Die ersten beiden Eingänge sind konfigurierbar, sodass anstelle von Tastern auch NTC/PTC-Temperaturfühler (Instanzen 1 und 4) oder Potenziometer/Schiebewiderstände (Instanzen 2 und 5) verwendet werden können.

Diese Funktionalitäten können über die Eigenschaften eInput1Configuration und eInput2Configuration konfiguriert werden (siehe E_DALILoytecInputConfiguration).

Bei der Einstellung eines der beiden Eingänge als Generic Input (Widerstandsthermometer) wird der Widerstandswert direkt ausgelesen. Dieses Auslesen findet statt, wenn eine positive Flanke an dem entsprechenden Eingang bQueryInputValue1 oder bQueryInputValue2 erkannt wird.

Bei der Einstellung eines der beiden Eingänge als Absolute Input (Potenziometer) wird der Widerstandswert in % ausgelesen. Der entsprechende Kanal wird über die Eigenschaft eResistanceValueAbsoluteInput1 oder eResistanceValueAbsoluteInput2 auf den angeschlossenen Widerstand (1 kΩ oder 10 kΩ) konfiguriert (siehe Verwendung von Eigenschaften). Der Ausgabewert liegt zwischen 0 (0 %) und 31 (100 %).

Über die Eingangsvariablen bQueryInputValueN kann das Auslesen der entsprechenden Instanz unmittelbar ausgelöst werden, auch wenn die entsprechende Instanz nicht freigegeben ist.

Darüber hinaus ist es möglich diese Werte zeitabhängig abzufragen. Hierzu dienen die Eigenschaften nReportTimerAbsoluteInput1 und nReportTimerAbsoluteInput2. Nach Ablauf der eingestellten Zeit [s] wird der Wert erneut ausgelesen. Zur Vermeidung von zu schnell aufeinanderfolgenden Ereignissen kann eine Totzeit [ms] über die Eigenschaften nDeadtimeTimerAbsoluteInput1 und nDeadtimeTimerAbsoluteInput2 eingestellt werden.

Die Tastereingänge 3 und 4 können über die Eigenschaften bEnableInput3 und bEnableInput4 gesperrt werden.

Durch Änderung der unten aufgeführten Eigenschaften, können die bestehenden Parameter überschrieben werden. Alle Parameter werden durch eine positive Flanke an bInitialize in das DALI-Steuergerät geschrieben und dort gespeichert.

Die Ausgänge mit den Ausgabewerten des DALI-Gerätes enthalten nur dann gültige Werte, wenn der Baustein fehlerfrei ausgeführt wurde (bError = FALSE). Ist der Ausgang bError = TRUE, so dürfen die Ausgänge mit den Ausgabewerten nicht ausgewertet werden.

FB_DALI_Loytec_LDALI_BM2 2:

Stellen Sie die Zeiten so ein, dass möglichst wenige Ereignisse versendet werden. Werden zu viele Ereignisse versendet, kann sich das negativ auf das Verhalten der Anwendung auswirken.

FB_DALI_Loytec_LDALI_BM2 3:

Stellen Sie die Ereignisprioritäten an der Eigenschaften eEventPriorityInput1 und eEventPriorityInput2 auf den Wert MiddleLow, wenn die Eingänge nicht als Taster verwendet werden.

FB_DALI_Loytec_LDALI_BM2 4:

Bei Einsatz der KL6811 kann der Baustein nicht verwendet werden.

FB_DALI_Loytec_LDALI_BM2 5: Eingänge

VAR_INPUT
  bInitialize          : BOOL  := FALSE;
  nShortAddress        : BYTE  := 0;
  nOptions             : DWORD := 0;
  bQueryInputValue1    : BOOL := FALSE;
  bQueryInputValue2    : BOOL := FALSE;
  bQueryInputValue3    : BOOL := FALSE;
  bQueryInputValue4    : BOOL := FALSE;
END_VAR

Name

Typ

Beschreibung

bInitialize

BOOL

Durch eine positive Flanke an diesem Eingang wird das Konfigurieren des DALI-Steuergerätes gestartet. Während dieser Zeit werden keine DALI-Befehle bearbeitet.

nShortAddress

BYTE

Kurzadresse (0…63) des DALI-Steuergerätes.

nOptions

DWORD

Reserviert für zukünftige Erweiterungen.

bQueryInputValueN

BOOL

Durch eine positive Flanke an diesem Eingang wird der Zustand des entsprechenden Tasters unmittelbar abgefragt. Werte von Widerstandssensoren (Einstellung des Eingangs als Generic Input) können ausschließlich manuell und nicht ereignisgesteuert abgefragt werden.

FB_DALI_Loytec_LDALI_BM2 6: Ausgänge

VAR_OUTPUT
  bError                 : BOOL;
  ipResultMessage        : I_TcMessage;
  bInitializing          : BOOL;
  bReadingInputValue1    : BOOL;
  bReadingInputValue2    : BOOL;
  bReadingInputValue3    : BOOL;
  bReadingInputValue4    : BOOL;
  nPushButton1Event      : WORD;
  nGenericInput1         : UINT;
  nAbsoluteInput1        : BYTE;
  nPushButton2Event      : WORD;
  nGenericInput2         : UINT;
  nAbsoluteInput2        : BYTE;
  nPushButton3Event      : WORD;
  nPushButton4Event      : WORD;
END_VAR

Name

Typ

Beschreibung

bError

BOOL

Der Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung ein Fehler aufgetreten ist. Weitere Informationen zu dem Fehler können über die Variable ipResultMessage abgefragt werden. Der Ausgang wird wieder auf FALSE gesetzt, sobald bBusy auf TRUE geht.

ipResultMessage

I_TcMessage

Interface-Pointer (siehe Fehlerauswertung) mit dem detaillierte Informationen über die Abarbeitung des Bausteins abgefragt werden können (siehe Laufzeitmeldungen). Der Interface-Pointer ist gültig, nachdem bBusy von TRUE auf FALSE gewechselt hat.

bInitializing

BOOL

Der Ausgang wird gesetzt, sobald die Initialisierung des DALI-Steuergerätes gestartet wurde und bleibt so lange aktiv, bis alle DALI-Befehle abgearbeitet wurden.

bReadingInputValueN

BOOL

Die Ausgänge werden gesetzt, sobald das manuelle Lesen des entsprechenden Eingangs ausgelöst wurde.

nPushButtonNEvent

BOOL

Die Ausgänge geben die Ereignisse für den entsprechenden Taster über je ein Bit für einen Zyklus aus.

Bit

Beschreibung

0

Taster losgelassen.

1

Taster gedrückt.

2

Kurzer Tastendruck.

3

Doppelter Tastendruck.

4

Start langer Tastendruck.

5

Wiederholung langer Tastendruck.

6

Stopp langer Tastendruck.

7

Taster wieder frei, war zuvor blockiert.

8

Taster blockiert.

Mit Hilfe des Funktionsbausteins FB_DALI_ToPushButtonState kann der Zustand eines Tasters in eine BOOL-Variable umgewandelt werden.

Name

Typ

Beschreibung

nGenericInputN

UINT

Ausgänge, welche die Messwerte der angeschlossenen Widerstandssensoren (NTC/PTC) enthalten.

nAbsoluteInputN

BYTE

Ausgänge, welche die Messwerte der angeschlossenen Potenziometer oder Schiebewiderstände enthalten. Die Skalierung der einzelnen Bereiche erfolgt von 0 bis 100%, mit den folgenden Ausgangswerten: 0 = 0% und 31 = 100%.

FB_DALI_Loytec_LDALI_BM2 7: Eigenschaften

Alle Parameter, die per bInitialize in das DALI-Steuergerät geschrieben werden, sind als Eigenschaften vorhanden.

Die Eigenschaften von Instanzen des gleichen Typs sind in der Tabelle nur einmal aufgeführt und am Ende mit N gekennzeichnet.

Name

Typ

Zugriff

Initialwert

Beschreibung

eInputNConfiguration

E_DALILoytecInputConfiguration

Get, Set

PushButton

Konfiguration der Eingänge 1 oder 2 als Taster oder Analogeingang, zur Anbindung von Potenziometern oder Widerstandssensoren, z.B. NTC/PTC.

eResistanceValueAbsoluteInputN

E_DALILoytecResistanceConfiguration

Get, Set

Resistance10kOhm

Konfiguration des Widerstandswertes des Potenziometers oder Schiebewiderstandes an den Eingängen 1 oder 2.

bEnablePushButtonN

BOOL

Get, Set

TRUE

Taster Eingang 3 oder 4, der jeweils am DALI-Steuergerät freigegeben oder gesperrt werden kann. Ein FALSE an dieser Eigenschaft bewirkt, dass das Versenden von Ereignissen aus dieser Instanz deaktiviert ist. Der Istwert der Instanz kann jedoch über den Eingang bQueryPushButtonN weiterhin abgefragt werden.

nEventFilterPushButtonN

BYTE

Get, Set

2#1000_0011

Einstellung des Ereignis-Filters.

eEventPriorityInputN

E_DALIEventPriority

Get, Set

Middle

Einstellung der Ereignis-Priorität.

nDeadtimeTimerAbsoluteInputN

UINT

Get, Set

100 ms

Totzeit (0...12750 ms), um sicherzustellen, dass nicht zu viele Ereignisse hintereinander versendet werden. Ein Ereignis wird erst nach Ablauf des Deadtime-Timer gesendet. Der Deadtime-Timer wird jedes Mal neu gestartet, nachdem ein Ereignis gesendet wurde.

nReportTimerAbsoluteInputN

BYTE

Get, Set

0 s

Zeit [0…255 s] nach der das anstehende Ereignis des Absolutwertgebers wiederholt wird, wenn in der Zwischenzeit kein anderes Ereignis eingetreten ist.

nDoubleTimerPushButtonN

UINT

Get, Set

0 ms

Zeit (0, tDoubleMin…2000 ms) zur Unterscheidung zwischen einem einfachen und einem doppelten Tastendruck.

nRepeatTimerPushButtonN

UINT

Get, Set

160 ms

Intervall (100…2000 ms) von Wiederholungsereignissen bei einem langen Tastendruck.

nShortTimerPushButtonN

UINT

Get, Set

500 ms

Zeit (tShortMin…5100 ms) zur Unterscheidung zwischen einem langen und einem kurzen Tastendruck. tShortMin ist ein herstellerspezifischer Wert.

nStuckTimerPushButtonN

BYTE

Get, Set

20 s

Zeit (5…255 s) nach deren Ablauf der Taster keinen langen Tastendruck mehr repräsentiert. Der Taster klemmt.

ipDALICommunication

I_DALICommunication

Get, Set

0

Interface-Pointer auf den Kommunikationsbaustein (siehe Übergabe der Referenz auf den Kommunikationsbaustein).

Voraussetzungen

Entwicklungsumgebung

Erforderliche SPS-Bibliothek

TwinCAT ab v3.1.4024.12

Tc3_DALI ab v3.5.0.0