FB_BACnet_BinaryOutput_RAW
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.
Im Gegensatz zu der Standardvariante des Bausteins wird der Rohwert durch einen Funktionsbaustein-Ausgang im SPS-Programm bereitgestellt und nicht auf die Klemmen-Hardware abgebildet. So können z.B. Digitalausgangsinformationen im SPS-Code weiterverarbeitet werden (Signalumsetzung in Subbussysteme oder virtueller Ausgangsdatenpunkt etc.).
Verwendung
Mit Hilfe des Funktionsbausteins "FB_BACnet_BinaryOutput_RAW" kann lesend und schreibend auf ein BACnet-Objekt vom Typ BinaryOutput (BO) zugegriffen werden. Das BACnet-Objekt wurde dazu unter einem lokalen BACnet-Server angelegt.
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.
VAR_OUTPUT
bReady : BOOL;
bPresentValue : BOOL;
bOverridden : BOOL;
bOutOfService : BOOL;
bFault : BOOL;
bInAlarm : BOOL;
bAckedTrans_ToOffNormal : BOOL;
bAckedTrans_ToFault : BOOL;
bAckedTrans_ToNormal : BOOL;
bError : BOOL;
nErrorId : UINT;
bRawOut : BOOL; (* ~(BACnet_RawIoBinaryBoolValue : : ) *)
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 BinaryOutput und Property Present_Value).
bOverridden, bOutOfService, bFault, bInAlarm: Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt BinaryOutput und Property Status_Flags.
bAckedTrans_ToOffNormal, bAckedTrans_ToFault, bAckedTrans_ToNormal: Flags der Property Acked_Transitions (siehe auch BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt BinaryOutput und Property Acked_Transitions).
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).
nRawOut: Rohwertausgang des Objekts. Der Ausgang wird mit dem Prozessdatum "RawIoBinaryBoolValue" des BACnet-Objekts verknüpft. Der Wert der Property Present_Value wird auf "bRawOut" abgebildet (vorausgesetzt der Objektzustand ist nicht out_of_service).
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.
Beispiel
Im folgenden Beispiel wird die Umsetzung der Property Present_Value eines BinaryOutput-Objekts nach EIB gezeigt: