FB_BACnet_Accumulator_EX
Anwendung
Mit Hilfe des Funktionsbausteins FB_BACnet_Accumulator kann lesend und schreibend auf ein BACnet-Objekt vom Typ Accumulator (ACC) zugegriffen werden.
Der typische Anwendungsfall eines Accumulator-Objekt, ist die Abbildung von Zählerständen nach BACnet. Unter Beispiel ist die Anbindung eines M-Bus Zählers an ein Accumulator-Objekt dargestellt.
Der Unterschied in der Basis- und _EX-Variante des Bausteins, besteht zum einen in der Art die Property Present_Value zu schreiben und zum anderen in der Anzahl der Statusausgänge. In der Basis-Variante wird mit Hilfe der Property Value_Set in das Objekt geschrieben. Vor der Wertübernahme in die Property Present_Value wird der vorherige Wert inklusive Zeitstempel gesichert. So kann anhand der Property Value_Change_Time z.B. erkannt werden, wann die Property Present_Value zuletzt aktualisiert wurde. Im Falle eines externen Zählers (Bsp. M-Bus), kann so die Aktualität des Werts überprüft werden.
VAR_INPUT
Grau dargestellte Variablen sind nicht in der Basisversion des Bausteins enthalten. Schwarz dargestellte Variablen sind nicht in der _EX-Variante des Bausteins enthalten. |
nPV : UDINT;
nValueSet : UDINT;
nPV: Wert der in die Property Present_Value geschrieben werden soll. Das Schreiben der Prozessdaten erfolgt bei Änderung.
nValueSet: Wert der in die Property Value_Set geschrieben werden soll. Ein Schreibzugriff löst zudem die Aktualisierung der Property Value_Change_Time und Value_Before_Change aus. Das Schreiben der Prozessdaten erfolgt bei Änderung.
VAR_OUPUT
bReady : BOOL;
nPresentValue : UDINT;
nMaxPV : UDINT;
bOverridden : BOOL;
bOutOfService : BOOL;
bFault : BOOL;
bInAlarm : BOOL;
bOverRange : BOOL;
bUnderRange : BOOL;
bNoSensor : BOOL;
bOpenLoop : BOOL;
bCommFailure : BOOL;
bShortedLoop : BOOL;
bOtherFault : BOOL;
eEventState : E_BACNETEVENTSTATE;
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.
nPresentValue: Aktueller Wert des BACnet-Objekts (siehe auch BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Accumulator und Property Present_Value).
nMaxPV: Aktueller Wert der Property Max_Pres_Value des BACnet-Objekts (siehe auch BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Accumulator und Property Max_Pres_Value).
bOverride, bOutOfService, bFault, bInAlarm: Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Accumulator und Property Status_Flags.
bOverRange, bUnderRange, bNoSensor, bOpenLoop, bShortedLoop, bOtherFault: Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Accumulator und Property Reliability.
eEventState: Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt Accumulator und Property Event_State.
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.
Beispiel
Im folgenden Beispiel wird die Umsetzung eines M-Bus Zählers auf ein BACnet Objekt vom Typ Accumulator gezeigt.
Dabei wird seitens BACnet Objekt der Wert des Eingangs nValueSet erfasst und als Property Present_Value übernommen. Als weitere Information dienen der Status bError und bReady des M-Bus Bausteins für das Setzen der Property Reliability des BACnet Objekts. Diese Property gibt an, in welchem Zustand sich der Wert des BACnet Objekts befindet. Meldet der M-Bus Baustein bReady = TRUE, dann geht das BACnet Objekt in no_fault_detected → Wert gültig.