BACnet-Device

BACnet/IP ist ein Ethernet basierendes Protokoll und kann deshalb im TwinCAT System Manager in der Kategorie "Ethernet" projektiert werden. Über das Konfigurationselement "I/O Devices" kann einer Konfiguration ein BACnet-Device hinzufügt werden. Das BACnet-Device stellt die Verbindung zu einem Netzwerkadapter her.

Momentan existieren zwei Versionen von BACnet, die aus Kompatibilitätsgründen parallel im System Manager konfiguriert werden können. Beim "BACnet Ethernet Device" handelt es sich um die ältere zertifizierte Version nach BACnet Revision 6. "BACnet Ethernet Device Revision 12" ist die aktuelle BACnet-Version nach Revision 12, die auch zertifiziert wurde. Für neue Projekte sollte immer die aktuelle Version; momentan Revision 12; verwendet werden.

BACnet-Device 1:

BACnet-Device Einstellungen

IP-Einstellungen

Über den Reiter "Settings" eines BACnet-Device wird dessen IP-Adresse angezeigt und kann verändert werden. Die IP-Adresse wird beim Anlegen vom ausgewählten Netzwerkadapter übernommen. Die für BACnet verwendete IP-Adresse muss dabei nicht mit der IP-Adresse des Netzwerkadapters übereinstimmen, sondern kann in einem separaten IP-Adressraum angesiedelt sein. Auf einem TwinCAT-System können mehrere BACnet-Devices projektiert werden, wenn mehrere Netzwerkadapter vorhanden sind. Über die Option "Use operating system settings" kann die IP-Einstellung des Betriebssystems übernommen werden. Diese Option bietet sich z.B. an, wenn ein Gerät seine IP-Adresse über DHCP bezieht.

BACnet-Device 2:

AmsNetID-Einstellungen

Nach dem Anlegen eines BACnet-Device können über den Settings-Reiter weitere Einstellungen vorgenommen werden. Jedes BACnet-Device verfügt über eine AmsNetId, die als Zugangspunkt für azyklische Dienste verwendet wird. Die AmsNetID besitzt 6 Stellen. Die ersten 4 Stellen werden durch die System-NetID gebildet, die 5. Stelle wird durch die Item-ID bestimmt (1.Gerät: 2 - 2.Gerät: 3 usw.) und die 6. Stelle ist immer 1. Soll eine BACnet-Konfiguration auf einem anderen Zielsystem aktiviert werden, müssen die ersten 4 Stellen der AmsNetID entsprechend angepasst werden. Hierzu erscheint beim Verbinden mit dem neuen Zielsystem ein entsprechender Dialog. Generell wird empfohlen den Modus "Use relative NetId" zu aktivieren. Hierbei werden intern die ersten 4 Stellen der NetId mit 0 initialisiert und beim Laden des BACnet-Device durch die aktuelle System-NetID ersetzt. Hierdurch ist es möglich eine auf einem System aktivierte Konfiguration durch Kopieren entsprechender Dateien (CurrentConfig.xml) auf ein anderes Zielsystem zu übertragen.

Task-Konfiguration

Ein BACnet-Device wird über ein asynchrones Mapping mit einer Task verbunden. Die entsprechende Task kann über das Feld "Task Configuration" eingestellt werden. Für ein BACnet-Device kann jede Task mit einem Port >350 verwendet werden. Wird ein BACnet-Device erstellt, wird automatisch eine Default-Task mit der Priorität 58 erstellt und dem BACnet-Device zugeordnet.

Import-/Export

Des Weiteren können über den "Settings"-Reiter des BACnet-Device verschiedene Datei-Formate importiert und exportiert werden. So kann eine .exp-Datei exportiert werden, die einer SPS eine BACnet-Konfiguration zur Verfügung stellt. Es werden Deklarationen von Funktionsbausteinen der TcBACnet.lib bzw. TcBACnetRev12.lib für alle projektierten BACnet-Server- und Client-Objekte erstellt, die dann im SPS-Programm verwendet werden können. So kann z.B. sehr komfortabel auf entfernte BACnet-Objekte zugegriffen werden, da im Rahmen des SPS-Automapping Prozessdatenvariablen automatisch verknüpft werden.

Der XML-Export und -Import verarbeitet BACnet-Konfigurationen in einem herstellerspezifischen Format.

Zusätzlich werden der Import und Export des Engineering Data Exchange (EDE) in der Version 2.2 unterstützt. Das EDE-Format ist ein Komma bzw. Semikolon-separierte Liste mit festen und optionalen Spalten. Ob Komma oder Semikolon als Trennzeichen verwendet wird, hängt von länderspezifischer Einstellung ab. Es wird der im Betriebssystem (Regions- und Spracheinstellungen) festgelegte Listenseparator verwendet. Beim Export kann selektiert werden, ob zusätzlich die optionalen Spalteneinträge exportiert werden sollen ("Include optional columns"). Zusätzlich können in der optionalen Spalte "vendor-specific-address" Informationen zu verknüpften Variablen der TwinCAT-Konfiguration in die EDE-Datei übernommen werden. Beim EDE-Export eines BACnet-Servers kann gewählt werden, ob Offline-Daten (der Settings-Dialoge) oder Online-Daten für den Export verwendet werden sollen.

BACnet-Device 3:

Zeitverwaltung

In der Gruppe "Time Management" des BACnet-Device "Settings"-Reiter kann eingestellt werden, ob die Uhrzeit vom unterliegenden Betriebssystem übernommen werden soll. Hierbei wird auch die Sommer- und Winterzeit automatisch aktualisiert, wenn eine Automatik im Betriebssystem konfiguriert wurde. Bei der manuellen Zeiteinstellung kann der UTC-Offset sowie der DayLightSavingsStatus (Sommer-/Winterzeit) über diesen Dialog vorgegeben werden. Bei der manuellen Konfiguration der Zeitparameter können der UTC-Offset und DayLightSavingsStatus über BACnet verändert werden. Die Umschaltung zwischen Sommer- und Winterzeit bewirkt dann eine Zeitumstellung von 60 Minuten.

Weitere Einstellmöglichkeiten des BACnet-Device werden in weiteren Abschnitten vorgestellt.

BACnet-Server, -Client

Unterhalb eines BACnet-Device können BACnet-Clients und -Server projektiert werden (siehe auch Beispiel: "BACnet Adapter und Server anlegen"). Ein Server stellt BACnet-Objekte zur Verfügung. Ein BACnet-Client ermöglicht den Zugriff auf BACnet-Objekte anderer BACnet-Geräte (Server) im Netzwerk.

BACnet-Device 4:

BACnet-Clients in einem Netzwerk können durch Scannen automatisch erkannt werden. Hierzu wird ein BACnet-Device angelegt und mit Hilfe der Scan-Funktion des TwinCAT System Manager zum Suchen nach anderen Geräten (Servern) veranlasst. Für jedes gefundene Gerät werden die geladenen BACnet-Objekte erkannt und im System Manager angelegt. Zudem können Clients mit deren BACnet-Device-ID manuell konfiguriert werden, wobei die entsprechende IP-Adresse mit dem BACnet-Dienst Who-Is automatisch ermittelt wird. Das Anwenden der Scan-Funktion auf einen selektierten BACnet-Client führt zum Erkennen der Objekte dieses Gerätes, so dass die manuelle Projektierung entfällt.

Das Scannen von Clients resp. deren Objekten und Properties setzt jedoch eine bestehende BACnet-Installation voraus.

BACnet-Device 5: BACnet-Device 6:

BACnet Notification Sink

Eine Besonderheit unter den BACnet-Modulen stellt die sogenannte Notification Sink dar. Mit Hilfe dieser können Events gesammelt und COV-Subscriptions abonniert werden. Funktionell handelt es sich dabei nicht um ein BACnet-Objekt, so dass die Notification Sink aus BACnet nicht für andere Clients sichtbar ist. Jedoch ermöglichen ADS-Dienste den Zugriff auf die Notification Sink (u.a. auch via TCP/IP, siehe Kapitel "ADS-Interface").

BACnet-Device 7:

Notification Sink und Zertifizierung

Die Notifikation Sink ist kein Bestandteil der Zertifizierung. Die Verwendung der Notifikation Sink obliegt der Verantwortung des Anwenders.

BACnet-Device 8:

Pro BACnet-Device können mehrere Notification Sinks (mit verschiedenen Prozessidentifikatoren - Process ID) konfiguriert werden, um z.B. verschiedene Gewichtungen von Ereignisprioritäten zu unterscheiden. Für jede Notification Sink wird ein eindeutiger ADS-Port generiert, der unter "Identification" angezeigt wird. Über das Feld "Configuration" kann die Größe der Warteschlagen für COV- und Event-Notifications festgelegt werden. Ist eine Warteschlange voll, werden neu ankommende Notifications verworfen. Über Option "Notification List Rotation" kann dafür gesorgt werden, dass bei voller Warteschlange die älteste Nachricht verworfen wird (Ringpuffer). Ansonsten muss über die ADS-Schnittstelle sichergestellt werden, dass die Warteschlangen entsprechend schnell verarbeitet und Einträge (via ADS) gelöscht werden.

Über die Option "Collect All Notification" kann für eine Notification Sink festgelegt werden, dass alle Event- und COV-Notifications unabhängig ihrer Process-ID empfangen werden; also alle Meldungen die auf dem System eingehen.

Hauptverwendung für die Notification Sink ist die Verarbeitung bzw. Visualisierung von Alarmmeldungen (Event-Notifications). Abonnements von COV-Notifications sollten nur verwendet werden, wenn Zustandsänderungen von komplexen BACnet-Properties implementiert werden müssen. Z.B. kann hiermit überwacht werden, ob einem Gerät dynamisch neue BACnet-Objekte hinzugefügt wurden. Für Properties mit einfachen Datentypen sollten Prozessdaten von Remote-Objekten verwendet werden, da auch hier effiziente COV-Notifications umgesetzt werden.

Über ein Kontextmenü kann ein anderer projektierter Client als Ziel für COV-Subscriptions eingestellt werden und über den Property-Wizard komfortabel Properties selektiert werden.

Im Reiter "Online" können empfangene Notifications (inkl. Empfangszeitstempel) betrachtet werden. Zusätzlich können über ein Kontextmenü im Online-Reiter einzelne Event- und COV-Notifications gelöscht und auch alle Warteschlangen mit einem Befehl gelöscht werden. Auch das Bestätigen von Meldungen (AcknowledgeAlarm) ist über den Online möglich. Beim Bestätigen einer Meldung kann ein Meldungstext für die Bestätigungsnachricht angegeben werden, die bei allen Recipients dieser Notification angezeigt wird.

BACnet-Device 9:

Die Abbildung zeigt eine EventNotification im Online-Reiter einer Notification Sink. Der Nachrichtentext (messageText) einer EventNotification wird in TwinCAT BACnet/IP-Geräten nachfolgendem Verfahren gebildet:

Das Löschen von EventNotifications kann auch über den Funktionsbaustein FB_BACnet_NotificationSinkDelEntry der SPS-Bibliothek TcBACnet.lib bzw. TcBACnetRev12.lib realisiert werden.

Ein Beispiel zur Verwendung der NotificationSink sowie der Generierung von EventNotifications findet sich im Abschnitt Anwendung: Beispiel: NotificationClass und NotificationSink.