FB_EnOceanSTM250

FB_EnOceanSTM250 1:

Der Funktionsbaustein FB_EnOceanSTM250() gibt eine anwenderfreundliche Auswertung über die Daten eines EnOcean STM250-Moduls. Hierzu ist die Verwendung des Funktionsblocks FB_EnOceanReceive() notwendig.

Wichtig ist, dass zu jedem verwendeten STM250-Modul eine neue Instanz dieses Bausteines angelegt werden muss.

VAR_INPUT

bEnable                : BOOL := FALSE;
tWatchdog              : TIME;
nTransmitterId         : UDINT;
stEnOceanReceivedData  : ST_EnOceanReceivedData;

bEnable: Ein positives Signal an diesem Eingang setzt den Baustein aktiv. Bei einem negativen Signal am bEnable Eingang wird im Baustein keine Funktion ausgeführt und alle Ausgänge werden auf 0 bzw. FALSE gesetzt.

tWatchdog: Überwachungszeit. Innerhalb dieser Zeit müssen neue Informationen über den Eingang stEnOceanReceivedData in diesen Baustein gelangen. Ist diese Zeit auf t#0s gesetzt, so ist die Watchdog-Funktion inaktiv.

nTransmitterId: ID des EnOcean-Modules, auf den der Baustein reagieren soll.

stEnOceanReceivedData: Informationen und notwendige Verbindung zum EnOcean-Empfangsbaustein FB_EnOceanReceive(). Diese Informationen sind in einer Struktur des Typs ST_EnOceanReceivedData hinterlegt.

VAR_OUTPUT

bState             : BOOL;
bLearn             : BOOL;
bError             : BOOL := FALSE;
nErrorId           : UDINT := 0;

bState: Bei Aktivierung des Reedkontakts am STM250-Modul wird dieser Ausgang TRUE (Kontakt geschlossen).

bLearn: Bei Aktivierung der Lerntaste am STM250-Modul wird dieser Ausgang FALSE.

bError: Der Ausgang wird TRUE sobald ein Fehler auftritt. Dieser Fehler wird über die Variable nErrorId beschrieben.

nErrorId: Beschreibt die Art des Fehlers (siehe Fehlercodes).

Anhand des folgenden Programmbeispiels soll die Funktionsweise des Bausteines näher beschrieben werden:

PROGRAM MAIN
VAR
  fbEnOceanReceive  : FB_EnOceanReceive;
  fbEnOceanSTM250   : FB_EnOceanSTM250;
  bState            : BOOL;
  bLearn            : BOOL;
END_VAR
     
fbEnOceanReceive(bEnable := TRUE,
         stEnOceanInData := stEnOceanInData,
         stEnOceanOutData := stEnOceanOutData);
     
fbEnOceanSTM250(bEnable := NOT fbEnOceanReceive.bError AND fbEnOceanReceive.bEnable,
        nTransmitterId := 16#000008CA,
        tWatchdog := t#0s,
        stEnOceanReceivedData := fbEnOceanReceive.stEnOceanReceivedData,
        bState => bState,
        bLearn => bLearn);  

In diesem Beispielprogramm wird ein STM250 Modul mit der Transmitter-Id 16#000008CA abgefragt. Hierzu wurde der Funktionsbaustein FB_EnOceanSTM250() angelegt. Dieser Funktionsbaustein erhält Informationen von einem vorangeschalteten Empfängerbaustein FB_EnOceanReceive() und ist nur dann aktiv (Eingang bEnable), wenn der Empfängerbaustein aktiv und nicht in Störung ist. Zur weiteren Auswertung sind die an den Funktionsbaustein ausgegebenen Werten Variablen zugewiesen.