FB_BACnet_BinaryValue_ADS

FB_BACnet_BinaryValue_ADS 1:

Anwendung

Mit Hilfe des Funktionsbausteins FB_BACnet_BinaryValue_ADS kann lesend und schreibend auf ein BACnet-Objekt vom Typ BinaryValue 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;
bPV            : BOOL;
bManual        : BOOL;
ePriority      : E_BACNETPRIORITY:=BACNETPRIORITY_12;

bEnablePV: Gibt den Wert des Eingangs bPV frei. Sobald der Eingang auf TRUE gesetzt wird erfolgt ein Schreibzugriff mit dem Wert aus bPV 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 bPV wird ignoriert, solange bNullPV auf TRUE gesetzt ist.

bPV: Wert der an die entsprechende 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_BinaryValue_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:
- FALSE: Schreiben bei Wertänderung
- Flankenwechsel FALSETRUE: Schreiben der Property Present_Value bei Flankenwechsel.
- TRUE: Schreiben bei Wertänderung und wenn der zugehörige BACnet-Server in den Zustand "Operational" wechselt (siehe FB_BACnet_Device).

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;
bPresentValue  : BOOL;
bOverridden    : BOOL;
bOutOfService  : BOOL;
bFault         : BOOL;
bInAlarm       : BOOL;
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.

bPresentValue: Aktueller Wert des BACnet-Objekts (siehe auch BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt BinaryValue und Property Present_Value).

bOverridden, bOutOfService, bFault, bInAlarm: Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet-Objekt BinaryValue 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.