BACnet
Das Protokoll BACnet ermöglicht die Kommunikation von 2WinScada mit Controllern der Gebäudeautomation, HLK-Geräten und ähnlichen BACnet/IP-Geräten. 2WinScada arbeitet im Netzwerk als Client; es liest und schreibt periodisch die Eigenschaft Present Value der Objekte in den Geräten.
Wichtige unterstützte Funktionen:
- BACnet/IP-Kommunikation (IPv4) über UDP
- Erkennen der Geräte im Netzwerk mit Who-Is / I-Am und Massenimport
- Lesen der Tags aus der Objektliste des Geräts und Massenimport
- Zugriff auf Geräte in anderen Subnetzen durch Registrierung als Fremdgerät (Foreign Device) bei einem BBMD
- Automatisches Ermitteln der Geräteadresse aus der BACnet-Gerätekennung (Automatisches Who-Is)
Serielle Leitungen wie BACnet MS/TP und COV-Abonnements (Change of Value) werden nicht verwendet; die Werte werden nach dem Wert Aktualisierungsintervall [s] jedes Tags abgefragt.
Lizenz
BACnet gehört zu den Standardprotokollen und ist in allen Lizenz-Editionen Starter, Standard und Professional verfügbar. Einzelheiten finden Sie auf der Seite Lizenz.
Kanaldefinition
Auf der Registerkarte Allgemein des Fensters für einen neuen Kanal geben Sie den Kanalnamen ein und wählen unter Verbindungstyp den Eintrag BacNetIP aus. Nachdem Sie die Einstellungen auf den anderen Registerkarten vorgenommen haben, klicken Sie auf Speichern.

Registerkarte Verbindungsparameter:
| Feld | Beschreibung | Standard | Bereich |
|---|---|---|---|
| Port | UDP-Port, den 2WinScada für BACnet/IP verwendet. Der Standardport für BACnet/IP ist 47808 (hexadezimal 0xBAC0). | 47808 | 1–65535; Pflichtfeld |
| Timeout [ms] | Wartezeit auf die Antwort auf eine Anfrage | 3000 | 3000–86400000 |
| Wiederholungen | Wie oft eine unbeantwortete Anfrage erneut gesendet wird | 3 | 0–10 |
Registerkarte Erweiterte Parameter:
| Feld | Beschreibung | Standard | Bereich |
|---|---|---|---|
| Lokale Endpunkt-IP | IPv4-Adresse der lokalen Netzwerkschnittstelle für den BACnet-Verkehr. Hat der Server mehrere Netzwerkkarten, geben Sie die Adresse der Karte ein, die mit dem BACnet-Netzwerk verbunden ist. Bleibt das Feld leer, wird die Schnittstelle automatisch gewählt. | Leer | IPv4-Adresse |
| Maximale Nutzlast | Größte BACnet-Datenmenge in einem UDP-Paket (Byte). 1472 passt für die Standard-Ethernet-MTU (1500 Byte). | 1472 | 128–16384 |
| Exklusiven Port verwenden | Wenn aktiviert, wird Port für diesen Kanal exklusiv (nicht gemeinsam nutzbar) geöffnet. Verwendet auf demselben Server eine andere BACnet-Anwendung denselben Port, aktivieren Sie diese Option nicht. | Aus | — |
| Nicht fragmentieren | Setzt in den gesendeten IP-Paketen das Flag „nicht fragmentieren“ (Don't Fragment). Ist ein Paket größer als die MTU auf dem Weg, wird es verworfen statt fragmentiert. | Aus | — |
| Als Fremdgerät registrieren | Registriert 2WinScada als Fremdgerät bei einem BBMD (BACnet Broadcast Management Device). Wird verwendet, wenn die Geräte in einem anderen IP-Subnetz liegen und die Broadcasts zur Erkennung nicht über den Router gelangen. | Aus | — |

Ist Als Fremdgerät registrieren aktiviert, erscheint die Gruppe BBMD-Geräte:
| Feld | Beschreibung | Standard | Bereich |
|---|---|---|---|
| IP-Adresse | IPv4-Adresse des BBMD | Leer | IPv4-Adresse |
| Port | UDP-Port des BBMD | 47808 | 1–65535 |
| Time-to-Live (TTL) | Dauer (Sekunden), für die die Registrierung im BBMD gültig bleibt | 30 | 1–32767 |
Die Registrierung beim BBMD erfolgt nur, wenn Als Fremdgerät registrieren aktiviert und die IP-Adresse des BBMD eingegeben ist; bei ausgeschalteter Option wird kein Registrierungspaket an das BBMD gesendet. Ist die Registrierung aktiv, erneuert 2WinScada sie selbstständig nach jeweils der Hälfte der Zeit Time-to-Live (TTL) (jedoch nicht häufiger als alle 10 Sekunden). Ein Ablauf der Registrierung betrifft nur die Erkennung; Lesen und Schreiben bei Geräten mit bekannter Adresse laufen direkt über die IP-Adresse weiter.
Geräte importieren
Bei einem gespeicherten Kanal listet die Schaltfläche Geräte importieren in der Gruppe Geräte der Registerkarte Erweiterte Parameter die im Netzwerk erkannten BACnet-Geräte auf. Bis der Kanal gespeichert ist, ist die Schaltfläche inaktiv.
- Klicken Sie auf Geräte importieren. Das Fenster Auswahl des BacNet-Geräts listet die Geräte auf, die seit dem Start des Kanals mit I-Am geantwortet haben.
- Ist die Liste unvollständig, klicken Sie auf WhoIs senden. 2WinScada sendet einen Who-Is-Broadcast in das Netzwerk (bei aktiver BBMD-Registrierung auch über das BBMD). Die Schaltfläche bleibt 30 Sekunden lang inaktiv. Geräte, die seit 15 Minuten nicht geantwortet haben, werden dabei aus der Liste entfernt.
- Je nach Anzahl der Geräte im Netzwerk kann es dauern, bis die Antworten eintreffen. Um die Liste zu aktualisieren, klicken Sie auf Daten aktualisieren.
- Die Liste zeigt die Spalten Name, Adresse, BacNet-Geräte-ID, Adresstyp und Netzwerk. Markieren Sie die zu importierenden Geräte, klicken Sie auf Wählen und bestätigen Sie das Bestätigungsfenster.
Die ausgewählten Geräte werden mit Name, Adresse und Gerätekennung direkt gespeichert und als aktiv hinzugefügt. Bei importierten Geräten ist Automatisches Who-Is ausgeschaltet; die Adresse wird aus der I-Am-Antwort übernommen. Am Ende wird die Anzahl der importierten, fehlgeschlagenen und ungeeigneten Datensätze gemeldet.
TIP
Erkennung und Import setzen voraus, dass der Kanal im 2WinScada-Dienst läuft. Ist die Liste leer, prüfen Sie, ob der Kanal gespeichert ist, ob die Lizenz BACnet erlaubt und ob UDP-47808-Verkehr die Firewall passiert.
Gerätedefinition
Ein Gerätedatensatz steht für ein einzelnes BACnet-Gerät. Auf der Registerkarte Allgemein werden die Felder Name und Aktiv wie bei den anderen Protokollen festgelegt. Bei importierten Geräten sind die Parameter bereits ausgefüllt.
Registerkarte Parameter:
| Feld | Beschreibung | Standard / Regel |
|---|---|---|
| Adresse | IPv4-Adresse und UDP-Port des Geräts im Format IP:Port (z. B. 192.168.1.20:47808) | Pflichtfeld, wenn Automatisches Who-Is ausgeschaltet ist |
| BacNet-Geräte-ID | Nummer des BACnet-Device-Objekts des Geräts (Device Instance). Muss für jedes Gerät im Netzwerk eindeutig sein. | Pflichtfeld; nur Ziffern, 0–4194303 |
| Adresstyp | Typ der Adresse. Nur IP (IPv4) kann gewählt werden. | IP |
| Netzwerk | BACnet-Netzwerknummer, in der sich das Gerät befindet. Liegt das Gerät im selben IP-Netz, bleibt der Wert 0; für Netze hinter einem BACnet-Router wird die im Router definierte Netzwerknummer eingegeben. | 0 |
| Automatisches Who-Is | Wenn aktiviert, wird die Adresse des Geräts mithilfe von BacNet-Geräte-ID per Who-Is automatisch ermittelt, und das Feld Adresse wird nicht verwendet. | Bei einem neuen Gerät aktiviert |
2WinScada wickelt die BACnet/IP-Kommunikation über IPv4-UDP ab, und das Feld Adresse akzeptiert nur das IPv4-Format IP:Port. IPv6 wird nicht unterstützt; auch der Server lehnt das Speichern mit einem anderen Adresstyp als IP ab. Geräte, die in älteren Versionen mit einer statischen IPv6-Adresse gespeichert wurden, werden nicht gelöscht; sie erscheinen mit der Qualität Bad, und ein Eintrag wird in das Dienstprotokoll geschrieben. Wählen Sie bei diesen Geräten unter Adresstyp den Eintrag IP und speichern Sie sie mit einer IPv4-Adresse.
Wenn Automatisches Who-Is aktiviert ist:
- 2WinScada sendet Who-Is nur für diese Gerätekennung (bei aktiver BBMD-Registrierung auch über das BBMD) und wartet etwa 3 Sekunden auf eine Antwort. Wird keine Adresse gefunden, wird der Versuch alle 30 Sekunden wiederholt.
- Schlagen 4 Tag-Lesevorgänge nacheinander fehl, wird die Adresse erneut gesucht. So werden Geräte, deren IP-Adresse sich ändert, wieder erreicht.
Ist Automatisches Who-Is ausgeschaltet, wird die Adresse im Feld Adresse direkt verwendet, und es erfolgt keine erneute Suche.
Tags importieren
In der Gruppe Tags der Registerkarte Erweiterte Parameter eines gespeicherten Geräts befindet sich die Schaltfläche Tags importieren. Bis das Gerät gespeichert ist, ist die Schaltfläche inaktiv.
- Klicken Sie auf Tags importieren. 2WinScada liest die Objektliste (Object List) des Geräts und fragt Name und Typ jedes Objekts ab.
- Das geöffnete Fenster zeigt die Spalten Name, Adresse und Datentyp. Markieren Sie die zu importierenden Zeilen, klicken Sie auf Wählen und bestätigen Sie das Bestätigungsfenster.
- Die ausgewählten Tags werden mit Name, Adresse und Datentyp zum Gerät hinzugefügt. Die anderen Tag-Felder werden mit ihren Standardwerten angelegt.
Die Liste zeigt nur die Objekte aus der Tabelle der Objekttypen. Das Gerät muss aktiv und seine Adresse bekannt sein; ist bei einem Gerät mit aktiviertem Automatisches Who-Is die Adresse noch nicht gefunden, bleibt die Liste leer.

Tag-Definition
Tags werden wie bei den anderen Protokollen in der Tag-Tabelle des Geräts definiert (siehe Tag-Verwaltung). In das Feld Adresse werden Objekttyp und Objektnummer (Instance), getrennt durch einen Doppelpunkt, eingetragen:
<OBJEKTTYP>:<instance>Beispiele:
| Adresse | Bedeutung |
|---|---|
OBJECT_ANALOG_INPUT:5 | Analog Input Nummer 5 |
OBJECT_ANALOG_VALUE:5 | Analog Value Nummer 5 (z. B. Sollwert) |
OBJECT_BINARY_VALUE:5 | Binary Value Nummer 5 |
OBJECT_MULTI_STATE_VALUE:2 | Multi-state Value Nummer 2 |
Der Name des Objekttyps unterscheidet Groß- und Kleinschreibung und muss wie in der folgenden Tabelle geschrieben werden. Kann die Adresse nicht aufgelöst werden, wird das Tag nicht gelesen.
Objekttypen und Datentypen
Mit Tags importieren aufgelistete Objekttypen und der zugewiesene Datentyp:
| Objekttyp | Name in der Adresse | Datentyp |
|---|---|---|
| Analog Input | OBJECT_ANALOG_INPUT | Real |
| Analog Output | OBJECT_ANALOG_OUTPUT | Real |
| Analog Value | OBJECT_ANALOG_VALUE | Real |
| Binary Input | OBJECT_BINARY_INPUT | Bool |
| Binary Output | OBJECT_BINARY_OUTPUT | Bool |
| Binary Value | OBJECT_BINARY_VALUE | Bool |
| Multi-state Input | OBJECT_MULTI_STATE_INPUT | Int |
| Multi-state Output | OBJECT_MULTI_STATE_OUTPUT | Int |
| Multi-state Value | OBJECT_MULTI_STATE_VALUE | Int |
| CharacterString Value | OBJECT_CHARACTERSTRING_VALUE | String |
Andere Objekttypen mit der Eigenschaft Present Value (z. B. OBJECT_INTEGER_VALUE:1) können manuell definiert werden; in diesem Fall muss Datentyp passend zum Wert im Gerät gewählt werden.
Lese- und Schreibverhalten
- Jedes Tag wird nach Ablauf von Aktualisierungsintervall [s] aktualisiert, indem die Eigenschaft Present Value des Objekts gelesen wird. Der Tag-Wert ändert sich nur, wenn sich der gelesene Wert ändert.
- Die Qualität eines nicht lesbaren Tags wird Bad. Sobald mindestens ein Tag des Geräts gelesen werden kann, wird die Gerätequalität Good.
- Geschrieben wird auf die Eigenschaft Present Value des Objekts; unterstützt wird dies nur bei Objekten Analog, Binary und Multi-state Input/Output/Value. Der Wert wird mit dem zum Objekttyp passenden BACnet-Datentyp gesendet:
| Objekt | Gesendeter Typ | Zulässiger Wert |
|---|---|---|
| Analog | REAL (DOUBLE, wenn Datentyp LReal ist) | Zahl; bei REAL im Bereich einfacher Genauigkeit |
| Binary | ENUMERATED | Nur 0 oder 1 (Bool-Werte werden als 0/1 gesendet) |
| Multi-state | UNSIGNED | Ganzzahl 1 oder größer (Zustandsnummer) |
- Schreiben auf String-Tags (CharacterString) und auf andere Objekttypen wird nicht unterstützt. Ein ungeeigneter Wert (z. B. 2 bei Binary, 0 oder ein Bruchwert bei Multi-state) wird abgelehnt, ohne an das Gerät gesendet zu werden.
- In der Schreibanfrage wird keine Priorität (Priority) angegeben; nach dem BACnet-Standard wendet das Gerät in diesem Fall die niedrigste Priorität 16 an. Liegt ein Befehl mit höherer Priorität vor, bleibt der geschriebene Wert wirkungslos.
- Nach dem Schreiben wartet 2WinScada mit den Werten Timeout [ms] und Wiederholungen des Kanals auf die Bestätigung des Geräts. Ein abgelehnter oder nicht bestätigter Schreibvorgang erscheint nicht als erfolgreich: Auf dem Bildschirm des schreibenden Benutzers erscheint die Warnung Schreibanforderung abgelehnt: Der Server konnte die Anforderung nicht an den Treiber übergeben., der Grund wird in das Dienstprotokoll geschrieben, und der Schreibvorgang wird nicht im Operationsverlauf gespeichert. Bei der Rezeptanwendung werden diese Positionen als fehlgeschlagen aufgeführt.
WARNING
Bevor Sie Schreibvorgänge in einer laufenden Anlage testen, prüfen Sie die Gerätedokumentation, ob das Objekt beschreibbar ist, und das Prioritätsfeld (Priority Array). Definieren Sie die Tags bei der ersten Inbetriebnahme mit Nur lesen.
Fehlerbehebung
| Symptom | Prüfungen |
|---|---|
| Geräteliste leer | Prüfen Sie, ob der Kanal gespeichert ist, im 2WinScada-Dienst läuft und ob die Lizenz BACnet erlaubt. Aktualisieren Sie die Liste nach WhoIs senden mit Daten aktualisieren. Prüfen Sie die Firewall für UDP 47808 und den Wert Lokale Endpunkt-IP. |
| Geräte in einem anderen Subnetz erscheinen nicht | Prüfen Sie die Option Als Fremdgerät registrieren, die Werte IP-Adresse und Port des BBMD und ob das BBMD die Registrierung von Fremdgeräten annimmt. |
| Keine Antwort, Port von einer anderen Anwendung belegt | Verwendet auf demselben Server eine andere BACnet-Anwendung den Port 47808, deaktivieren Sie Exklusiven Port verwenden oder verwenden Sie einen anderen Port. |
| Gerät wird nicht gefunden (Automatisches Who-Is) | Prüfen Sie, ob der Wert BacNet-Geräte-ID mit der Device Instance im Gerät übereinstimmt. Die Suche wird alle 30 Sekunden wiederholt. Deaktivieren Sie bei Bedarf Automatisches Who-Is und geben Sie Adresse ein. |
| Tag-Qualität Bad | Prüfen Sie den Namen und die Nummer des Objekttyps in der Adresse, ob das Gerät erreichbar ist, und den Wert Timeout [ms]. |
| Liste unter Tags importieren leer | Prüfen Sie, ob das Gerät gespeichert und aktiv ist und ob seine Adresse gefunden wurde. |
| Schreiben ohne Wirkung | Prüfen Sie die Einstellung Nur lesen, ob das Objekt beschreibbar ist und ob kein Befehl mit höherer Priorität vorliegt. Einzelheiten stehen im Dienstprotokoll. |
| Warnung „Schreibanforderung abgelehnt“ beim Schreiben | Prüfen Sie, ob der Objekttyp Schreiben unterstützt, ob der Wert zum Objekttyp passt (Binary 0/1, Multi-state Ganzzahl ab 1) und ob das Gerät den Schreibvorgang annimmt. Der Ablehnungsgrund steht im Dienstprotokoll. |
| Gerätequalität Bad, Adresstyp IPv6 | IPv6 wird nicht unterstützt. Wählen Sie unter Adresstyp den Eintrag IP und speichern Sie mit einer IPv4-Adresse. |