FB_BACnet_WeeklyScheduleProperty

FB_BACnet_WeeklyScheduleProperty 1:

 

Anwendung

Mit Hilfe des Bausteins kann die Property Weekly_Schedule eines beliebigen BACnet Objekts (typischerweise BACnet Schedule Objekt) ausgelesen werden. Der Eingang tObjectID legt dabei das Objekt fest (Object_Identifier: Objekt Type und Objekt Instanz), auf das zugegriffen werden soll. Unter Beispiel wird eine mögliche Beschaltung gezeigt.

Die zu lesenden bzw. zu schreibenden Daten werden in derselben Ein-/Ausgangsdatenstruktur abgelegt (siehe auch ST_BACnet_WeeklyScheduleBool).

Als Datentype für Einträge der Property Weekly_Schedule wird seitens PLC Baustein lediglich Bool und Null unterstützt! Einträge mit anderen Datentypen werden ignoriert bzw. beim Schreiben in die Property gelöscht.

FB_BACnet_WeeklyScheduleProperty 2:
Bild-1: Beispiel Eintrag der Property Weekly_Schedule mit Datentyp Bool.

Die Bausteininstanz wird im SPS Programm angelegt und zyklisch aufgerufen. Der Ein-/Ausgang stAdsConn muss mit dem Ausgang stAdsConn des entsprechenden Device-Bausteins (FB_BACnet_Device bzw. FB_BACnet_RemoteDevice) verbunden werden.

FB_BACnet_WeeklyScheduleProperty 3:

Für die Pufferung der ADS Daten wird der ADS Puffer aus den globalen Variablen verwendet (siehe ST_BACnet_GlobalAdsBuffer).

VAR_INPUT

tObjectID      : T_BACnet_ObjectIdentifier:=16#FFFFFFFF;
bAutoGet       : BOOL:=TRUE;
bGet           : BOOL;
bSet           : BOOL;

 

tObjectID: Legt das Objekt fest (Object_Identifier: Objekt Type und Objekt Instanz) auf das zugegriffen werden soll.

bAutoGet: TRUE = Lese die Property automatisch aus, wenn die ADS Verbindung oder der Object_Identifier sich geändert haben. Eine ADS Verbindungsänderung liegt vor, wenn die Verbindung nach einem Unterbruch wiederhergestellt oder die AMS NetID bzw. Port geändert wurde. Ein automatisches Auslesen geschieht nicht zyklisch und auch nicht bei Änderung der Property selbst!

bGet: FALSETRUE = Property wird unabhängig vom Eingang bAutoGet einmalig ausgelesen.

bSet: FALSE --> TRUE = Property wird geschrieben.

 

VAR_OUPUT

bDone          : BOOL;
bBusy          : BOOL;
bError         : BOOL;
nErrorId       : UINT;

 

bDone: Lesen bzw. Schreiben der Daten erfolgreich beendet. bDone bleibt so lange gesetzt bis bGet, bSet und bAutoGet zurückgesetzt sind oder ein erneuter Lese- bzw. Schreibvorgang beginnt. Wurde bGet, bSet und bAutoGet zurück gesetzt bevor bDone aktiv ist, dann wird bDone für einen Zyklus gesetzt.

bBusy: Der Baustein ist beschäftigt.

bError: Fehler während der Abarbeitung.

nErrorId: Fehlercode, siehe BACnet_Globals für eine Übersicht.

 

VAR_IN_OUT

stWeeklySched      : ST_BACnet_WeeklyScheduleBool;
stAdsConn      : ST_BACnet_AdsConnection;

stWeeklySched :  Ein-/Ausgangsdatenstruktur für die Einträge der Property Weekly_Schedule mit Datentyp Bool oder Null. Im Folgenden wird ein Eintrag in der PLC und im TwinCAT System Manager gegenüber gestellt (siehe Beispiel).

stAdsConn: Verknüpfung mit dem Ausgang stAdsConn des entsprechenden Device-Bausteins.

Beispiel 1: Gegenüberstellung PLC und System Manager

FB_BACnet_WeeklyScheduleProperty 4:
Bild-2: Beispiel eines Property Eintrag in der PLC
FB_BACnet_WeeklyScheduleProperty 5:
Bild-3: Beispiel eines Property Eintrag im TwinCAT System Manager

Beispiel 2: Bausteinaufruf

FB_BACnet_WeeklyScheduleProperty 6:
Bild-4: Beispiel für die Verwendung. Lesen und Schreiben der Property Weekly_Schedule eines BACnet Schedule Objekts.