Einstellungen für den BACnet Treiber
[bacnet] alarmExternAckFirst
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
Bei der Kombination von Quittierart "KAM oder GING ist quittierpflichtig" mit der BACnet
Notification Klasse "AckRequired: TO_OFFNORMAL=1, TO_NORMAL=0" kann folgendes Verhalten
auftreten: Alarme werden in der falschen Reihenfolge quittiert (GING vor KAM), wodurch dann
Alarme am Gerät nicht quittiert werden. Das wird durch diesen Eintrag verhindert, jedoch
sollte dieser nur gesetzt werden, wenn die oben genannte Kombination auch wirklich im
Projekt benötigt wird. Durch das Setzen dieses Eintrags auf 1 wird zuerst der Übergang
quittiert, der eine externe Quittierung benötigt. Dadurch wird vermieden, dass Alarme in der
falschen Reihenfolge quittiert werden (siehe Intrinsic und Algorithmic Alarming).
[bacnet] APDURetries
- Typ
- int
- Default
- 1
- Wertebereich
- 0..5
Definiert die Anzahl der Wiederholungen, die der Treiber bei fehlender Bestätigung
ausführen soll.
[bacnet] APDUSegmentTimeout
- Typ
- int
- Default
- 2000
- Wertebereich
- 100..5000
Definiert die Zeit in Millisek., die auf eine Telegrammsegmentantwort gewartet werden
soll. Dieser Wert muss kleiner sein als der APDUTimeout.
[bacnet] APDUTimeout
- Typ
- int
- Default
- 4000
- Wertebereich
- 500..10000
Definiert die Zeit in Millisek., die auf eine Telegrammantwort gewartet werden soll.
[bacnet] autoGQ
- Typ
- uint
- Default
- 0
- Wertebereich
- 0-3
Definiert, ob der Treiber eine automatische Generalabfrage (GQ) durchführt.
- 0 -> keine automatische GQ
- 1 -> automatische GQ beim Verbindungsaufbau
- 2 -> automatische GQ bei Redundanzumschaltung
- 3 -> automatische GQ beim Verbindungsaufbau und bei Redundanzumschaltung
[bacnet] bacnetBdtLocation
- Typ
- string
- Default
- data
Definiert den Ordner in dem die bdt-Datei abgelegt werden soll. Per Default wird die Datei
im /data-Ordner des Projektverzeichnisses angelegt. Siehe auch Treiber - BACnet -
Konfigurationsdatei BACnet Treiber - BBMD für nähere Informationen.
[bacnet] bbmdUdpPort
- Typ
- uint
- Default
- 47808
- Wertebereich
- >0
Bestimmt den UDP port des BBMD, wenn sich der Treiber als "foreign device" bei einem BBMD
registrieren soll.
[bacnet] certPath
- Typ
- string
- Default
- cert
Relativer Pfad des Certificate Stores unter <project>/data/bacnet/.
[bacnet] connUserBitPrio
- Typ
- integer
- Default
- 15
- Wertebereich
- 0-16
Gibt das Benutzerbit an, das vom Treiber verwendet wird, um den den Wert zu setzen oder
auf "NULL" zu setzen.
0 -> kein Userbit wird verwendet und der Wert wird normal geschrieben.
[bacnet] COVLifeTime
- Typ
- uinteger
- Default
- 7200
- Wertebereich
- >=0
Dieser Config-Eintrag erlaubt es das Zeitlimit der COV Anmeldungen einzustellen. D.h. COVs
werden mit einer Ablaufzeit in Sekunden registriert. Nach der halben Zeit wird die Anmeldung
vom Treiber erneuert (beim Default alle 60 Minuten) Beim Wert 0 wird ohne Ablaufzeit
angemeldet.
[bacnet] deviceStatusPollProperty
- Typ
- integer
- Default
- 112
- Wertebereich
- >0
BACnet Property, die bei der Lebenszeichenüberwachung vom Device Objekt abgefragt wird.
Die PropertyId 112 bedeutet System_Status. werden.
[bacnet] deviceStatusPollTimeout
- Typ
- integer
- Default
- 30
- Wertebereich
- >0
Zeit in Sekunden, nach der alle parametrierten Geräte im Netzwerk gepollt werden.
[bacnet] eventGQMode
- Typ
- integer
- Default
- 0
- Wertebereich
- 0|1
Wenn der eventGQMode aktiviert wird (=1) werden zusätzlich zu GetEventInformation auch die
Begleitwerte übertragen. Hinweis Voraussetzung dafür ist, dass das
ReadPropertyMultiple Service verwendet wird.
[bacnet] foreignRegistrationAddress
- Typ
- string
Dieser Eintrag ermöglicht die Angabe eines BBMD, bei dem sich der Treiber als
Foreign Device registrieren soll.
Der Eintrag kann mehrfach vorkommen, wenn sich der Treiber bei mehreren BBMDs registrieren soll.
Die Syntax lautet:
<Hostname oder IP-Adresse>:<Portnummer>
Beispiele:
foreignRegistrationAddress = "192.168.2.100:47808"
foreignRegistrationAddress = "bbmd-server.mynet.local:47808"
[bacnet] localDeviceId
- Typ
- unsigned integer
- Default
- 10
- Wertebereich
- >0
Die lokale ID für das WinCC OA Treibergerät. Diese ID wird allen anderen Geräten im
Netzwerk angezeigt und muss deshalb einzigartig sein.
[bacnet] localDeviceName
- Typ
- string
- Default
- WinCCOA_OWS_<localDeviceId>
Der lokale Name für das WinCC OA Treibergerät. Dieser Name wird allen anderen Geräten im
Netzwerk angezeigt.
[bacnet] mapOutOfServiceToInvalid
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
Definiert, ob der Treiber bei gesetztem OUT_OF_SERVICE Statusbit das WinCC OA Invalid Bit
beim Present_Value DPE setzt.
[bacnet] maxNumForReadMultiple
- Typ
- integer
- Default
- 8
- Wertebereich
- >0
Definiert die maximale Anzahl von Properties, welche in einer Read Multiple Abfrage
gelesen werden. Leseabfragen (Read Requests) werden in mehrere Leseabfragen (Read Multiple
Requests) gruppiert, um die Performance bei den Abfragen in großen Projekten zu verbessern.
[bacnet] maxReadRangeCount
- Typ
- integer
- Default
- 32767
- Wertebereich
- >0
Definiert die maximale Anzahl von Rekords, welche in einer ReadRange Abfrage gelesen
werden.
[bacnet] net
- Typ
Dieser Eintrag ist verpflichtend, um die Verbindung zu einem BACnet-Netzwerk zu konfigurieren.
Syntax für BACnet/IP:
net = <Netzwerk> "IP" <Hostname oder IP-Adresse> <Subnetzmaske> <UDP-Port> <BBMD-Hostname/IP> <BBMDMaxFremdgeräte> <FremdgerätWartezeit>
Syntax für BACnet Secure Connect (SC):
net = <Netzwerk> "SC" <Hostname oder IP-Adresse> <PrimaryHub> <SecondaryHub>
-
Netzwerk – Eindeutig zugewiesene Netzwerknummer. Der BACnet-Treiber kann derzeit mit genau einem Netzwerk kommunizieren.
-
IP/SC – Protokollart. Aktuell werden IP (BACnet/IP) und SC (BACnet Secure Connect) unterstützt.
-
Hostname oder IP-Adresse – Adresse der Netzwerkkarte/Schnittstelle, über die das BACnet-Netz erreichbar ist. Der Eintrag darf ein Hostname oder eine IP-Adresse sein. Ist der Eintrag leer (""), wird die Adresse über den lokalen Hostnamen ermittelt. Das funktioniert zuverlässig nur, wenn genau eine zu verwendende Netzwerkkarte vorhanden ist.
-
Subnetzmaske – Bestimmt die Broadcast-Adressen für BACnet-Broadcasts. Ist der Eintrag leer (""), wird die Subnetzmaske der aktiven Netzwerkverbindung verwendet.
-
UDP-Port – UDP-Port für die BACnet/IP-Kommunikation. In den meisten Fällen ist 47808 (0xBAC0) zu verwenden.
-
BBMD-Hostname/IP – Hostname oder IP-Adresse eines „BACnet/IP Broadcast Management Device“. In der aktuellen Treiberversion ist dieser Wert auf "" bzw. 0 zu setzen, da Fremdgeräte nicht unterstützt werden.
-
BBMDMaxFremdgeräte – Maximale Anzahl an Fremdgeräten (Standard = 0). In der aktuellen Treiberversion ohne Relevanz.
-
FremdgerätWartezeit – Wartezeit auf Fremdgeräte in Sekunden (Standard = 120).
-
PrimaryHub – URL des primären BACnet Secure Hub (verpflichtend), z.B. wss://hub.example.local:4443.
-
SecondaryHub – URL des sekundären BACnet Secure Hub. Wenn keiner vorhanden ist, muss ein Leerstring ("") gesetzt werden.
Beispiele:
[bacnet_1]
net = 1 "IP" "" "" 47808 "" 0 120
[bacnet_1_hostname]
net = 1 "IP" "bacnet-iface01.local" "255.255.255.0" 47808 "bbmd-core.local" 0 120
[bacnet_2]
net = 1 "SC" "" "wss://192.168.10.11:4443" "wss://192.168.10.12:4443"
[bacnet_2_hostname]
net = 1 "SC" "sc-iface01.local" "wss://primary-hub.example.local:4443" "wss://secondary-hub.example.local:4443"
[bacnet] onlyActivePolls
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
Nur der aktive Treiber pollt innerhalb eines redundanten Systems.
[bacnet] processIdentifier
- Typ
- uint
- Default
- 1
- Wertebereich
- >0
Dieser Eintrag definiert den Prozessidentifier, den der BACnet Treiber bei COV
Registrierung und bei Alarmquittierung verwendet.
[bacnet] reportHomelessAlarms
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
Definiert, ob der Treiber Alarme/Ereignisse, die nicht auf Adressen abgebildet werden
können, auf das DPE _Bacnet.State.HomelessAlarm in Stringform abbildet.
[bacnet] requestQueueMaxSize
- Typ
- integer
- Default
- 1000
- Wertebereich
- >0
Der BACnet Treiber regelt die Reihenfolge der verschiedenen Anforderungen am Ausgang.
Dieser Config-Eintrag bestimmt die Maximalgröße der wartenden Anforderungen. Wenn diese
Größe überschritten wird, werden neue Anforderungen verworfen und eine Fehlermeldung wird im
WinCC OA Log ausgegeben.
[bacnet] requestsPerCycle
- Typ
- integer
- Default
- 1
- Wertebereich
- >0
Definiert wie viele BACnet Anforderungen in einem Treiberzyklus pro Gerät durchgeführt
werden. Wird ein niedriger Wert eingestellt, wird die Auslastung, verursacht durch häufige
Abfragen, reduziert, was wiederum bedeutet, dass der Datendurchsatz eingeschränkt wird. Ein
zu hoher Wert kann Verbindungsprobleme verursachen.
[bacnet] secureCACertificate
- Typ
- string
Diese Datei enthält die Zertifikate der Root Certificate Authority, mit welcher die
Zertifikate des BACnet Secure Hub signiert sind. Diese Datei kann mehrere Zertifikate
enthalten. Diese Datei muss in dem Verzeichnis liegen, das durch den Eintrag certPath
angegeben wird.
[bacnet] secureCertificate
- Typ
- string
Name der Datei, welche das Zertifikat des BACnet Treibers für die BACnet Secure Connect
Kommunikation enthält. Diese Datei muss in dem Verzeichnis liegen, das durch den Eintrag
certPath angegeben wird.
[bacnet] secureCertificateKey
- Typ
- string
Name der Datei, welche den privaten Schlüssel zum Zertifikat des BACnet Treibers für die
BACnet Secure Connect Kommunikation enthält. Diese Datei muss in dem Verzeichnis liegen, das
durch den Eintrag certPath angegeben wird.
[bacnet] sendUnicastIam
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
Definiert ob vom Treiber ein Unicast I-Am als Antwort auf ein Who-Is gesendet werden soll.
Der Defaultwert ist 0, die I-Am Nachricht wird also standardmäßig als Broadcast gesendet. In
manchen Fällen ist allerdings keine BBMD-Funktionalität gegeben, d.h. Broadcast-Nachrichten
werden verworfen. Durch Setzen dieses Config-Eintrags kann dieses Problem umgangen
werden.
[bacnet] statCheckInterval
- Typ
- unsigned
- Default
- 20
- Wertebereich
- >2
Zeitintervall (in Sekunden) in dem statistische DPE aktualisiert werden. wird.
[bacnet] staticRouterBinding
- Typ
- string
Dieser Eintrag ermöglicht die Eingabe eines statischen Routers in ein spezielles BACnet
Netzwerk. Die Angabe eines statischen Routers ist dann notwendig, wenn die Bestimmung über
Broadcast Telegramme aufgrund der Netzwerkkonfiguration nicht möglich ist. Die Syntax ist
<Netzwerknummer>:<IP Addresse>:<Portnummer>. Zum Beispiel:
staticRouterBinding = "100:192.168.2.100:47808" Damit wird definiert, dass der Weg ins
Netzwerk 100 über den Router mit der IP Adresse 192.168.2.100 (Port 47808) führt. Der
Eintrag kann mehrfach in der BACnet Treiber Sektion vorkommen, falls es mehrere Router gibt.
[bacnet] useJsonFormat
- Typ
- bool
- Default
- 1
- Wertebereich
- 0|1
Dieser Eintrag definiert ob das JSON Format für die Abbildung komplexer Properties
(Strukturen) verwendet wird.
[bacnet] userBitStatusFlagx
- Typ
- integer
- Default
- 0
- Wertebereich
- 0-31
Definiert wie die BACnet Status-Flags auf die WinCC OA Benutzerbits gemappt werden. Der
Wert "0" bedeutet, dass das entsprechende Status-Flag nicht gemappt wird. Das "x"
steht für die Bitnummer im Status-Flag Ausdruck:
- 0 -> im Alarm
- 1 -> Störung
- 2 -> überschrieben
- 3 -> außer Betrieb
- 4 -> nicht spezifiziert
- 5 -> nicht spezifiziert
- ...
- 31 -> nicht spezifiziert
[bacnet] userBitTrendLog
- Typ
- uint
- Default
- 0
- Wertebereich
- 0-32
Bestimmt das Userbit, auf welches die an das TrendLog-Objekt eingehenden Werte zusätzlich
zu dem dafür vorgesehenen Property Log_Buffer gespeichert werden. Wenn dieser Config-Eintrag
auf 0 gesetzt ist bzw. nicht in die Config-Datei eingetragen wurde, werden die Werte
lediglich im Log_Buffer Property gespeichert und sind nur von dort aus abrufbar. Dieser
Config-Eintrag bietet einen zusätzlichen Schutz vor Datenverlust, z.B. wenn ein
TrendLog-Objekt nicht mehr gebraucht wird und dadurch gelöscht wird (somit gehen auch die
Daten aus seinem Log_Buffer Property verloren), können die im Userbit archivierten Daten
weiterhin abgerufen werden. Wenn die TrendLog-Werte als Korrekturwerte geschrieben werden
sollen (dies ist dann erforderlich, wenn die Originalwerte für das TrendLog-Objekt
zusätzlich von einer anderen Quelle kommen) muss zusätzlich der Config-Eintrag histDataBits
in der Sektion [bacnet] gesetzt werden.
[bacnet] userByteAlarmPrio
- Typ
- uint
- Default
- 0
- Wertebereich
- 0-4
Obsolete seit Version 3.10. Durch diesen Config-Eintrag wird die gemappte BACnet Priorität
(siehe Config.AlarmPrioMapping) auch der BACnet Applikation zur Verfügung gestellt. Über
diesen Config-Eintrag wird definiert, auf welche Userbytenummer (1 - 4) die BACnet Priorität
abgebildet wird. Default ist 0 (= keine Abbildung).
[bacnet] userByteLogStatus
- Typ
- uint
- Default
- 0
- Wertebereich
- 0-4
Bestimmt ob Logstatus Records abgebildet werden und auf welches Userbyte die
Logstatusinformation geschrieben wird. Ist der Wert 0 so werden LogStatus Records
ausgefiltert.
[bacnet] useWriteMultiple
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
Definiert ob das WriteMultiple Service zum gruppieren von Schreibanforderungen verwendet
wird. Wenn der Erfolg der Schreibanforderungen in der Anwendung angezeigt werden soll, dann
muss der Wert auf false stehen.