Benutzer-Werkzeuge

Webseiten-Werkzeuge


bacnet

BACnet

Der BACnet Treiber ermöglicht es dem Gateway sowohl als BACnet Client als auch als BACnet Server aufzutreten. Dabei unterstützt er die Standards BACnet IP, BACnet/SC, BACnet Ethernet als auch BACnet MS/TP. Darüber hinaus werden bei Bedarf BBMD-(BACnet Management Broadcast Device) und FD- (Foreign Device) Funktionalitäten zur Verfügung gestellt.

Der Name des BACnet-Treibers lautet: bac
Die Routing-Adresse des ersten BACnet-Treibers ist die 940
Die Datenpunktdatei für den ersten BACnet-Treiber heißt: bac1.txt
Die Konfigurationsdatei für globale Einstellungen des ersten BACnet-Treibers heißt: bac1.cfg

Bei dem BACnet-Treiber sowie allen weiteren Gateway-Treibern gilt für die Definiton von Datenpunkten in der Datenpunktdatei:

Typ Bedeutung
M Ganzzahliger Wert (Binäre Datenpunkte, Zählwerte) der vom Gateway nur gelesen werden kann/soll.
S Ganzzahliger Wert der vom Gateway gelesen sowie geschrieben werden kann/soll.
X Analogwert (mit Nachkommastellen) der vom Gateway nur gelesen werden kann/soll.
Y Analogwert (mit Nachkommastellen) der vom Gateway gelesen sowie geschrieben werden kann/soll.
A String, findet z.B. Verwendung bei BACnet Trends und ESPA4.4.4 Datenpunkten

Die Adressen sind wie folgt aufgebaut.

„<device>.<typ> [<nr>]“

Kommunikationsstatus mit entferntem BACnet Gerät: „<device> failure“

Dabei gilt folgende Definition:

Parameter Wertebereich Beschreibung
device 0 - 4194302
0 - (2 22-2)


local
Device-ID des BACnet Gerätes.
Stimmt diese mit der in der bac1.cfg definierten Device ID überein so handelt es sich um einen lokalen Datenpunkt (das Gateway ist dann BACnet Server)

die Datenpunkte werden immer als Server ausgeführt
typ AI
AO
AV
AG
BI
BO
BV
CA
CO
DE
EE
FI
GR
IV
LAV
LO
MI
MO
MV
NC
PIV
PR
SC
TR
VSOT@<nummer>
Analog Input
Analog Output
Analog Value
Averaging
Binary Input
Binary Output
Binary Value
Calendar
Command
Device
Enrollment
File
Group
Integer Value
Large Analog Value
Loop
Multistate Input
Multistate Output
Multistate Value
Notification Class
Positiv Integer Value
Programm
Schedule
Trendlog
Vendor Specific Object Type, dabei ist <nummer> der Object-Type
nr 0 - 4194303
(0 - 2 22-1)
Objekt Nummer (muss innerhalb eines Devices für jeden Typ eindeutig sein

Für lokale Datenpunkte müssen jedem Datenpunkt noch mindestens die sog. required properties übergeben werden. Zusätzlich zu den required properties können bei Bedarf weitere optional properties übergeben werden. Grundsätzlich sind die hier angegebene Properties nicht durch andere BACnet Geräte beschreibbar. Sollen diese dennoch von anderen BACnet Geräten beschreibbar sein, so kann das Propertie durch den Zusatz ||W als schreibbar deklariert werden. Die geschriebenen Werte sind dann solange gültig bis das Gateway neu gestartet wird. Durch den Zusatz ||WP werden diese persistent auf dem Gateway gespeichert und sind auch nach einem Neustart wieder verfügbar. Einträge für die Beschreibung oder die Einheit sehen dann z.B. folgendermaßen aus.

bac_description = Beschreibung ||WP
bac_units = 62 ||W  

Ein „local“ bei der Device Object Instance (DOI) führt dazu, dass das Object immer als Server ausgeführt wird. Die DOI wird aus den Gateway-Einstellungen genommen. Bei Änderung der DOI muss die Projektierung nicht angepasst werden. Eine Beschreibung der lokalen BACnet Datenpunkte und ihren properties folgen aufgeschlüsselt nach Art der Datenpunkte:

BACnet_Analog
BACnet_Binary
BACnet_Multistate
BACnet_NotificationClass
BACnet_Trendlog
BACnet_Schedule
BACnet_Calendar
BACnet_Event_Enrollment

Typische Datenpunktdefinitionen für entfernte Datenpunkte können demnach sein:

[M 1234.BI 5]
 name = digitale Betriebsmeldung
 query = pe
[S 1234.BO 10]
 name = digitaler Sollwert
 query = pe
 writecache = yes
[M 1234.MI 15]
 name = multistate Meldung z.B. 0,1,2 für Aus,An,Auto
 query = pe
[S 1234.MV 16]
 name = multistate Sollwert  z.B. Stufenschalter 0,1,2 für Aus,An,Auto
 query = pe
 writecache = yes
[X 1234.AI 17]
 name = Temperatur Messwert
 query = pe
[Y 1234.AO 17]
 name = Temperatur Sollwert
 query = pe
 writecache = yes
 

Definition von Alarming

Die Beschreibung zur Definition/Konfiguration des Alarming (Intrinsic Reporting) findet sich unter BACnet Alarming

Zugriff auf einzelne Properties

Der BACnet-Treiber bietet die Möglichkeit, auch auf einzelne Properties eines Datenpunktes zuzugreifen. Dazu ist es erforderlich, den Namen des Properties hinter dem Datenpunkt in geschweiften Klammern anzugeben. Um z. B. auf den Event-State eines Datenpunktes zuzugreifen, muss ein Eintrag {event-state} angehängt werden. Eine Definition sähe dann so aus:

[M 1234.AI 17 {event-state}]
  name = Event-State von AI 17
  query = pe
  

Bei Verwendung von mehreren Datalink-Layern findet normalerweise automatisch ein Routing zwischen den Layern statt. Dieses Verhalten kann manuell in der bac1.cfg angepasst werden, indem folgender Eintrag ergänzt wird:

[general]
routing_switched_off = 1

Zusätzlich muss in den konfigurierten Datalink-Layern der Eintrag

bind_on_any_address = 0

eingetragen sein, um den Zugriff zwischen den einzelnen LAN-Ports zu trennen.

Verwendung von mehreren LAN-Ports

Wenn auf einem Gateway (z. B. Double-X, oder Maxi-MK II) auf beiden Netzwerk-Ports BACnet betrieben wird, oder BACnet auf eth1 laufen soll, dann muss ebenfalls deaktiviert werden, dass der BACnet-Treiber auf allen Adressen arbeitet. Dazu muss im jeweiligen Datalink-Layer der Eintrag

bind_on_any_address = 0

eingetragen sein.

Deaktivieren von Intrinsic Reporting

Unter gewissen Umständen kann es erforderlich sein, dass die Funktionalität „Intrinisc Reporting“ für Objekte deaktiviert wird. Dies kann man dadurch erreichen, dass entweder alle dafür erforderlichen Properties nicht in der Datenpunktliste angelegt werden, oder man deaktiviert die evtl. vorhandenen Proprties durch einen zusätzlichen Konfigurationseintrag:

intrinsic_reporting = 0

PICS (BACnet Protocol Implementation Conformance Statement)

Dieses findet sich auf unserer Homepage zum Download unter: https://www.mbs-solutions.de/s/MBS_UGW_PICS_Rev22.pdf

Eintragen eines RestartNotificationRecipients

Es gibt zwei Varianten, über das Device oder über die IP-Adresse. Fürs Device 99999:

[0] = Device
8 = Objekt Device
RestartNotificationRecipients = (([0](8,99999)))

Alternativ über die IP-Adresse:

[1] =  Address  
0 = local Network
0a996d78bac0 = IP-Adresse 10.153.109.120 Port 47808
RestartNotificationRecipients = (([1](0,0a996d78bac0)))

Imprint/Impressum Disclaimer DSGVO/Privacy Policy

bacnet.txt · Zuletzt geändert: 18.01.2023 14:17 von rwo

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki