SPS Bibliothek: TcBACnetRev12.Lib

Im Folgenden wird der Funktionsumfang der SPS Bibliothek "TcBACnetRev12.lib" beschrieben. Die Bibliothek bietet die Möglichkeit auf Objekte einer BACnet-Konfiguration komfortabel aus einem SPS-Programm zuzugreifen.

Überblick

Die SPS-Bibliothek "TcBACnetRev12.lib" ist eine Sammlung von Funktionsbausteinen zur Programmierung eines BACnet-Controllers. Für jedes BACnet-Objekt stehen Funktionsbausteine zur Verfügung, über die ausgewählte Properties gelesen und geschrieben werden. Generell wird zwischen Funktionsbausteinen für Server- und Client-Objekte unterschieden. Funktionsbausteine für Client-Objekte werden mit dem Präfix "Remote" bezeichnet, da sie den Zugriff auf entfernte BACnet-Objekte auf anderen Geräten ermöglichen. Die BACnet-Objekt-Funktionsbausteine realisieren eine Auswertung, ob Prozessdaten gültig sind bzw. der BACnet-Controller betriebsbereit ist (bReady).

Der Funktionsbaustein FB_BACnet_Adapter repräsentiert ein BACnet-Device und damit den Zugangspunkt zum BACnet-Netzwerk über Netzwerkkarte. Über diesen Baustein kann u.a. erkannt werden, ob ein Link vorhanden ist. Um die Übersicht im SPS-Programm zu erhöhen, wird der BACnet-Adapter als globale Variable innerhalb der "TcBACnetRev12.lib" angelegt, da in der Mehrzahl der Projekte genau ein BACnet-Adapter verwendet wird.

Je nach Client- bzw. Server-Funktionalität, werden mit den Funktionsbausteinen FB_BACnet_Device bzw. FB_BACnet_RemoteDevice Zustands- und Steuerinformationen des BACnet-Client bzw. Server verknüpft. Die Betriebsbereitschaft der BACnet-Objekte wird über den Client- bzw. Server-Status sowie der Property System_Status des jeweiligen Device bzw. Remote Device-Objekts ermittelt. Jedem BACnet-Objekt-Funktionsbaustein muss deshalb eine Referenz auf die Instanz des zugehörigen FB_BACnet_Device bzw. FB_BACnet_RemoteDevice übergeben werden, um die Statusauswertung (bReady) zu ermöglichen.

Die nachfolgende Abbildung zeigt eine Übersicht der Funktionsbausteine der "TcBACnetRev12.lib" und den entsprechenden Verknüpfungen mit den BACnet-Modulen. Die Verknüpfung zwischen einem SPS-Programm auf Basis von "TcBACnetRev12.lib" und den BACnet-Modulen einer Konfiguration über die Funktion SPS-Automapping automatisiert erstellt werden.

SPS Bibliothek: TcBACnetRev12.Lib 1:

Kompatibilität und Neuerungen

Die SPS-Bibliothek "TcBACnetRev12.lib" wird ab TwinCAT 2.11 Build 2042 mit der TwinCAT-Basis-Installation ausgeliefert. Die Bibliothek ist in wesentlichen Zügen mit der Vorgängerversion "TcBACnet.lib" kompatibel. Es folgt ein kurzer Überblick der Neuerungen:

Ältere Projekte, die auf Basis der SPS-Bibliothek "TcBACnet.Lib" erstellt wurden, können nach folgendem Schema auf die Verwendung der neuen Bibliothek umgestellt werden:

  1. Löschen von "TcBACnet.Lib" aus dem SPS-Projekt
  2. Hinzufügen von "TcBACnetRev12.Lib"
  3. Neu Übersetzen
  4. Im System Manager:
    • Neu einlesen des SPS-Projects
    • ggf. altes Mapping Rückgängig machen
    • ggf. BACnet Device in neuer Revision anlegen.
    • SPS-Automapping durchführen

Persistente Daten können bei der Umstellung auf die neue "TcBACnetRev12.lib" nicht übernommen werden.

Generell gilt, dass SPS-Projekte auf Basis der alten "TcBACnet.Lib" auch ohne Umstellung mit "BACnet Revision 12" funktionieren.

Übersicht

Im Folgenden werden die Komponenten der SPS-Bibliothek in einer Übersicht dargestellt. Über entsprechende Verknüpfungen können detailliierte Informationen aufgerufen werden.

BACnet Adapter und Notification-Sink

Bausteine

Beschreibung

FB_BACnet_Adapter

Funktionsbaustein für die Anbindung des PLC Programms an einen lokalen BACnet-Adapter (Netzwerkkarte).

FB_BACnet_NotificationSink

Funktionsbaustein zur Realisierung einer ADS Verbindung mit einer BACnet NotificationSink.

Lokale BACnet-Objekte (Server)

Standard Objekte

Folgende Funktionsbausteine stellen die Verbindung zwischen BACnet Objekt im TwinCAT System Manager und der Verwendung im PLC Programm her. Die Bausteine enthalten sämtliche, für das SPS-Automapping notwendingen Kommentare.

Die Standard-Funktionsbausteine sind in 2 Varianten verfügbar:

Die Dokumentation bezieht sich auf die Variante mit erweiterten Prozessdaten. Erweiterte Prozessdaten sind in der Beschreibung als solche gekennzeichnet.

Bausteine

Symbol

BACnet Objekt

Beschreibung

FB_BACnet_Accumulator_EX

SPS Bibliothek: TcBACnetRev12.Lib 2:

Accumulator

Ein BACnet Accumulator Objekt repräsentiert einen durch Pulszählung ermittelten Messwert.

FB_BACnet_AnalogInput_EX

SPS Bibliothek: TcBACnetRev12.Lib 3:

Analog Input

Ein BACnet Analog Input Objekt repräsentiert einen analogen Eingangswert. 

FB_BACnet_AnalogOutput_EX

SPS Bibliothek: TcBACnetRev12.Lib 4:

Analog Output

Ein BACnet Analog Output Objekt repräsentiert einen analogen Ausgangswert.

FB_BACnet_AnalogValue_EX

SPS Bibliothek: TcBACnetRev12.Lib 5:

Analog Value

Repräsentiert einen analogen Zustandswert innerhalb eines Programms.

FB_BACnet_Averaging_EX

SPS Bibliothek: TcBACnetRev12.Lib 6:

Averaging

Ermöglicht die Berechnung statistischer Daten innerhalb einer Steuerung.

FB_BACnet_BinaryInput_EX

SPS Bibliothek: TcBACnetRev12.Lib 7:

Binary Input

Ein Binary Input Objekt repräsentiert einen binären Eingangswert.

FB_BACnet_BinaryOutput_EX

SPS Bibliothek: TcBACnetRev12.Lib 8:

Binary Output

Ein Binary Output Objekt repräsentiert einen binaren Ausgangswert.

FB_BACnet_BinaryValue_EX

SPS Bibliothek: TcBACnetRev12.Lib 9:

Binary Value

Repräsentiert einen binären Zustandswert innerhalb eines Programms.

FB_BACnet_Calendar_EX

SPS Bibliothek: TcBACnetRev12.Lib 10:

Calendar

Ermöglicht die entkoppelte Definition von Ausnahmetagen für Zeitschaltpläne (Schedule Objekte).

FB_BACnet_Command_EX

SPS Bibliothek: TcBACnetRev12.Lib 11:

Command

Ermöglicht die Steuerung von komplexen Ablaufen über zeitlich gestaffelte Schreibbefehle auf BACnet Objekt-Properties.

FB_BACnet_Device

SPS Bibliothek: TcBACnetRev12.Lib 12:

Device

Bildet den logischen Einstiegspunkt eines BACnet-Geräts. Enthält u.a. die Liste aller BACnet-Objekte dieses Geräts.

FB_BACnet_EventEnrollment_EX

SPS Bibliothek: TcBACnetRev12.Lib 13:

Event Enrollment

Ermöglicht die Konfiguration regelbasierter Ereignismeldungen. Über das in viele Objekte Integrierte Meldesystem, können umfangreichere Regeln für das Auslösen vom Ereignismeldungen definiert werden. Ein Beispiel sind zusätzliche oder mehrfache Grenzwertpaare für ein PresentValue.

FB_BACnet_File_EX

SPS Bibliothek: TcBACnetRev12.Lib 14:

File

Repräsentiert Eigenschaften eines Dateiobjekts.

FB_BACnet_Group_EX

SPS Bibliothek: TcBACnetRev12.Lib 15:

Group

Group-Objekte erlauben die Zusammenfassung multipler Properties in einem einzelnen Datenpunkt.

FB_BACnet_Loop_EX

SPS Bibliothek: TcBACnetRev12.Lib 16:

Loop

Repräsentiert die Eigenschaften eines PID-Reglers.

FB_BACnet_MultiStateInput_EX

SPS Bibliothek: TcBACnetRev12.Lib 17:

Multi State Input

Repräsentiert einen ganzzahligen/mehrstufigen Eingangswert.

FB_BACnet_MultiStateOutput_EX

SPS Bibliothek: TcBACnetRev12.Lib 18:

Multi State Output

Repräsentiert einen ganzzahligen/mehrstufigen Ausgangswert.

FB_BACnet_MultiStateValue_EX

SPS Bibliothek: TcBACnetRev12.Lib 19:

Multi State Value

Repräsentiert einen ganzzahligen/mehrstufigen Zustandswert.

FB_BACnet_NotificationClass_EX

SPS Bibliothek: TcBACnetRev12.Lib 20:

Notification Class

Das Notification Class Objekt dient zur Konfiguration der Verteilung von Ereignismeldungen (EventNotifications).

FB_BACnet_Program_EX

SPS Bibliothek: TcBACnetRev12.Lib 21:

Program

Ein BACnet Program Objekt ermöglich die Veränderung der Zustände eines SPS-Programms.

FB_BACnet_PulseConverter_EX

SPS Bibliothek: TcBACnetRev12.Lib 22:

Pulse Converter

Ein Pulse Converter Objekt repräsentiert einen durch Pulszählung ermittelten Messwert.

FB_BACnet_Schedule_EX

SPS Bibliothek: TcBACnetRev12.Lib 23:

Schedule

Repräsentiert einen Zeitschaltplan mit dessen Hilfe Werte anderer BACnet-Objekte an Hand von zeitbasierten Schalteinträgen beschrieben werden.

FB_BACnet_TrendLog_EX

SPS Bibliothek: TcBACnetRev12.Lib 24:

Trend Log

Repräsentiert aufgezeichnete historische Daten, die zyklisch mit festem Intervall oder ereignisbasiert aufgezeichnet werden.

Lokale BACnet Objekte (ADS)

Der schreibende Zugriff auf die Property PresentValue erfolgt prioritätsbasiert via ADS. Dieser Baustein kann eingesetzt werden, wenn Prioritäten für schreibende Zugriffe vor der Programmlaufzeit nicht feststehen bzw. mehrere Prioritätsstufen gleichzeitig im Programm manipuliert werden sollen.

Bausteine

Beschreibung

FB_BACnet_AnalogOutput_ADS

Ein BACnet Analog Output Objekt repräsentiert einen analogen Ausgangswert.

FB_BACnet_AnalogValue_ADS

Repräsentiert einen analogen Zustandswert innerhalb eines Programms.

FB_BACnet_BinaryOutput_ADS

Ein Binary Output Objekt repräsentiert einen binaren Ausgangswert.

FB_BACnet_BinaryValue_ADS

Repräsentiert einen binären Zustandswert innerhalb eines Programms.

FB_BACnet_MultiStateOutput_ADS

Repräsentiert einen ganzzahligen Ausgangswert

FB_BACnet_MultiStateValue_ADS

Repräsentiert einen ganzzahligen Ausgangswert.

Lokale BACnet Objekte (Treiber)

Bausteine

Beschreibung

FB_BACnet_Loop_DRV_EX

Dieser Baustein wird mit einem TwinCAT BACnet Loop Objekt mit aktivierter interner Regelung verknüpft. Der Regelungsalgorithmus wird direkt im BACnet-Stack und nicht in der SPS implementiert. Alle anderen Loop-FBs implementieren ihren Regelungsalgorithmus innerhalb der SPS. Der Vorteil dieses Bausteins in eine effizientere Ausführungszeit, da weniger BACnet-Properties über Prozessdaten verknüpft werden müssen.

Lokale BACnet Objekte (Raw Varianten)

RAW-FBs ermöglichen die Vorgabe physikalischer Mess- und Stellgrößer aus der SPS. Im Gegensatz zu anderen FBs für physikalische Mess- und Stellgrößen, welche direkt mit einem Hardware-Modul verknüpft sind. Das zugehörige RawIo*-Prozessdatum des BACnet-Objekts wird hier vom SPS-Automapping direkt mit einer SPS-Variablen verknüpft.

Bausteine

Beschreibung

FB_BACnet_Accumulator_RAW

Ein BACnet Accumulator Objekt repräsentiert einen durch Pulszählung ermittelten Messwert. Dieser Messwert wir in diesem Fall in der SPS gebildet.

FB_BACnet_AnalogInput_RAW

Ein BACnet Analog Input Objekt repräsentiert einen analogen Eingangswert. Dieser Funktionsbaustein kann eingesetzt werden, wenn eine Nachverarbeitung von analogen Eingangswerten in der SPS erfolgen soll, oder analoge Werte direkt in der SPS gebildet werden und diese nur lesbar sein sollen.

FB_BACnet_AnalogOutput_RAW

Ein BACnet Analog Output Objekt repräsentiert einen analogen Ausgangswert. Dieser Funktionsbaustein kann u.a. eingesetzt werden, wenn ein analoges Ausgangssignal vor der Ausgabe vorverarbeitet werden soll.

FB_BACnet_BinaryInput_RAW

Ein Binary Input Objekt repräsentiert einen binären Einsgangswert. Dieser Funktionsbaustein kann eingesetzt werden wenn eine Nachverarbeitung von binären Eingangswerten in der SPS erfolgen soll (z.B. Entprellung)

FB_BACnet_BinaryOutput_RAW

Ein Binary Output Objekt repräsentiert einen binaren Ausgangswert. Dieser Funktionsbaustein kann u.a. eingesetzt werden, wenn ein binäres Ausgangssignal vor der Ausgabe vorverarbeitet werden soll.

FB_BACnet_MultiStateInput_RAW

Ein Multistate Input Objekt repräsentiert einen ganzzahligen/mehrstufigen Eingangswert.

FB_BACnet_MultiStateOutput_RAW

Ein Multistate Output Objekt repräsentiert einen ganzzahligen/mehrstufigen Ausgangswert.

FB_BACnet_PulseConverter_RAW

Ein Pulse Converter Objekt repräsentiert einen durch Pulszählung ermittelten Messwert.

Lokale BACnet Objekte (Revision 6 spezifisch)

Bausteine

Beschreibung

FB_BACnet_Accumulator_R6

Zur Revision 6 kompatibler Funktionsbausstein, der nur mit TwinCAT BACnet Revision 6 verwendet werden sollte.

FB_BACnet_Accumulator_RAW_R6

Zur Revision 6 kompatibler Funktionsbausstein, der nur mit TwinCAT BACnet Revision 6 verwendet werden sollte.

Client BACnet Objekte (Remote)

Die Funktionsbausteine für Remote-Objekte bieten den Zugriff auf BACnet-Objekte anderer Geräte. Bei den Remote-FBs werden drei Varianten unterschieden. Die Basis-FBs ohne Endung bieten den lesenden Zugriff auf die Properties PresentValue und StatusFlags. Eine umfangreichere Auswahl an Properties wird in den "_EX"-Varianten unterstützt. Wenn mit minimal lesenden Properties zusätzlich schreibende Zugriffe ausgeführt werden sollen, können die "_WR"-Varianten verwendet werden. Generell sollten die Funktionsbausteine mit wenigen Properties bevorzugt werden, um die Netzlast zu minimieren.

Für eine effiziente Einbindung entfernter BACnet-Geräte kann die Funktion .exp-Export (im BACnet Device) verwendet werden, mit der sehr einfach die SPS-Variablen-Deklaration der Remote-FBs gescannter bzw. über eine EDE-Datei eingelesene Client-Konfigurationen erstellt werden.

Bausteine

Beschreibung

FB_BACnet_RemoteAccumulator

Ein BACnet Accumulator Objekt repräsentiert einen durch Pulszählung ermittelten Messwert.

FB_BACnet_RemoteAnalogInput

Ein BACnet Analog Input Objekt repräsentiert einen analogen Eingangswert. 

FB_BACnet_RemoteAnalogOutput

Ein BACnet Analog Output Objekt repräsentiert einen analogen Ausgangswert.

FB_BACnet_RemoteAnalogValue

Repräsentiert einen analogen Zustandswert innerhalb eines Programms.

FB_BACnet_RemoteAveraging

Ermöglicht die Berechnung statistischer Daten innerhalb einer Steuerung.

FB_BACnet_RemoteBinaryInput

Ein Binary Input Objekt repräsentiert einen binären Einsgangswert.

FB_BACnet_RemoteBinaryOutput

Ein Binary Output Objekt repräsentiert einen binaren Ausgangswert.

FB_BACnet_RemoteBinaryValue

Repräsentiert einen binären Zustandswert innerhalb eines Programms.

FB_BACnet_RemoteCalendar

Ermöglicht die entkoppelte Definition von Ausnahmetagen für Zeitschaltpläne (Schedule Objekte).

FB_BACnet_RemoteCommand

Ermöglicht die Steuerung von komplexem Abläufen über zeitlich gestaffelte Schreibbefehle auf BACnet Objekt-Properties.

FB_BACnet_RemoteDevice

Bildet den logischen Einstiegspunkt eines BACnet-Geräts. Enthält u.a. die Liste aller BACnet-Objekte dieses Geräts.

FB_BACnet_RemoteEventEnrollment

Ermöglicht die Konfiguration regelbasierter Ereignismeldungen. Über das in viele Objekte Integrierte Meldesystem, können umfangreichere Regeln für das Auslösen vom Ereignismeldungen definiert werden. Ein Beispiel sind zusätzliche oder mehrfache Grenzwertpaare für ein PresentValue.

FB_BACnet_RemoteFile

Repräsentiert Eigenschaften eines Dateiobjekts.

FB_BACnet_RemoteGroup

Group-Objekte erlauben die Zusammenfassung multipler Properties in einem einzelnen Datenpunkt.

FB_BACnet_RemoteLoop

Repräsentiert die Eigenschaften eines PID-Reglers.

FB_BACnet_RemoteMultiStateInput

Repräsentiert einen ganzzahligen/mehrstufigen Eingangswert.

FB_BACnet_RemoteMultiStateOutput

Repräsentiert einen ganzzahligen/mehrstufigen Ausgangswert.

FB_BACnet_RemoteMultiStateValue

Repräsentiert einen ganzzahligen/mehrstufigen Zustandswert.

FB_BACnet_RemoteNotificationClass

Das Notification Class Objekt dient zur Konfiguration der Verteilung von Ereignismeldungen (EventNotifications).

FB_BACnet_RemoteProgram

Ein BACnet Program Objekt ermöglich die Veränderung der Zustände eines SPS-Programms.

FB_BACnet_RemotePulseConverter

Ein Pulse Converter Objekt repräsentiert einen durch Pulszählung ermittelten Messwert.

FB_BACnet_RemoteSchedule

Repräsentiert einen Zeitschaltplan mit dessen Hilfe Werte anderer BACnet-Objekte an Hand von zeitbasierten Schalteinträgen beschrieben werden.

FB_BACnet_RemoteTrendLog

Repräsentiert aufgezeichnete historische Daten, die zyklisch mit festem Intervall oder ereignisbasiert aufgezeichnet werden.

ADS Bausteine für den generischen Zugriff auf sämtliche online Properties (Rohdatenzugriff)

Funktionsbausteine für den Zugriff auf BACnet Properties über ADS. Sämtliche BACnet online Properties von Server und Client Objekten können über ADS gelesen bzw. geschrieben werden.

Bausteine

Beschreibung

FB_BACnet_ReadProp

Lesezugriff auf Properties

FB_BACnet_WriteProp

Schreibzugriff auf Properties

ADS Bausteine für den Zugriff auf spezifische Properties

Funktionsbausteine für den spezifischen Zugriff auf BACnet Properties mit Datentypwandlung über ADS. Sämtliche BACnet Properties von Server und Client Objekten können über ADS gelesen bzw. geschrieben werden. Aufbauend auf den Bausteinen FB_BACnet_ReadProp und -WriteProp wandeln die folgenden Bausteine, die per ADS gelesen Daten in PLC Datentypen um bzw. codieren die PLC Daten in BACnet Daten während des Schreibzugriffs. Die Größenbegrenzung der folgenden ADS Zugriffe hängt mit dem globalen ADS-Datenpuffer zusammen und liegt bei ca. 8kByte (siehe ST_BACnet_GlobalAdsBuffer).

Bausteine

Beschreibung

Zugriff

FB_BACnet_ObjectNameProperty

ADS Zugriff auf die Property Object_Name vom Typ CharacterString inklusive Decoding von UTF-8, UCS-2 und UCS-4

Lesen

FB_BACnet_DescriptionProperty

ADS Zugriff auf die Property Description vom Typ CharacterString inklusive Decoding von UTF-8, UCS-2 und UCS-4

Lesen

FB_BACnet_EventMessageTextsProperty

ADS Zugriff auf die Property Event_Message_Texts vom Typ CharacterStringExtList inklusive Decoding von UTF-8, UCS-2 und UCS-4

Lesen

FB_BACnet_ObjectListProperty

ADS Zugriff auf die Property Object_List vom Typ BACnetObjectIdentifier[]

Lesen

FB_BACnet_ExceptionScheduleProperty

ADS Zugriff auf die Property Exception_Schedule vom Typ BACnetSpecialEventList; jedoch ausschließlich für Einträge mit Datentyp Bool

Lesen, Schreiben

FB_BACnet_WeeklyScheduleProperty

ADS Zugriff auf die Property Weekly_Schedule vom Typ BACnetDailyScheduleList; jedoch ausschließlich für Einträge mit Datentyp Bool

Lesen, Schreiben

FB_BACnet_LogBufferProperty

ADS Zugriff auf die Property Log_Buffer vom Typ BACnetLogRecordList; jedoch ausschließlich für Einträge mit Datentyp Real

Lesen

FB_BACnet_RecipientListProperty

ADS Zugriff auf die Property Recipient_List vom Typ BACnetDestination[] (z.B. NotificationClass Objekt)

Lesen, Schreiben

ADS Bausteine für den Zugriff auf Dienst- und Diagnosedaten

Bausteine

Beschreibung

FB_BACnet_GetDiagInfo

ADS Zugriff auf die Diagnosedaten des BACnet Adapters

FB_BACnet_NSinkReadEvent

ADS Zugriff auf die BACnet Notification Sink: Auslesen eines BACnet Events

FB_BACnet_NSinkAcknEvent

ADS Zugriff auf die BACnet Notification Sink: Dienst zur Quittierung eines BACnet Events

FB_BACnet_NSinkRemoveEvent

ADS Zugriff auf die BACnet Notification Sink: Löschen eines BACnet Events (ersetzt FB_BACnet_NotificationSinkDelEntry)

FB_BACnet_TimeSync

ADS Zugriff auf den BACnet Adapter: Dienst zur Zeitsynchronisierung im BACnet Netzwerk (broadcast) oder lokal.

Der Baustein stellt die aktuelle Systemzeit zyklisch als Ausgang bereit und sollte in jedem BACnet Projekt als Uhrzeitquelle im PLC Programm verwendet werden.

BACnet Hilfsbausteine für Datum und Uhrzeit

Bausteine

Beschreibung

F_BACnet_CheckDay

Funktion zur Prüfung eines Datum-Zahlenwertes (BYTE) für den Tag des Monats auf Gültigkeit.

F_BACnet_CheckDayOfWeek

Funktion zur Prüfung eines Datum-Zahlenwertes (BYTE) für den Wochentag auf Gültigkeit.

F_BACnet_CheckHour

Funktion zur Prüfung eines Uhrzeit-Zahlenwertes (BYTE) für die Stunden-Angabe auf Gültigkeit.

F_BACnet_CheckHundredths

Funktion zur Prüfung eines Uhrzeit-Zahlenwertes (BYTE) für die Hundertstelsekunden-Angabe auf Gültigkeit.

F_BACnet_CheckMinute

Funktion zur Prüfung eines Uhrzeit-Zahlenwertes (BYTE) für die Minutenangabe auf Gültigkeit.

F_BACnet_CheckMonth

Funktion zur Prüfung eines Datum-Zahlenwertes (BYTE) für den Monat auf Gültigkeit.

F_BACnet_CheckSecond

Funktion zur Prüfung eines Uhrzeit-Zahlenwertes (BYTE) für die Sekundenangabe auf Gültigkeit.

F_BACnet_CheckWeekOfMonth

Funktion zur Prüfung eines Datum-Zahlenwertes (BYTE) für die Woche des Monats auf Gültigkeit.

F_BACnet_CheckYear

Funktion zur Prüfung eines Datum-Zahlenwertes (BYTE) für das Jahr auf Gültigkeit.

F_BACnet_DateHasPlaceholder

Funktion zur Prüfung auf Platzhalter (255 → undefiniert) in einer Datumsangabe.

F_BACnet_DateMerge

Funktion für das Zusammenführen von 2 Zeitstempeln.

F_BACnet_DateTime_TO_TimeStruct

Funktion zur Umwandlung eines BACnet Zeitstempels in den Datentyp TIMESTRUCT.

F_BACnet_DateTimeString

Funktion zur Zeichenkettendarstellung eines BACnet Zeitstempels.

F_BACnet_DateUnspecified

Funktion zur Prüfung auf Platzhalter (255 → undefiniert) in einer Datumsangabe.

F_BACnet_DaysInMonth

Funktion zur Berechnung der Anzahl Tage im gegebenen Monat eines Jahres.

F_BACnet_Get100msDate

Funktion zur Berechnung des Zeitstempels in 100ms Schritten seit 1900.

F_BACnet_Get100msTime

Funktion zur Berechnung des Zeitstempels in 100ms Schritten seit 00:00:00.0 Uhr.

F_BACnet_TimeHasPlaceholder

Funktion zur Prüfung auf Platzhalter (255 → undefiniert) in einer Zeitangabe.

F_BACnet_TimeMerge

Funktion für das Zusammenführen von 2 Zeitstempeln.

F_BACnet_TimeString

Funktion zur Zeichenkettendarstellung eines BACnet Zeitstempels.

F_BACnet_TimeStruct_TO_DateTime

Funktion zur Umwandlung eins Zeitstempels vom Datentype TIMESTRUCT  in einen BACnet Zeitstempel.

F_BACnet_TimeUnspecified

Funktion zur Prüfung auf Platzhalter (255 → undefiniert) in einer Zeitangabe.

BACnet Hilfsbausteine für Bit-Konvertierung (Bit Strings)

Bausteine

Beschreibung

F_BACnet_EventTransitionFlags

Funktion zum Decodieren der Prozessdaten der Property Acked_Transitions eines BACnet Objekts.

F_BACnet_GetEventTransFlagsData

Funktion zum Codieren des Property-Werts der Property Event_Enable eines BACnet Objekts.

F_BACnet_GetLimitEnFlagsData

Funktion zum Codieren des Property-Werts der Property Limit_Enable eines BACnet Objekts.

F_BACnet_GetStatusFlagsData

Funktion zum Codieren des Property-Werts der Property Status_Flags eines BACnet Objekts.

F_BACnet_LimitEnableFlags

Funktion zum Decodieren des Prozessdatums der Property Limit_Enable eines BACnet Objekts.

F_BACnet_StatusFlags

Funktion zum Decodieren des Prozessdatums der Property Status_Flags eines BACnet Objekts.

BACnet Hilfsbausteine für Multi-State-Objekte

Bausteine

Beschreibung

F_BACnet_MultiStatePV

Funktion zur Umsetzung eines UDINT-Wertes der PLC in den Prozessdatenwert eines BACnet MultiState* Objekts Property Present_Value.

BACnet Hilfsbausteine für REAL-Werte

Bausteine

Beschreibung

F_BACnet_RealPV (obsolet: F_BACnet_AnalogPV)

Funktion zur Umsetzung eines REAL-Wertes der PLC in den Prozessdatenwert eines BACnet Analog* Objekts Property Present_Value.

F_BACnet_IsFinite

Funkktion zum Prüfen auf Endlichkeit eines REAL Werts.

F_BACnet_RealEQ

Funktion zum Vergleich von zwei Gleitpunktwerten unter Berücksichtigung des Wertebereichs.

F_BACnet_RealGE

Funktion zum Vergleich von zwei Gleitpunktwerten unter Berücksichtigung des Wertebereichs.

F_BACnet_RealGT

Funktion zum Vergleich von zwei Gleitpunktwerten unter Berücksichtigung des Wertebereichs.

F_BACnet_RealLE

Funktion zum Vergleich von zwei Gleitpunktwerten unter Berücksichtigung des Wertebereichs.

F_BACnet_RealLT

Funktion zum Vergleich von zwei Gleitpunktwerten unter Berücksichtigung des Wertebereichs.

F_BACnet_RealNull (obsolet: F_BACnet_NAN)

Funktion gibt den Gleitpunktwert "Not aNumber" zurück, der als Wert der Property Present_Value eines Analog* Objekt dem Wert Null (keine Wert) entspricht.

F_BACnet_RealNothing

Funktion gibt den Gleitpunktwert "Not aNumber" zurück, der als Wert der Property Present_Value eines Analog* Objekt dem Wert Nothing (nicht-auswerten) entspricht. Prozessdaten mit dem codierten Wert Nothing werden vom BACnet Stack ab Revision 12 nicht verarbeitet.

F_BACnet_RealToStr

Funktion zur Umwandlung einer Gleitpunktzahl in eine Zeichenkette unter Berücksichtigung des Wertebereichs.

BACnet Hilfsbausteine für String-Verarbeitung

Bausteine

Beschreibung

F_BACnet_GetObjectIdString

Funktion zur Ausgabe der Objekt-ID eines BACnet Objekts als kurze Zeichenkette.

FB_BACnet_StringExtDecode

Funktionsbaustein zum Decodieren von BACnet Strings.

FB_BACnet_StringExtEncode

Funktionsbaustein zum Codieren von BACnet Strings.

Signalkonvertierung

Bausteine

Beschreibung

FB_BACnet_PWM

Funktionsbaustein zum Erzeugen eines pulsierenden Ausgabesignals, mit definierter Ein- und Ausschaltdauer in Prozent der Periodendauer (Pulsweitenmodulation).

Hilfsfunktionen für BACnet BinaryPV Datentypen

Bausteine

Beschreibung

F_BinPV_AND

Funktion zur logischen Verknüpfung von BACnet BinaryPV Werten.

F_BinPV_NOT

Funktion zum Invertieren eines BACnet BinaryPV Werts.

F_BinPV_OR

Funktion zur logischen Verknüpfung von BACnet BinaryPV Werten.

F_BinPV_XOR

Funktion zur logischen Verknüpfung von BACnet BinaryPV Werten.

F_BinPV_To_Bool

Funktion zum Konvertieren eines BACnet BinaryPV Werts in den Datentyp BOOL.

F_Bool_To_BinPV

Funktion zur Umsetzung eines Wertes mit Datentyp BOOL der PLC in den Prozessdatenwert eines BACnet Binary* Objekts / Property Present_Value.

Sonstige BACnet Hilfsfunktionen

Bausteine

Beschreibung

F_BACnet_GetObjectListIndex

Funktion zum Feststellen der Position einer BACnet Object-ID in einer Liste mit IDs.

F_BACnet_GetObjId

Funktion zur Codierung des Objekt-Typs und der Objekt-Instance in den BACnet Object_Identifier.

F_BACnet_GetObjInstance

Funktion zum Decodierung des BACnet Object_Identifier in die Objekt-Instance (Objektnummer).

F_BACnet_GetObjType

Funktion zur Decodierung des BACnet Object_Identifier in den Objekt-Typ.

FB_BACnet_AccLimit

Funktionsbaustein für die Begrenzung von Signaländerung pro Zeit (maximale Beschleunigung).

FB_BACnet_AvgValue

Funktionsbaustein zur Mittelwertbildung einer Eingangsgröße X über n Werte.

FB_BACnet_PidControl

PID Regelbaustein in Parallelanordnung bzw. Idealform.

FB_BACnet_PT1

Funktionsbaustein zur Nachbildung einer Verzögerung 1. Ordnung.

BACnet Konstanten

Konstanten

Beschreibung

BACnet_Globals

Globale Konsten für Default-Werte, Fehlermeldungen, Datenbereichsgrenzen usw.

BACnet Diagnose-Daten

Datentypen

Beschreibung

ST_BACnet_DiagEthStatistics

Beschreibt Diagnosedaten des Ethernet-Adapter wie gesendete, empfangene oder fehlerhafte Nachrichten.

ST_BACnet_DiagnosisTiming

Enthält Informationen über Ausführungszeiten innerhalb des BACnet-Stack.

ST_BACnet_FrameStatistics

Enthält Informationen über gesendete und empfangene BACnet-Netzwerkpakete.

ST_BACnet_Info

Informationen zum Speicherverbrauch.

ST_BACnet_ServerStatistics

Enthält Informationen zu persistenten Daten und eine Änderungsstatistik der Properties.

ST_BACnet_TcIoEthStatistic

Beschreibt Diagnosedaten des Ethernet-Adapter.

ST_BACnet_TcIoEthTxRxErrorCount

Beschreibt Diagnosedaten des Ethernet-Adapter.

ST_BACnet_UnConfirmedServiceDiag

Ausführliche Daten zu BACnet-Diensten

BACnet Datentypen

Datentypen

Beschreibung

ST_BACnet_AdsConnection

Struktur mit den Verbindungsinformationen eines ADS Servers des BACnet Treiber

ST_BACnet_CharacterStringExt

BACnet Zeichenkette inklusive des verwendeten Encoding-Formats.

ST_BACnet_CharacterStringExtListEntry

Liste von BACnet Zeichenketten.

ST_BACnet_Date

Datum mit Tag, Wochentag, Monat und Jahr.

ST_BACnet_DateTime

Beschreibt Datum und Uhrzeit.

ST_BACnet_Diagnosis

siehe BACnet Diagnose Daten.

ST_BACnet_EventTransitionBits

PLC Abbildung des BACnet Datentyps BACnetEventTransitionBits (Properties Event_Enable und Acked_Transitions).

ST_BACnet_ExceptionScheduleBool

Struktur für den Datenaustausch der Property exception_schedule mit Hilfe des Funktionsbausteins FB_BACnet_ExceptionScheduleProperty

ST_BACnet_ExceptionScheduleEntryBool

Teildaten der Property ExceptionSchedule des Schedule-Objekts

ST_BACnet_LimitEnable

PLC Abbildung des BACnet Datentyps BACnetLimitEnable. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Limit_Enable.

ST_BACnet_LogBufferEntryReal

PLC Abbildung des BACnet Datentyps BACnetLogRecord für Log_Datum vom Typ Real. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Log_Buffer.

ST_BACnet_LogBufferReal

Struktur für den Datenaustausch der Property Log_Buffer mit Hilfe des Funktionsbausteins FB_BACnet_LogBufferProperty

ST_BACnet_NSinkEvent

PLC Abbildung der Daten eines Event-Eintrags der BACnet Notification Sink.

ST_BACnet_ObjectIdentifierList

Struktur für die Beschreibung der Objektliste eines Geräts. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 Property Object_List (Device-Objekt).

ST_BACnet_ObjectTypesSupported

PLC Abbildung des BACnet Datentyps BACnetObjectTypesSupported. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Protocol_Object_Types_Supported.

ST_BACnet_ProgramHandshakeRequests

Struktur zum Betrieb des Programm-Objekts

ST_BACnet_ProgramHandshakeStates

Struktur zum Betrieb des Programm-Objekts

ST_BACnet_RecipientListDevice

Struktur für den Datenaustausch der Property Recipient_List mit Hilfe des Funktionsbausteins FB_BACnet_RecipientListProperty

ST_BACnet_RecipientListDeviceEntry

Teilstruktur für den Datenaustausch der Property Recipient_List mit Hilfe des Funktionsbausteins FB_BACnet_RecipientListProperty

ST_BACnet_ServicesSupported

PLC Abbildung des BACnet Datentyps BACnetServicesSupported. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Protocol_Services_Supported.

ST_BACnet_StatusFlags

PLC Abbildung des BACnet Datentyps BACnetStatusFlags. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Status_Flags.

ST_BACnet_Time

PLC Abbildung des BACnet Datentyps Time. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum Datentyp BACnetDateTime.

ST_BACnet_TimeValue

PLC Abbildung des BACnet Datentyps BACnetTimeValue für Einträge vom Typ Bool oder Null. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum Datentyp BACnetTimeValue.

ST_BACnet_TimeValueBool

PLC Abbildung des BACnet Datentyps BACnetTimeValue für Einträge vom Typ Bool.

ST_BACnet_TimeValueList

Liste von BACnet_TimeValue Einsträgen.

ST_BACnet_Value

Teilstruktur von ST_BACnet_TimeValue

ST_BACnet_WeeklyScheduleBool

Struktur für den Datenaustausch der Property Weekly_Schedule mit Hilfe des Funktionsbausteins FB_BACnet_WeeklyScheduleProperty

BACnet Enumerationen

Datentypen

Beschreibung

E_BACNETACTION

PLC-Abbildung des BACnet Datentyps BACnetAction. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Action.

E_BACNETADAPTERSTATUS

Status des BACnet-Adapters.

E_BACNETBINARYPV

PLC-Abbildung des BACnet Datentyps BACnetBinaryPV. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Present_Value von Binary* Objekten.

E_BACNETDATATYPES

Auflistung der möglichen BACnet Datentypen (Auszug).

E_BACNETDAYSOFWEEKBITS

Bit-Belegung der Wochentage

E_BACNETDEVICESTATUS

Status des BACnet Server Objekts (siehe BACnet-Spezifikation DIN EN ISO 16484-5 zum BACnet Device Objekt und Property System_Status).

E_BACNETEVENTSTATE

PLC-Abbildung des BACnet Datentyps BACnetEventState. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Event_State.

E_BACNETEVENTTRANSITIONBIT

Bit-Belegung der Event-Transition-Flags

Event_Enable und Acked_Transitions).

E_BACNETEVENTTYPE

PLC-Abbildung des BACnet Datentyps BACnetEventType. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Event_Type.

E_BACNETFILEACCESSMETHOD

PLC-Abbildung des BACnet Datentyps BACnetFileAccessMethod. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property File_Access_Method.

E_BACNETLIFESAFETYMODE

PLC-Abbildung des BACnet Datentyps BACnetLifeSafetyMode. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Mode und Accepted_Modes.

E_BACNETLIFESAFETYOPERATION

PLC-Abbildung des BACnet Datentyps BACnetLifeSafetyOperation. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Operation_Expected.

E_BACNETLIMITENABLEBITS

Bit-Belegung der Limit-Enable-Flags

(Limit_Enable).

E_BACNETLOGGINGTYPE

PLC-Abbildung des BACnet Datentyps BACnetLoggingType. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Logging_Type.

E_BACNETLOOPMODE

Betriebsarten des PLC LOOP Objekts FB_BACnet_LOOP

E_BACNETNOTIFYTYPE

PLC-Abbildung des BACnet Datentyps BACnetNotifyType. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Notify_Type.

E_BACNETOBJECTSUPPORTEDBITS

Bit-Belegung der Object-Types-Supported-Flags

Protocol_Object_Types_Supported).

E_BACNETOBJECTTYPE

Auflistung der möglichen BACnet Objekte (Auszug).

E_BACNETPERSISTENTDATASTATE

PLC-Abbildung des herstellerspezifischen BACnet Datentyps PersistentDataState (siehe BACnet Device Objekt

E_BACNETPIDTUNINGMODE

Tuningmodi des Bausteins FB_BACnet_LOOP

E_BACNETPOLARITY

PLC-Abbildung des BACnet Datentyps BACnetPolarity. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Polarity.

E_BACNETPRIORITY

Auflistung der möglichen BACnet Prioritäten einer kommandierbaren Property (z.B. Present_Value).

E_BACNETPROGRAMERROR

PLC-Abbildung des BACnet Datentyps BACnetProgramError. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Reason_For_Halt und Funktionsbausteinbeschreibung FB_BACnet_Program

E_BACNETPROGRAMREQUEST

PLC-Abbildung des BACnet Datentyps BACnetProgramRequest. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Program_Change und Funktionsbausteinbeschreibung FB_BACnet_Program

E_BACNETPROGRAMSTATE

PLC-Abbildung des BACnet Datentyps BACnetProgramState. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Program_State und Funktionsbausteinbeschreibung FB_BACnet_Program

E_BACNETPROPERTYIDENTIFIER

Auflistung der möglichen BACnet Properties (Auszug).

E_BACNETRELIABILITY

Auflistung der möglichen Werte der BACnet Property Reliability (Auszug).

E_BACNETSEGMENTATION

PLC-Abbildung des BACnet Datentyps BACnetSegmentation. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Segmentation_Supported.

E_BACNETSILENCEDSTATE

PLC-Abbildung des BACnet Datentyps BACnetSilencedState. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Silenced.

E_BACNETSTATUSFLAGS

Bit-Belegung der Status-Flags

(Status_Flags).

E_BACNETSTRINGENCODINGTYPES

Die Enumeration enthält eine Auflistung der vom BACnet Treiber unterstützten Zeichenketten Encodings.

E_BACNETUNIT

PLC-Abbildung des BACnet Datentyps BACnetEngineeringUnits. Siehe BACnet-Spezifikation DIN EN ISO 16484-5 zur Property Units.