FB_BACnet_Accumulator_RAW
Anwendung
Mit Hilfe des Funktionsbausteins FB_BACnet_Accumulator_RAW kann lesend und schreibend auf ein BACnet-Objekt vom Typ Accumulator zugegriffen werden.
Im Unterschied zur Standard- bzw. _EX-Variante des Bausteins, wird der Rohwert und der Zustand der Property Reliablitity durch Funktionsbaustein-Eingänge bereitgestellt und nicht durch die IO-Hardware direkt. So kann z.B. der Zustand eines Zähleingangs aus einem Sub-Bussystems in SPS-Code auf ein BACnet-Objekt abgebildet werden (Signalumsetzung von Sub-Bussystemen oder virtuellen Datenpunkten nach BACnet, siehe Beispiel).
VAR_INPUT
nRawIn : UINT;
bNoSensor : BOOL;
bOverRange : BOOL;
bUnderRange : BOOL;
bOpenLoop : BOOL;
bShortedLoop : BOOL;
bCommFailure : BOOL;
bOtherFault : BOOL;
nRawIn: Rohwerteingang des Objekts im Wertebereich -32768...32767. Der Eingang wird mit dem Prozessdatum "RawIoAccumulatorUnsignedValue" des BACnet-Objekts verknüpft. Wertänderungen von nRawIn werden mit der Property Prescale zum Wert der Property Present_Value verrechnet (vorausgesetzt der Objektzustand ist nicht out_of_service).
bNoSensor, bOverRange, bUnderRange, bOpenLoop, bShortedLoop, bCommFailure, bOtherFault: TRUE am Eingang setzt den entsprechenden Zustand der Property Reliability. Die Priorität fällt mit der Reihenfolge der Eingänge (bNoSensor höchste und bOtherFault niedrigste Priorität). Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Accumulator und Property Reliability.
VAR_OUPUT
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 TwinCAT System Manager nicht richtig verknüpft.
nPresentValue: Aktueller Wert des BACnet-Objekts (siehe auch BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Accumulator und Property Present_Value).
bOverride, bOutOfService, bFault, bInAlarm: Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Accumulator und Property Status_Flags.
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.
Beispiel
Im folgenden Beispiel wird die Umsetzung eines digitalen Impulssignals auf ein BACnet Objekt vom Typ Accumulator gezeigt.
Dabei wird seitens BACnet Objekt die Änderungen des Eingangs nRawIn erfasst. Ein Überlauf des UINT Wertes ist unkritisch, da dieser vom BACnet Objekt entsprechend behandelt wird. Gezählt wird die Diffenrenz des Eingangswerts im Modul 32768. Als weitere Information dient der Eingang diPulseOk. Dieser Eingang gibt an, dass die impulsgenerierende Seite (z.B. ein exterener Zähler) bereit ist.