FB_BACnet_MultiStateOutput_ADS

FB_BACnet_MultiStateOutput_ADS 1:

Anwendung

Mit Hilfe des Funktionsbausteins FB_BACnet_MultiStateOutput_ADS kann lesend und schreibend auf ein BACnet-Objekt vom Typ MultiStateOutput zugegriffen werden.

Das Schrieben der Property Present_Value wird, im Unterschied zur Standard- und _EX-Variante, mittels ADS-WRITE realisiert (azyklisch).

VAR_INPUT

bEnablePV  : BOOL;
bNullPV    : BOOL;
nPV        : UDINT;
bManual    : BOOL;
ePriority  : E_BACNETPRIORITY:=BACNETPRIORITY_12;

bEnablePV: Gibt den Wert des Eingangs nPV frei. Sobald der Eingang auf TRUE gesetzt wird erfolgt ein Schreibzugriff mit dem Wert aus nPV auf die kommandierbare Property Present_Value mit Priorität aus ePriority (Default: 12, wenn der Eingang ePriority nicht beschaltet ist). Wird der Eingang auf FALSE gesetzt, erfolgt kein Schreibzugriff (keine Änderung) mehr.

bNullPV: Überschreibt den Eintrag der kommandierbaren Property Present_Values in der Priorität ePriority mit dem Wert NULL, wenn bEnablePV auf TRUE gesetzt ist. Der Eingang nPV wird ignoriert, so lange bNullPV auf TRUE gesetzt ist.

nPV: Wert der an die entsprechenden Stelle der Property Priority_Array der kommandierbaren Property Present_Value geschrieben werden soll, wenn bEnablePV auf TRUE und bNullPV auf FALSE gesetzt ist. Die Priorität wird mit dem Eingang ePriority bestimmt (Default: 12, wenn der Eingang ePriority nicht beschaltet ist). Das Schreiben wird bei Wertänderung azyklisch ausgeführt (ADS-WRITE).

FB_BACnet_MultiStateOutput_ADS 2:

Da das Schreiben der Property Present_Value azyklisch und nur bei Wertänderung geschieht, ist es potenziell möglich, dass die Property Present_Value mit gleicher Priorität auch von anderen BACnet-Geräten überschrieben wird. Bei gleicher Priorität "gewinnt" immer der letzte Schreibzugriff.

bManual: Folgende Auswertung werden für den Eingang unterschieden:

ePriority: Vorgabe der Priorität für Schreibzugriffe auf die Property Present_Value (Default: 12, siehe auch E_BACNETPRIORITY).

VAR_OUPUT

bReady         : BOOL;
bPvDone        : BOOL;
nPresentValue  : UDINT;
bOverridden    : BOOL;
bOutOfService  : BOOL;
bFault         : BOOL;
bInAlarm       : BOOL;
nNbrOfStates   : UDINT;
tObjectID      : T_BACnet_ObjectIdentifier:=16#FFFFFFFF;
bError         : BOOL;
nErrorId       : UINT;
nAdsErrorId    : UDINT;

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.

bPvDone: Positive Flanke bei erfolgreichem Schreiben der Property Present_Value über ADS.

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.

tObjectID: Objekt ID des BACnet Objekts Objekt Type und Objekt Instanz.

bError: Ein Fehler steht an.

nErrorId: siehe globale Konstanten BACnet_Globals.

nAdsErrorId: ADS Fehlercode.

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.