FB_BACnet_Program_EX

FB_BACnet_Program_EX 1:

Anwendung

Mit Hilfe des Funktionsbausteins FB_BACnet_Program_EX kann lesend und schreibend auf ein BACnet-Objekt vom Typ Program zugegriffen werden.

Der Funktionsbaustein FB_BACnet_Program enthält die in der BACnet-Spezifikation beschriebenen State-Transistions und bildet diese auf dem FB-Interface mit Hilfe der Strukturen: stDoneFlags, stFailedFlags und stRequestFlags ab (siehe unter Transition-Diagram Bild-1).

VAR_INPUT

bRelease            : BOOL;
bCommonError        : BOOL;
bWaitForSomething   : BOOL;
stDoneFlags         : ST_BACnet_ProgramHandshakeRequests;
stFailedFlags       : ST_BACnet_ProgramHandshakeRequests;
bModeUnloadComplex  : BOOL:=TRUE;

bRelease: Gibt die Freigabe für das Abarbeiten von Anforderungen. Wenn bRelease = FALSE gesetzt ist, dann verharrt das Programm im Zustand HALTED.

bCommonError: Fehler bei der Ausführung eines Program_Change-Requestsaus der Struktur stRequestFlags. Das Setzten des Eingangs bei laufender Ausführung eines Program_Change-Requests führt zu einer Abbruchbedingung (siehe unter Transition-Diagram Bild-1).

bWaitForSomething: Befindet sich das BACnet-Objekt im Zustand RUNNING kann mit TRUE Setzen des Eingangs auf den Zustand WAITING umgeschaltet werden, so dass das BACnet-Objekt für weitere Requests außer Unload und Halt gesperrt wird (siehe unter Transition-Diagram Bild-1).
Um in den Zustand RUNNING zurückzukehren muss der Eingang auf FALSE zurückgesetzt werden.

stDoneFlags: Die Flags innerhalb der Eingangsstruktur dienen der Quittierung von anstehenden Program_Change-Requests aus der Ausgangsstruktur stRequestFlags. Ein Signalwechsel eines der Flags von FALSE --> TRUE bestätigt die Ausführung des entsprechenden Program_Change-Requests.

stFailedFlags: Die Flags innerhalb der Eingangsstruktur dienen der Abbruchmeldung des anstehenden Program_Change-Requests aus der Ausgangsstruktur stRequestFlags. Ein Signalwechsel eines der Flags von FALSE --> TRUE bricht die Ausführung des entsprechenden Program_Change-Requests ab.

bModeUnloadComplex: Wurde der Modus "Unload Complex" mit Hilfe des Eingangs aktiviert, so wechselt der BACnet-Objekt Status von UNLOADING zu IDLE nach der Ausführung des Requests Unload (siehe unter Transition-Diagram Bild-1). Wird der Eingang auf FALSE gesetzt, dann verharrt das BACnet-Objekt im Zustand UNLOADING nach dem der Request Unload ausgeführt wurde.

VAR_OUPUT

bReady              : BOOL;
bOverridden         : BOOL;
bOutOfService       : BOOL;
bFault              : BOOL;
bInAlarm            : BOOL;
bProcessError       : BOOL;
bCommFailure        : BOOL;
bOtherFault         : BOOL;
stRequestFlags      : ST_BACnet_ProgramHandshakeRequests;
stActiveStateFlags  : ST_BACnet_ProgramHandshakeStates;
tObjectID           : T_BACnet_ObjectIdentifier:=16#FFFFFFFF;
bError              : BOOL;
nErrorId            : UINT;

bReady: Meldung der allgemeinen Bereitschaft. Ist dieser Ausgang gesetzt, so sind die übrigen Status-Ausgänge gültig (PresentValue, Overridden ...). Ist der Ausgang FALSE, dann meldet der zugehörige Funktionsbaustein FB_BACnet_Device nicht "Operational" oder die Baustein-Instanz wurde im TwinCAT System Manager nicht richtig verknüpft.

bOverridden, bOutOfService, bFault, bInAlarm: Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Program und Property Status_Flags.

bProcessError, bCommFailure, bOtherFault: Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Program und Property Reliability.

stRequestFlags: Enthält die Flags zu den entsprechenden Program_Change-Requests. Ist ein Flag auf TRUE gesetzt, so wird eine Statusänderung des Programm-Objekts durch das SPS-Programm angefordert. Wurde die Änderung erfolgreich ausgeführt wird dies mit einem Signalwechsel FALSETRUE des entsprechenden Flags der Eingangsstruktur stDoneFlags bestätigt. Kann der Request von dem zugehörigen SPS-Programm nicht ausgeführt werden oder gibt es einen Abbruch während der Ausführung, so muss dies mit Hilfe des entsprechenden Flags der Eingangsstruktur stFailedFlags gemeldet werden. Der Abbruch wird dann im Status des BACnet-Objekts sichtbar.

stActiveStateFlags: Enthält Flags die den aktuellen Zustand des BACnet-Program-Objects widerspiegeln (siehe unter Transition-Diagram Bild-1).

tObjectID: Objekt ID des BACnet Objekts Objekt Type und Objekt Instanz.

bError: Ein Fehler steht an.

nErrorId: siehe globale Konstanten BACnet_Globals.

VAR_IN_OUT

Device          : FB_BACnet_Device;

Device: Angabe der Instanz des lokalen, zugehörigen BACnet-Server Bausteins. Pro BACnet-Adapter ist ein BACnet-Server möglich. Siehe FB_BACnet_Adapter und FB_BACnet_Device für weitere Informationen.

Transition-Diagram

FB_BACnet_Program_EX 2:
Bild-1: aus BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Program, Abbildung 12-3 "State Transitions for the program object"