FB_BACnet_MultiStateOutput
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.
Verwendung
Mit Hilfe des Funktionsbausteins "FB_BACnet_MultiStateOutput" kann lesend und schreibend auf ein BACnet-Objekt vom Typ MultiStateOutput (MO) zugegriffen werden. Das BACnet-Objekt wurde dazu unter einem lokalen BACnet-Server angelegt.
VAR_INPUT
bEnablePV : BOOL;
nPV : UDINT;
bEnablePV: Gibt den Wert des Eingangs nPV frei. Sobald der Eingang auf TRUE gesetzt wird, erfolgt ein Eintrag im Priority_Array des zugehörigen BACnet-Objekts mit dem Wert des Eingangs nPV. 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).
nPV: 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;
nPresentValue : UDINT;
bOverridden : BOOL;
bOutOfService : BOOL;
bFault : BOOL;
bInAlarm : 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.
nPresentValue: Aktueller Wert des BACnet-Objekts (siehe auch BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt MultiStateOutput und Property Present_Value).
bOverridden, bOutOfService, bFault, bInAlarm: Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt MultiStateOutput 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.