BACnet

BACnet/IP-Geräte der Gebäudeautomation anbinden - Geräteinstanz, Adressierung über Objekttyp und Instanz, Gerätesuche über Who-Is und presentValue.

Als Markdown ansehen

Der Treiber BACnet spricht mit Anlagen der Gebäudeautomation über BACnet/IP. Jeder Tag liest den aktuellen Wert (present value) eines BACnet-Objekts: den Messwert eines analogen Eingangs, den Zustand eines binären Ausgangs, die Stellung eines Multi-State-Werts. Legen Sie im Connector ein Gerät unter dem Treiber BACnet an; der Bereich zeigt nur die Felder, die dieses Protokoll verwendet.

Verbindung

Feld Bedeutung Standard
Host IP-Adresse oder Hostname des BACnet-Geräts (oder des Routers, der für es antwortet). leer
Port UDP-Port des Geräts. 0 verwendet 47808, den Standard von BACnet/IP. 0
Geräte-ID Die Instanznummer des Geräts, also die Nummer seines Objekts Device, eindeutig im BACnet-Netz. 0

Die Kopfzeile des Geräts zeigt den zusammengesetzten Endpunkt, zum Beispiel bacnet://192.168.0.30:47808/1234. Das Verbinden sendet eine Anfrage nach der Größe der Objektliste des Geräts, um zu bestätigen, dass die Anlage antwortet; die Objektliste selbst wird nicht durchlaufen. Diese Antwort ist die Verbindung: Ein Gerät, das nicht antwortet, bleibt offline, statt als verbunden zu erscheinen, und der Grund (der UDP-Port ist schon belegt, eine Adresse, die keine Adresse ist) wird auf die Seite Ereignisse und in die Protokolldatei des Tages geschrieben. Für diesen Treiber gibt es keine Felder für das Abfrageintervall: Seine Tags werden einmal je Sekunde gelesen.

Adressierung

Ein BACnet-Tag wird über zwei typisierte Felder auf der Karte Quelle des Tags adressiert, ganz ohne Freitextadresse:

Feld Bedeutung Angenommene Werte Standard
Objekttyp Welche Art BACnet-Objekt gelesen wird. die neun Typen unten AnalogInput
Instanz Die Instanznummer des Objekts innerhalb seines Typs. 0 und aufwärts 0

Die angebotenen Objekttypen und ihre üblichen BACnet-Typcodes:

Objekttyp Code Der aktuelle Wert hält
AnalogInput 0 eine gemessene Zahl
AnalogOutput 1 eine befohlene Zahl
AnalogValue 2 eine gespeicherte Zahl
BinaryInput 3 inaktiv/aktiv
BinaryOutput 4 inaktiv/aktiv
BinaryValue 5 inaktiv/aktiv
MultiStateInput 13 eine Zustandsnummer ab 1
MultiStateOutput 14 eine Zustandsnummer ab 1
MultiStateValue 19 eine Zustandsnummer ab 1

AnalogInput 5 am Gerät 1234 bedeutet "der aktuelle Wert des analogen Eingangs 5 dieses Geräts". Jeder Lesevorgang fragt die Eigenschaft presentValue des Objekts ab; andere Eigenschaften sind nicht adressierbar. Die Zeile Quelladresse (Bus) auf der Karte Quelle, die nur gelesen wird, zeigt das zusammengesetzte Paar type,instance, während Sie tippen.

Datentypen

Die Auswahl Datentyp bietet vier Typen an. Wählen Sie den, der zum Objekt passt:

Datentyp Passt zu Hinweise
Float analogen Objekten ein aktueller Wert vom Typ Real; Werte doppelter Genauigkeit werden auf Float verengt
Boolean binären Objekten ein aktueller Wert vom Typ Boolean oder die aufgezählten 0 und 1, mit denen ein binäres Objekt antwortet
Int32 Multi-State- und anderen ganzzahligen Werten vorzeichenbehaftete, vorzeichenlose und aufgezählte Antworten landen alle hier
String Werten vom Typ Zeichenkette Text, wie das Gerät ihn sendet

Der gewählte Typ muss zu dem passen, was das Objekt hält. Ein Gerät, das mit etwas anderem antwortet, lässt den Lesevorgang dieses Tags fehlschlagen: Der Tag geht auf schlechte Qualität, und der Grund nennt, was ankam ("Das Gerät hat mit einem Wert vom Typ Single auf einen Punkt geantwortet, der als Integer erklärt ist."), statt dass eine umgerechnete Zahl in Verlauf, Historie und Alarme gerät. Ein analoges Objekt als Boolean zu lesen oder ein Real als Int32 ist genau dieser Fall. Der Rest des Geräts liest weiter; wegen eines Tags mit falschem Typ wird nichts neu verbunden.

Schreiben

Tags, deren Zugriff Lesen und schreiben oder Nur schreiben ist, lassen sich schreiben. Ein Schreibvorgang setzt den presentValue des Objekts, typisiert nach dem Datentyp des Tags: Float schreibt ein BACnet Real, Boolean ein BACnet Boolean, Int32 eine vorzeichenbehaftete Ganzzahl und String eine Zeichenkette. Eine Befehlspriorität wird mit dem Schreibvorgang nicht gesendet. Eine Anlage, die für ihren aktuellen Wert auf einem anderen Typ besteht, manche binären Ausgänge nehmen zum Beispiel nur einen aufgezählten Wert an, kann den Schreibvorgang ablehnen; der Tag meldet dann den Fehlschlag, statt Erfolg vorzutäuschen. Ein neuer Tag beginnt als Nur lesen.

Gerätesuche

Die Schaltfläche Suchen des Connector sendet ein BACnet Who-Is als Rundruf und hört 10 Sekunden lang auf Antworten vom Typ I-Am. Jedes Gerät, das antwortet, wird zu einem Kandidaten, der seine Adresse, seinen Port und seine Geräteinstanz trägt, fertig zum Hinzufügen mit ausgefüllten Verbindungsfeldern, und es erscheint in der Liste in dem Augenblick, in dem es antwortet, nicht erst am Ende der zehn Sekunden: Ein Suchlauf, den Sie auf halbem Weg abbrechen, behält alles, was bereits geantwortet hatte. Der Suchlauf durchsucht keine Objekte, Kandidaten kommen also mit null Tags an; die Paare aus Objekttyp und Instanz tragen Sie selbst ein.

Ein Gerät, das über einen BACnet-Router antwortet, wird genauso hinzugefügt. Sein Kandidat trägt die Adresse des Routers und daneben das eigene Netz des Geräts und seine Adresse in diesem Netz; beides bleibt erhalten, wenn Sie es hinzufügen, und jeder Lesevorgang geht an den Router und nennt das Gerät dahinter. Ein so gefundenes Gerät liest sich daher wie jedes andere, und sein Endpunkt liest sich "Gerät über Router". Ein von Hand angelegtes Gerät hat keine Route und wird unmittelbar an seinem Host erreicht.

Gut zu wissen

  • Nur BACnet/IP: Anlagen mit MS/TP oder BACnet/SC sind nur über einen Router erreichbar, der sie auf BACnet/IP darstellt, und der Suchlauf ist das, was sie findet: Die Route, auf der ein Gerät antwortet, wird aus dem Suchlauf übernommen, fügen Sie es also aus der Fundliste hinzu, statt seine Felder von Hand einzutippen.
  • Der Treiber kommuniziert von dieser Station aus über den üblichen BACnet-UDP-Port 47808; eine andere BACnet-Anwendung, die diesen Port auf demselben Rechner ausschließlich hält, kann mit ihm in Streit geraten.
  • Das zyklische Lesen liegt bei diesem Treiber für jeden Tag fest bei einer Sekunde; die üblichen Felder für das Abfrageintervall werden nicht gezeigt.