FB_EnOceanSTM100Generic

Der Funktionsbaustein FB_EnOceanSTM100Generic() gibt eine anwenderfreundliche Auswertung über die Daten eines EnOcean STM100-Moduls. Hierzu ist die Verwendung des Funktionsblocks FB_EnOceanReceive() notwendig.
![]() | Zu jedem verwendeten STM100-Modul muss eine neue Instanz dieses Bausteines angelegt werden. |
Eingänge
VAR_INPUT
bEnable : BOOL := FALSE;
tWatchdog : TIME;
nTransmitterId : UDINT;
stEnOceanReceivedData : ST_EnOceanReceivedData;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
bEnable | BOOL | Ein positives Signal an diesem Eingang setzt den Baustein aktiv. Bei einem negativen Signal am Eingang wird im Baustein keine Funktion ausgeführt und alle Ausgänge werden auf 0 bzw. FALSE gesetzt. |
tWatchdog | TIME | Überwachungszeit. Innerhalb dieser Zeit müssen neue Informationen über den unten näher beschriebenen Eingang stEnOceanReceivedData in diesen Baustein gelangen. Ist diese Zeit auf t#0s gesetzt, so ist die Watchdog-Funktion inaktiv. |
nTransmitterId | UDINT | ID des EnOcean-Modules, auf den der Baustein reagieren soll. |
stEnOceanReceivedData | Informationen und notwendige Verbindung zum EnOcean-Empfängerbaustein FB_EnOceanReceive(). Diese Informationen sind in einer Struktur hinterlegt. |
Ausgänge
VAR_OUTPUT
nDataBytes : ARRAY [0..3] OF BYTE;
bError : BOOL := FALSE;
nErrorId : UDINT := 0;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
nDataBytes | ARRAY OF BYTE | 4 Bytes großes Array mit dem Nutzdaten, die das STM100-Modul versendet hat. Die Bedeutung der einzelnen Bytes ist herstellerabhängig. |
bError | BOOL | Der Ausgang wird TRUE, sobald ein Fehler auftritt. Dieser Fehler wird über die Variable nErrorID beschrieben. |
nErrorId | UDINT | Beschreibt die Art des Fehlers. |
Anhand des folgenden Programmbeispiels soll die Funktionsweise des Bausteines näher beschrieben werden:
PROGRAM MAIN
VAR
fbEnOceanReceive : FB_EnOceanReceive;
fbEnOceanSTM100_1 : FB_EnOceanSTM100Generic;
fbEnOceanSTM100_2 : FB_EnOceanSTM100Generic;
nTemperature : ARRAY [1..2] OF BYTE;
nSetpoint : ARRAY [1..2] OF BYTE;
nStateRotarySwitch : ARRAY [1..2] OF BYTE;
nPresentSwitch : ARRAY [1..2] OF BYTE;
END_VAR
fbEnOceanReceive(
bEnable := TRUE,
stEnOceanInData := stEnOceanInData,
stEnOceanOutData := stEnOceanOutData);
fbEnOceanSTM100_1(
bEnable := NOT fbEnOceanReceive.bError AND fbEnOceanReceive.bEnable,
nTransmitterId := 16#000000C4,
tWatchdog:=t#1h,
stEnOceanReceivedData := fbEnOceanReceive.stEnOceanReceivedData);
nTemperature[1] := fbEnOceanSTM100_1.nDataBytes[0];
nSetpoint[1] := fbEnOceanSTM100_1.nDataBytes[1];
nStateRotarySwitch[1] := fbEnOceanSTM100_1.nDataBytes[2];
nPresentSwitch[1] := fbEnOceanSTM100_1.nDataBytes[3];
fbEnOceanSTM100_2(
bEnable := NOT fbEnOceanReceive.bError AND fbEnOceanReceive.bEnable,
nTransmitterId := 16#000000C5,
tWatchdog:=t#0s,
stEnOceanReceivedData := fbEnOceanReceive.stEnOceanReceivedData);
nTemperature[2] := fbEnOceanSTM100_2.nDataBytes[0];
nSetpoint[2] := fbEnOceanSTM100_2.nDataBytes[1];
nStateRotarySwitch[2] := fbEnOceanSTM100_2.nDataBytes[2];
nPresentSwitch[2] := fbEnOceanSTM100_2.nDataBytes[3];
In diesem Beispielprogramm werden 2 EnOcean Sendemodule abgefragt, einer mit der Transmitter-Id 16#000000C4 und ein anderer mit der Transmitter-Id 16#000000C5. Für beide Transmitter wird jeweils ein Funktionsbaustein FB_EnOceanSTM100Generic angelegt. Beide Funktionsbausteine erhalten ihre Informationen von einem vorangeschalteten Empfängerbaustein FB_EnOceanReceive und sind nur dann aktiv (Eingang bEnable), wenn der Empfängerbaustein aktiv und nicht in Störung ist. Das erste Gerät wird durch die Watchdog-Funktion überwacht, wobei innerhalb von 1 Stunde neue Werte an die Steuerung übertragen werden müssen, das zweite Gerät ist ohne Watchdog-Überwachung programmiert. Zur weiteren Auswertung sind die an den Funktionsbausteinen ausgegebenen Werten Variablen zugewiesen. Für eine weitere Verwendung der Werte müssten diese noch in physikalische Größen skaliert werden. Wie die Umrechnung zu erfolgen hat, ist aus dem Datenblatt des Sensors zu entnehmen.
Voraussetzungen
Entwicklungsumgebung | erforderliche TC3 SPS-Bibliothek |
---|---|
TwinCAT ab v3.1.4020.14 | Tc2_EnOcean ab v3.3.5.0 |