Lesen von Trends
Der BACnet-Treiber unterstützt das Lesen von Log-Puffern von TrendLog- bzw. TrendLogMultiple-Objekten. Das Lesen wird über die Log_Buffer Property-Adresse durchgeführt. Wird diese Adresse gelesen (z.B. per SingleQuery), so wird eine ReadRange ausgeführt.
Mit Hilfe der BUFFER_READY Benachrichtigung ist es auch möglich eine automatische Abfrage des Log-Puffers zu konfigurieren. Für diesen Zweck muss der BACnet-Treiber in der entsprechenden Benachrichtigungsklasse des TrendLog- bzw. TrendLogMultiple-Objekts als Empfänger konfiguriert werden.
Für TrendLogMultiple-Objekte gibt es ein Log_Buffer Property, wo mehrere Properties von verschiedenen Typen erfasst werden können. Das bedeutet dass mehrere Datenpunktelemente notwendig sind um die Daten abzubilden. Die Abbildung von Trend-Properties auf Datenpunktelemente erfolgt durch Verwendung des Array-Index der Peripherieadresse. Werden vom TrendLogMultiple beispielsweise die Properties AnalogInput.1.Present_Value und BinaryInput.3.Present_Value erfasst, dann beinhaltet Array-Index 0 vom Log_Buffer das erste und Array-Index 1 das zweite Property.
Log Status Mapping
Manche Einträge in BACnet TrendLogs beinhalten nur Statusinformationen und keine Werte, wie z.B. der Eintrag LOG_INTERRUPTED oder LOG_PURGED. Diese Informationen können mit dem Config-Eintrag userByteLogStatus auf ein User-Byte abgebildet werden. Beim Abbilden des Log-Status beinhaltet das User-Byte folgende Informationen:
Bit 0 -> Log disabled
Bit 1 -> Log buffer purged
Bit 2 -> Log interrupted
Bit 3 -> Log failure
Bit 4 -> Time change
Bit 5 -> Null value
Der Wert wird als Invalid markiert, da mit dem Log-Status ein künstlicher Wert abgespeichert wird.
Mapping to Trended Property Address
Wie oben erwähnt wird das Log_Buffer Property verwendet um Trend-Daten zu erhalten. Eine weitere Möglichkeit besteht darin, die Trend-Daten entweder normal oder als Korrekturwert auf die Peripherieadressen der Trend-Properties abzubilden. Soll das Trend-Property auch von anderen Mechanismen (z.B. COV) Werte empfangen, ist es notwendig den Korrekturwert abzubilden, da es sonst zu ungültigen Zeitstempeln kommen kann.
Das Abbilden auf Peripherieadressen der Trend-Properties kann durch Setzen des Config-Eintrag userBitTrendLog auf einen Wert ungleich 0 aktiviert werden.
Sollen die Werte als Korrekturwert abgebildet werden, muss zusätzlich der Config-Eintrag histDataBits für das verwendete Userbit gesetzt werden.