FB_BACnet_LogBufferProperty

FB_BACnet_LogBufferProperty 1:

Anwendung

Mit Hilfe des Bausteins kann die Property Log_Buffer eines beliebigen BACnet Objekts (typischerweise BACnet TrendLog 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.

DDie zu lesenden Daten werden in der Ausgangsdatenstruktur stLogBuffer abgelegt (siehe auch ST_BACnet_LogBufferReal).

Als Datentype für Einträge der Property Log_Buffer wird seitens PLC Baustein lediglich Real unterstützt! Einträge mit anderen Datentypen werden ignoriert.

FB_BACnet_LogBufferProperty 2:
Bild-1: Beispiel Eintrag der Property Log_Buffer mit Datentyp Real.

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_LogBufferProperty 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;
stStartTime  : ST_BACnet_DateTime := (
                 stDate := (nYear       := 16#FF,
                 nMonth      := 16#FF,
                 nDay    := 16#FF),
                 stTime := (nHour       := 16#FF,
                 nMinute     := 16#FF,
                 nSecond     := 16#FF,
                 nHundredths := 16#FF));
stEndTime    : ST_BACnet_DateTime := (
                 stDate := (nYear       := 16#FF,
                 nMonth      := 16#FF,
                 nDay    := 16#FF),
                 stTime := (nHour       := 16#FF,
                 nMinute     := 16#FF,
                 nSecond     := 16#FF,
                 nHundredths := 16#FF));

 

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 Verbingsänderung liegt vor, wenn die Verbingung nach einem Unterbruch wiederhergestellt oder die AMS NetID bzw. Port geändert wurde. Ein automatische Auslesen geschieht nicht zyklisch und auch nicht bei Änderung der Property selbst!

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

stStartTime, :stEndTime Nur Einträge aus dem Log_Buffer mit Zeitstempel innerhalb von Start- und Endzeitpunkt werden ausgegeben. Standardmäßig ist der Filter deaktivert (Platzhalter 255 → undefiniert).

VAR_OUPUT

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

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ückgesetzt 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.

stLogBuffer: Ausgangsdatenstrukur für die Einträge der Property Log_Buffer mit Datentyp Real. Im Folgenden werden zwei Einträge in der PLC und im TwinCAT System Manager gegenübergestellt (siehe Beispiel).

VAR_IN_OUT

stAdsConn    : ST_BACnet_AdsConnection;

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

 

Beispiel 1: Gegenüberstellung PLC und System Manager

FB_BACnet_LogBufferProperty 4:
Bild-2: Beispiel von 2 Log-Eintrag in der PLC
FB_BACnet_LogBufferProperty 5:
Bild-3: Beispiel von 2 Log-Eintrag im TwinCAT System Manager
FB_BACnet_LogBufferProperty 6:
Bild-4: Beispielhafte Darstellung der Property Log_Buffer im TwinCAT System Manager.

Beispiel 2: Bausteinaufruf

FB_BACnet_LogBufferProperty 7:
Bild-5: Beispiel für die Verwendung. Zyklisches Lesen der Property Log_Buffer eines BACnet TrendLog Objekts.