BACnet Netzwerk Konfiguration

Der WinCC OA BACnet Treiber unterstützt die Datenverbindungsprotokolle BACnet/IP und BACnet/Secure Connect (BACnet/SC). Eine Treiberinstanz kann entweder mit einem BACnet/IP oder einem BACnet/SC Netzwerk verbunden werden. In den folgenden Abschnitten wird beschrieben, wie der Treiber für die Verbindung mit solchen Netzwerken eingerichtet wird.

BACnet/IP

Diese Sektion enthält ein Beispiel für die Konfiguration des BACnet Treibers in der Config-Datei. Details zu den Einträgen in der Konfigurationsdatei, finden Sie im Kapitel Config-Einträge des BACnet Treibers.

Für den Start des BACnet Treibers ist der Config-Eintrag net verpflichtend:

Mit diesem Eintrag wird die Art der Verbindung zu den BACnet Geräten konfiguriert:

Syntax

net = <Netzwerk> ”IP” <IP-Adresse> <Subnetzmaske> <UDPPort> <BBMDAdresse> <BBMDMaxFremdgeräte> <FremdgerätWartezeit>

Dabei bedeuten:

Netzwerk
Die eindeutig zugewiesene Netzwerknummer. Der BACnet Treiber kann zurzeit mit einem Netzwerk kommunizieren.
IP
Art des Protokolls. In der aktuellen Version wird nur IP (BACnet/IP) unterstützt.
IP-Adresse
IP-Adresse der Netzwerkkarte, über die das BACnet/IP Netz erreichbar ist. Wenn der Eintrag leer ist, dann wird die IP-Adresse über den eigenen Hostnamen bestimmt. Letzteres funktioniert nur dann zuverlässig, wenn im Rechner nur eine Netzwerkkarte eingebaut ist, welche verwendet wird.
Subnetzmaske
Die Subnetzmaske bestimmt die Broadcastadressen, mit der Broadcasts in das BACnet-Netz geschickt werden. Ist der Eintrag der Subnetzmaske leer (""), so wird die Subnetzmaske der eingestellten Netzwerkverbindung verwendet.
UDPPort
UDPPort welcher für die BACnet/IP-Kommunikation verwendet wird. In den meisten Fällen ist hier der Port 47808 (0xBAC0) einzustellen.
BBMDAdresse
IP-Adresse eines "BACnet/IP Broadcast Management Devices". Wenn der BACnet Treiber ein BBMD als Client verwenden soll, so ist dieser Eintrag auf die IP Adresse des BBMDs zu setzen.
BBMDMaxFremdgeräte
Wenn der BACnet Treiber als BBMD arbeiten soll, dann muss hier ein Wert größer 0 angegeben werden. Der Wert definiert die Anzahl der maximalen Fremdgeräte (Default = 0).
FremdgerätWartezeit
Wartezeit für Fremdgeräte (default = 120 Sekunden).

Beispiel für Config-Datei des BACnet Treibers

[bacnet]
net = 1 "IP" "" "" 47808 "" 0 120

BACnet/IP Broadcast Management Device (BBMD)

Durch Broadcast-Nachrichten (Who-Is) können BACnet-Geräte gefunden werden, die sich im Netzwerk befinden. Diese Broadcast-Nachrichten werden nur von Geräten im lokalen Netzwerk empfangen, von IP-Routern aber nicht an andere Subnetze weitergeleitet.

BBMDs werden verwendet, damit auch nach BACnet-Geräten außerhalb des lokalen Netzwerks gesucht werden kann. Für jedes Subnetz muss ein BBMD (entweder ein Gerät oder eine Softwareapplikation) konfiguriert werden. Dadurch können die Broadcast-Nachrichten, die vom lokalen Netzwerk via Unicasts empfangen werden, über das lokale Netzwerk hinaus an BBMDs anderer Subnetze weitergeleitet werden. Diese BBMDs verteilen die Nachrichten dann innerhalb ihres Netzwerks.

WinCC OA BACnet-Treiber als BBMD

Soll in einem der Subnetze der WinCC OA BACnet-Treiber als BBMD konfiguriert werden, gehen Sie wie folgt vor:

Definieren Sie beim Config-Eintrag "net" den passenden Wert für BBMDMaxFremdgeräte.

Der Treiber legt dann im /data-Ordner des Projekts automatisch die Datei "bdt_<Netzwerknummer>.txt" an. Die Netzwerknummer entspricht der per Config-Eintrag "net" definierten eindeutigen Netzwerknummer. Mit dem Config-Eintrag bacnetBdtLocation kann das Verzeichnis definiert werden, in dem die bdt-Datei abgelegt werden soll.

Melden sich BBMDs anderer Subnetze beim Treiber, legt dieser dafür die entsprechenden Einträge in der Datei an. Da es vorkommen kann, dass nicht alle BBMDs automatisch eingetragen werden, ist es sicherer alle notwendigen BBMDs manuell einzutragen. Die Syntax der Einträge wird im Header der bdt-Datei beschrieben.

Dadurch schickt der Treiber auf der Suche nach Geräten beispielsweise Who-Is-Nachrichten nicht nur lokal als Broadcast sondern auch gerichtet an die angegebenen BBMDs.

WinCC OA BACnet-Treiber mit BBMD

Wenn im Subnetzwerk bereits ein anderes BBMD definiert ist, kann der Treiber dieses BBMD verwenden. Setzen Sie hierfür die BBMD-IP-Adresse als BBMDAddress im "net"-Eintrag.

BACnet/SC

Das BACnet/SC verwendet als Datenverbindung eine Websocket-Verbindung. Diese Websocket-Verbindung bietet die notwendige Sicherheit wie Verschlüsselung.

Für BACnet/SC sind in der Spezifikation verschiedene Modi definiert. Diese sind:

  • Knotenpunkt ohne Hub-Funktion
  • Knotenpunkt mit Hub-Funktion
  • Direkte Verbindung

Von diesen Modi unterstützt der BACnet-Treiber nur den Modus "Knotenpunkt ohne Hub-Funktion". Dies bedeutet, dass ein Knoten mit Hub-Funktion im BACnet/SC Netzwerk vorhanden sein muss.

Für das Einrichten der BACnet/SC Konfiguration hat der Config-Eintrag [bacnet] net eine andere Syntax.

net = <Network> "SC" <IPAddress> <PrimaryHub> <SecondaryHub>
IPAddress
IP-Adresse der Netzwerkkarte, über die das BACnet/IP-Netzwerk erreichbar ist.
PrimaryHub
URL des primären BACnet Secure Hubs (erforderlich).
SecondaryHub
URL des sekundären BACnet Secure Hubs. Diese muss auf einen leeren String gesetzt werden, wenn keine vorhanden ist.

Um die Websocket-Verbindung zu konfigurieren, müssen Sicherheitszertifikate definiert werden. Dies muss mit den erforderlichen Einträgen [bacnet] secureCACertificate, [bacnet] secureCertificate, ../cfg_doku/all_config_entries.html#bacnet__secureCertificateLKey in der Konfigurationsdatei erfolgen. Siehe auch Beschreibung des Konfigurationseintrags. Diese Einträge müssen die Zertifikats-/Schlüsseldateien im PEM-Format definieren.