FB_BACnet_MultiStateInput_RAW
Anwendung
Mit Hilfe des Funktionsbausteins FB_BACnet_MultiStateInput_RAW kann lesend und schreibend auf ein BACnet-Objekt vom Typ MultiStateInput 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. ein mehrstufiger Zustand 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 : DWORD;
bNoSensor : BOOL;
bOverRange : BOOL;
bUnderRange : BOOL;
bOpenLoop : BOOL;
bShortedLoop : BOOL;
bCommFailure : BOOL;
bOtherFault : BOOL;
nRawIn: Rohwerteingang des Objekts im Wertebereich 1 .. Number_Of_States. Der Eingang wird mit dem Prozessdatum "PresentValue" des BACnet-Objekts verknüpft. Der Wert aus nRawIn wird direkt in die Property Present_Value geschrieben (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 MultiStateInput und Property Reliability.
VAR_OUPUT
bReady : BOOL;
nPresentValue : UDINT;
bOverridden : BOOL;
bOutOfService : BOOL;
bFault : BOOL;
bInAlarm : BOOL;
bAckedTrans_ToOffNormal : BOOL;
bAckedTrans_ToFault : BOOL;
bAckedTrans_ToNormal : BOOL;
nNbrOfStates : UDINT;
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 MultiStateInput und Property Present_Value).
bOverridden, bOutOfService, bFault, bInAlarm: Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt MultiStateInput 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 MultiStateInput und Property Acked_Transitions).
nNbrOfStates: Meldet die verfügbare Anzahl von Werten, die das Present_Value des MultiStateInput-Objekts annehmen kann (1...nNbrOfStates). Ist "nNbrOfStates" gleich 0, dann gibt es keinen gültigen "State" den das Objekt annehmen kann (Present_Value ist 0).
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 ganzzahligen Werts aus EIB in die Property Present_Value eines MultiStateInput-Objekts gezeigt:
Dieses Beispiel setzt die Bibliothek "TcEIB.lib" voraus. Siehe Dokumentation zur Klemme KL6301 für weitere Informationen zu EIB.