FB_EnOceanPTM100

FB_EnOceanPTM100 1:

Der Funktionsbaustein FB_EnOceanPTM100() gibt eine anwenderfreundliche Auswertung über den Zustand eines EnOcean-PTM100-Moduls. Hierzu ist die Verwendung des Funktionsblocks FB_EnOceanReceive() notwendig.

Im Unterschied zum PTM200- und PTM250-Modul, kann beim PTM100-Modul nur ein Taster gleichzeitig gedrückt werden. Des Weiteren unterstützt das PTM100-Modul acht, statt vier Taster.

FB_EnOceanPTM100 2:

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

FB_EnOceanPTM100 3: 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_EnOceanPTM100 4: Ausgänge

VAR_OUTPUT
  bSwitches : ARRAY [0..7] OF BOOL;
  bError    : BOOL := FALSE;
  nErrorId  : UDINT := 0;
END_VAR

Name

Typ

Beschreibung

bSwitches

ARRAY OF BOOL

Dieses Feld von 8 boolschen Werten beschreibt die Zustände der 8 Taster auf dem Taster-Modul.

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;
    fbEnOceanPTM100_1 : FB_EnOceanPTM100;
    fbEnOceanPTM100_2 : FB_EnOceanPTM100;
    bSwitches1   : ARRAY    [0..7]    OF    BOOL;
    bSwitches2_1 : BOOL;
    bSwitches2_2 : BOOL;
    bSwitches2_3 : BOOL;
    bSwitches2_4 : BOOL;
    bSwitches2_5 : BOOL;
    bSwitches2_6 : BOOL;
    bSwitches2_7 : BOOL;
    bSwitches2_8 : BOOL;
END_VAR

fbEnOceanReceive(
    bEnable := TRUE,
    stEnOceanInData := stEnOceanInData,
    stEnOceanOutData := stEnOceanOutData);
fbEnOceanPTM100_1(
    bEnable := NOT fbEnOceanReceive.bError AND fbEnOceanReceive.bEnable,
    nTransmitterId := 16#000000C4,
    tWatchdog:=t#0s,
    stEnOceanReceivedData := fbEnOceanReceive.stEnOceanReceivedData);
bSwitches1 := fbEnOceanPTM100_1.bSwitches;
fbEnOceanPTM100_2(
    bEnable := NOT fbEnOceanReceive.bError AND fbEnOceanReceive.bEnable,
    nTransmitterId := 16#000000C5,
    tWatchdog:=t#0s,
    stEnOceanReceivedData := fbEnOceanReceive.stEnOceanReceivedData);
bSwitches2_1 := fbEnOceanPTM100_2.bSwitches[0];
bSwitches2_3 := fbEnOceanPTM100_2.bSwitches[1];
bSwitches2_6 := fbEnOceanPTM100_2.bSwitches[2];
bSwitches2_5 := fbEnOceanPTM100_2.bSwitches[3];
bSwitches2_8 := fbEnOceanPTM100_2.bSwitches[4];
bSwitches2_2 := fbEnOceanPTM100_2.bSwitches[5];
bSwitches2_7 := fbEnOceanPTM100_2.bSwitches[6];
bSwitches2_4 := fbEnOceanPTM100_2.bSwitches[7];

In diesem Beispielprogramm werden 2 Sendemodule (PTM100) abgefragt, ein Sendemodul mit der Transmitter-Id 16#C4 und ein anderes mit der Transmitter-Id 16#C5. Für beide Sendemodule wird jeweils ein Funktionsbaustein FB_EnOceanPTM100 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. Die Taster des ersten Sendemoduls werden zur weiteren Auswertung einem gleich großen boolschen Array bSwitches1 zugeordnet, während die Taster des zweiten Sendemodules einzelnen boolschen Variablen bSwitches2_1 bis bSwitches2_8 zugewiesen werden - beide Möglichkeiten sind denkbar.

Voraussetzungen

Entwicklungsumgebung

erforderliche TC3 SPS-Bibliothek

TwinCAT ab v3.1.4020.14

Tc2_EnOcean ab v3.3.5.0