FB_EnOceanSTM100

FB_EnOceanSTM100 1:
FB_EnOceanSTM100 2:

Veraltet

Bei neuen Projekten sollte der Baustein FB_EnOceanSTM100Generic() verwendet werden!

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

FB_EnOceanSTM100 3:

Zu jedem verwendeten STM100-Modul muss eine neue Instanz dieses Bausteines angelegt werden.

FB_EnOceanSTM100 4: 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

ST_EnOceanReceivedData

Informationen und notwendige Verbindung zum EnOcean-Empfängerbaustein FB_EnOceanReceive(). Diese Informationen sind in einer Struktur hinterlegt.

FB_EnOceanSTM100 5: Ausgänge

VAR_OUTPUT
  eEnOceanRotarySwitch : E_EnOceanRotarySwitch;
  nSetpoint            : INT;
  nTemperature         : INT;
  bPresentSwitch       : BOOL;
  bLearnSwitch         : BOOL;
  bError               : BOOL := FALSE;
  nErrorId             : UDINT := 0;
END_VAR

Name

Typ

Beschreibung

eEnOceanRotarySwitch

E_EnOceanRotarySwitch

Die Ausgabe an diesem Ausgang beschreibt die Stellung des Drehschalters am Raumbediengerät.

nSetpoint

INT

An dieser Ausgangsvariablen liegt der am Gerät eingestellte Sollwert an. Dieser kann Werte im Bereich von -100 bis +100 annehmen.

nTemperature

INT

Hier wird die gemessene Temperatur in 1/10°C ausgegeben mit einem Messbereich von 0°C bis 40°C. Bei ausgelöstem Watchdog vermutet der Baustein einen drahtbruchähnlichen Fehler und der Wert wird fest auf 850°C gesetzt.

bPresentSwitch

BOOL

Bei Aktivierung der Anwesenheitstaste am Raumbediengerät wird dieser Ausgang TRUE.

bLearnSwitch

BOOL

Bei Aktivierung der Anlerntaste am Raumbediengerät wird dieser Ausgang TRUE.

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_EnOceanSTM100;
    fbEnOceanSTM100_2 : FB_EnOceanSTM100;
    nTemperature : ARRAY [1..2] OF INT;
    nSetpoint : ARRAY [1..2] OF INT;
    nStateRotarySwitch : ARRAY [1..2] OF E_EnOceanRotarySwitch;
    bPresentSwitch : ARRAY [1..2] OF BOOL;
END_VAR

fbEnOceanReceive(
    bEnable := TRUE,
    stEnOceanInData := stEnOceanInData,
    stEnOceanOutData := stEnOceanOutData);

fbEnOceanSTM100_1(
    bEnable := NOT fbEnOceanReceive.bError AND fbEnOceanReceve.bEnable,
    nTransmitterId := 16#000000C4,
    tWatchdog:=t#1h,
    stEnOceanReceivedData := fbEnOceanReceive.stEnOceanReceivedData
    nTemperature => Temperature[1],
    nSetpoint => nSetpoint[1] ,
    eEnOceanRotarySwitch => nStateRotarySwitch[1],
    bPresentSwitch => bPresentSwitch[1]);
fbEnOceanSTM100_2(
    bEnable := NOT fbEnOceanReceive.bError AND fbEnOceanReceive.bEnable,
    nTransmitterId := 16#000000C5,
    tWatchdog:=t#0s,
    stEnOceanReceivedData := fbEnOceanReceive.stEnOceanReceivedData
    nTemperature => Temperature[2],
    nSetpoint => nSetpoint[2] ,
    eEnOceanRotarySwitch => nStateRotarySwitch[2],
    bPresentSwitch => bPresentSwitch[2]);

In diesem Beispielprogramm werden 2 Raumbediengeräte abgefragt, einer mit der Transmitter-Id 16#000000C4 und ein anderer mit der Transmitter-Id 16#000000C5. Für beide Module wird jeweils ein Funktionsbaustein FB_EnOceanSTM100 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 Merkern zugewiesen.

Voraussetzungen

Entwicklungsumgebung

erforderliche TC3 SPS-Bibliothek

TwinCAT ab v3.1.4020.14

Tc2_EnOcean ab v3.3.5.0