FB_DALI_ToPushButtonState

FB_DALI_ToPushButtonState 1:

Ermittelt aus den Ereignissen eines Tasters, den statischen Zustand.

Für eine korrekte Auswertung müssen über den Ereignis-Filter die Ereignisse Button Released (Bit 0) und Button Pressed (Bit 1) aktiviert sein.

FB_DALI_ToPushButtonState 2:

Schalten Sie nur die Ereignisse frei, die Sie für die Anwendung benötigen. Werden zu viele Ereignisse versendet, kann sich das negativ auf das Verhalten der Anwendung auswirken.

FB_DALI_ToPushButtonState 3: Eingänge

VAR_INPUT
  nPushButtonEvent       : UINT;
END_VAR

Name

Typ

Beschreibung

nPushButtonEvent

UINT

Diese Variable enthält die einzelnen Ereignisse des Tasters, welche durch die jeweiligen Bits repräsentiert werden.

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.

FB_DALI_ToPushButtonState 4: Ausgänge

VAR_OUTPUT
  bPushButton    : BOOL;
END_VAR

Name

Typ

Beschreibung

nPushButton

BOOL

Diese Variable gibt den statischen Zustand des Tasters wieder, welcher auf Grundlage der einzelnen Ereignisse ermittelt wurde.

Beispiel

Das Beispiel zeigt, wie die Ereignisse eines 4-fach DALI-Taster in vier einzelne Variablen umgewandelt werden.

PROGRAM Demo_ST
VAR
  fbSwitchPanel         : FB_DALI_Lunatone_Cross_Switch(Communication.fbKL6821Communication);
  bInitialize           : BOOL;
  bError                : BOOL;
  bInitializing         : BOOL;
  aToPushButtonState    : ARRAY [1..4] OF FB_DALI_ToPushButtonState();
  aPushButton           : ARRAY [1..4] OF BOOL;
END_VAR

Programmteil in strukturiertem Text:

fbSwitchPanel(    bInitialize := bInitialize,
                  nShortAddress := 0,
                  bInitializing  => bInitializing,
                  bError => bError);
aToPushButtonState[1](nPushButtonEvent := fbSwitchPanel.nPushButton1Event,
                      bPushButton => aPushButton[1]);
aToPushButtonState[2](nPushButtonEvent := fbSwitchPanel.nPushButton2Event,
                      bPushButton => aPushButton[2]);
aToPushButtonState[3](nPushButtonEvent := fbSwitchPanel.nPushButton3Event,
                      bPushButton => aPushButton[3]);
aToPushButtonState[4](nPushButtonEvent := fbSwitchPanel.nPushButton4Event,
                      bPushButton => aPushButton[4]);

Programmteil im Funktionsplan (engl. Continuous Function Chart) (CFC):

FB_DALI_ToPushButtonState 5:

Voraussetzungen

Entwicklungsumgebung

Erforderliche SPS-Bibliothek

TwinCAT ab v3.1.4024.25

Tc3_DALI ab v3.10.5.0