FB_BACnet_BinaryValue

Der folgende Funktionsbaustein wird für die Verbindung von einem BACnet-Objekt des lokalen BACnet-Servers verwendet. Die Verknüpfung des Funktionsbausteins zu dem entsprechenden BACnet-Objekt erfolgt mit Hilfe von Prozessdaten.

Die Prozessdaten können manuell in dem BACnet-Objekt erstellt und von Hand verknüpft werden oder mittels PLC-Automapping automatisch erzeugt werden. Die für das PLC-Automapping nötigen Kommentare ( (* ~ (BACnet... | ??? | ??? ) *) ) sind bereits in der Deklaration des Funktionsbausteins enthalten.

FB_BACnet_BinaryValue 1:

Verwendung

Mit Hilfe des Funktionsbausteins "FB_BACnet_BinaryValue" kann lesend und schreibend auf ein BACnet-Objekt vom Typ BinaryValue (BV) zugegriffen werden. Das BACnet-Objekt wurde dazu unter einem lokalen BACnet-Server angelegt.

FB_BACnet_BinaryValue 2:
Bild-1: Beispiel eines BACnet-Objekts unterhalb eines lokalen BACnet-Servers.

VAR_INPUT

bEnablePV    : BOOL;
bPV          : BOOL;

bEnablePV: Gibt den Wert des Eingangs "bPV" frei. Sobald der Eingang auf TRUE gesetzt wird, erfolgt ein Eintrag im Priority_Array des zugehörigen BACnet-Objekts mit dem Wert des Eingangs "bPV". Dies entspricht einem Schreibzugriff auf das kommandierbare Property Present_Value mit eingestellter Priorität (Default: 12 bei Verwendung des PLC-Automappings bzw. 16 bei manueller Verknüpfung im System Manager).
Wird bEnablePV auf FALSE gesetzt, dann wird der zugehörige Eintrag aus dem Priority_Array wieder entfernt (NULL Schreiben).

bPV: Wert der in das Priority_Array der kommandierbaren Property Present_Value geschrieben werden soll. Die Priorität ergibt sich aus dem Mapping und Konfiguration der Prozessdaten des BACnet-Objekts im System Manager (siehe auch Bild-2 und 3). Das Schreiben wird mit TRUE-Setzen des Eingangs "bEnablePV" freigegeben. Das Schreiben der Prozessdaten erfolgt nach Freigabe immer zyklisch.

FB_BACnet_BinaryValue 3:
Bild-2: Beispiel eines BACnet-Objekts mit Prozessdaten für das Schreiben der kommandierbaren Property Present_Value.
FB_BACnet_BinaryValue 4:
Bild-3: Beispiel der Prozessdatenkonfiguration eines BACnet-Objektes im System Manager. Priorität 12 und 16 werden als mappbare Prozessdaten angelegt (siehe Ergebnis in Bild-2).

VAR_OUTPUT

bReady                  : BOOL;
bPresentValue           : BOOL;
bOverridden             : BOOL;
bOutOfService           : BOOL;
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 System Manager nicht richtig verknüpft.

bPresentValue: Aktueller Wert des BACnet-Objekts (siehe auch BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt BinaryValue und Property Present_Value).

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

bError: Ein Fehler steht an.

nErrorId: Fehlernummer
0 = kein Fehler
2 = fehlerhaftes Prozessdatenmapping erkannt (Mapping im System Manager prüfen; evtl. SPS-Projekt komplett übersetzen und erneut laden)
3 = der zugehörige BACnet-Server ist nicht bereit (bOperational = FALSE an Instanz des FB_BACnet_Device)
Die Fehlernummern können als Baustein-Konstanten über die FB-Instanz abgefragt werden (FB_BACnet_???.nERR_xxx).

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.