BACnet/IP und BACnet MS/TP sind zwei verschiedene Netze, die dieselbe Art von BACnet-Controllern, Sensoren und Leitsystemen verbinden. BACnet/IP nutzt das Ethernet-Netz des Gebäudes; jedes Gerät hat eine IP-Adresse und einen UDP-Port. MS/TP (Master-Slave/Token-Passing) nutzt ein verdrilltes RS-485-Leiterpaar mit 9.600 bis 115.200 Bit/s; jedes Gerät hat eine MAC-Adresse, und ein Master darf nur dann eine Übertragung beginnen, wenn er das Token hat. Ein typisches gewerbliches BMS nutzt beide: BACnet/IP zwischen Leitcontrollern und zentraler Anlagentechnik und MS/TP zu den Controllern der Räume oder Zonen, verbunden über einen BACnet-Router. Ein Datenpunkt aus einem Gebläsekonvektor durchquert beide Netze, und jedes hat eigene Grenzen bei Nachrichtengröße, Geschwindigkeit und Adressierung.
Unterschiede zwischen BACnet/IP und MS/TP
| BACnet/IP | BACnet MS/TP | |
|---|---|---|
| Physisches Netz | Ethernet oder anderes IP-Netz | RS-485-Leiterpaar in Linienstruktur |
| Geschwindigkeit | Ethernet mit 10 oder 100 Mbit/s; meist begrenzt die Verarbeitung im Controller | 9.600 bis 115.200 Bit/s; 9.600 und 38.400 sind Pflicht |
| Verdrahtung | Netzwerkkabel zu einem Switch-Port wie bei jedem IP-Gerät | Geschirmtes verdrilltes Leiterpaar, 120-Ω-Abschluss an beiden Enden, bis 1.200 m je Segment |
| Größte unsegmentierte APDU | 1.476 Oktette | 480 Oktette |
| Adresse eines Geräts im Netz | IP-Adresse und UDP-Port | MAC-Adresse: 0 bis 127 für Master, bis 254 für Slaves |
| Standardport | UDP 47808 (0xBAC0) | Keiner: ein serieller Bus |
| Zugriff auf das Netz | Jedes Gerät kann jederzeit senden | Nur der Master mit Token beginnt eine Übertragung |
| Discovery-Broadcasts | Bleiben in einem IP-Subnetz, außer BBMDs leiten sie weiter | Erreichen jedes Gerät auf dem Bus; Slaves beantworten Who-Is nur über einen Slave-Proxy |
| Über IP-Subnetze hinweg | Ein BBMD in jedem Subnetz leitet BACnet-Broadcasts weiter; ein Foreign Device registriert sich bei einem BBMD | Nicht zutreffend: Ein BACnet-Router verbindet den Bus mit einem BACnet/IP-Netz |
| Typische Geräte | Leitcontroller, Controller für Kältemaschinen, Kessel und Lüftungsanlagen | VAV-Regler, Gebläsekonvektor- und Raumcontroller |
Geräteinstanz, Objektkennungen und Eigenschaften bleiben beim Wechsel des Netzes gleich. Der Discovery-Leitfaden unterscheidet Geräteinstanz und Netzadresse.
Die APDU-Grenze ist wichtig, wenn ein Client auf BACnet/IP durch einen Router liest. Jedes Gerät nennt seine Grenze in Max_APDU_Length_Accepted und meldet sie in I-Am. Wenn eine Anfrage oder erwartete Antwort darüber liegt, braucht der Client Segmentierung; viele kleine MS/TP-Controller unterstützen sie nicht. Die Anfrage wird dann abgebrochen oder abgelehnt. Eine ReadPropertyMultiple-Antwort enthält etwa 16 Oktette je Present_Value; in 480 Oktette passen daher ungefähr 29 Werte. Manche kleinen Controller akzeptieren nur 50 oder 128 Oktette. Legen Sie die Größe der ReadPropertyMultiple-Anfragen nach der kleinsten Grenze auf dem Pfad fest.
BACnet/IP und ähnlich klingende Namen
Vier Namen werden in Leistungsverzeichnissen und Angeboten oft verwechselt:
| Name | Was es ist |
|---|---|
| BACnet/IP | BACnet-Nachrichten in UDP/IP-Paketen, definiert in Annex J von Standard 135. Der Standardport ist UDP 47808, hexadezimal 0xBAC0. |
| BACnet Ethernet | BACnet-Nachrichten direkt in Ethernet-Frames (ISO 8802-3) ohne IP, definiert in Clause 7. Geräte werden über ihre MAC-Adresse angesprochen, und die Nachrichten passieren keine IP-Router. Man findet es vor allem in älteren Anlagen. |
| BACnet/SC (Secure Connect) | BACnet über TLS-gesicherte WebSocket-Verbindungen zu einem Hub, definiert in Annex AB von Standard 135-2020. Geräte authentifizieren sich mit Zertifikaten. |
| EtherNet/IP | Kein BACnet. Es ist das Common Industrial Protocol (CIP) auf Ethernet, von der ODVA, und wird vor allem bei SPS eingesetzt. Ein BACnet-Client kann es nicht lesen. |
Ein Gerät, das „Ethernet unterstützt“, kann jede dieser Varianten meinen. Fragen Sie, welche Sicherungsschicht (Data Link) das Gerät verwendet, und verlangen Sie bei BACnet sein PICS (Protocol Implementation Conformance Statement).
So funktioniert BACnet MS/TP
Beim Start wartet jeder Master auf ein von seiner MAC-Adresse zwischen 0 und 127 abhängiges Zeitfenster und sucht danach den nächsten Master. Erhält ein Master das Token, darf er bis zu Max_Info_Frames Frames senden. Dann reicht er das Token weiter. Alle 50 Tokenweitergaben (Npoll) sendet ein Master Poll-For-Master-Frames an die Adressen zwischen sich und dem nächsten bekannten Master, um neu hinzugekommene Geräte zu finden.
Sendet ein Master Poll For Master an eine unbelegte Adresse, wartet er Tusage_timeout auf eine Antwort: mindestens 20 ms nach Standard, 75 ms mit der toleranten Einstellung des Johnson-Controls-Routers. Jede erfolglos abgefragte Adresse fügt diese Wartezeit dem Bus hinzu.
Slaves mit MAC-Adressen bis 254 halten nie das Token. Sie antworten nur auf Anfragen eines Masters. Einen Who-Is-Broadcast können sie nicht selbst beantworten; ein mit Addendum 135-2001a eingeführter Slave-Proxy antwortet mit I-Am für sie.
Zwei Einstellungen jedes Masters beeinflussen den ganzen Bus:
- Max_Master ist die höchste Masteradresse, die das Gerät abfragt. Ein Gerät ohne Einstellmöglichkeit verwendet 127. Setzen Sie den Wert auf jedem Master auf die höchste tatsächlich genutzte Master-MAC-Adresse. Bei 20 Mastern mit Adressen 1 bis 20 und Max_Master 127 prüft der Master auf Adresse 20 weitere 108 unbelegte Adressen: 21 bis 127 und 0.
- Max_Info_Frames begrenzt die Frames, die ein Master je Tokenbesitz senden darf. Ein nicht einstellbares Gerät nutzt 1; das passt zu einem Raumcontroller. Ein Router leitet Verkehr aller Clients auf der IP-Seite weiter und benötigt daher mehr. Router haben häufig 100 als Vorgabe; die Anleitung des Johnson-Controls-Routers empfiehlt einen Wert über 20.
Geschwindigkeit und Baudraten bei BACnet MS/TP
Standard 135 verlangt von jedem MS/TP-Gerät Unterstützung für 9.600 und 38.400 Bit/s. Addendum 135-2008ab machte 38.400 Bit/s verpflichtend und ergänzte 57.600 und 115.200 Bit/s. Die Raten 19.200, 57.600, 76.800 und 115.200 Bit/s sind optional. Prüfen Sie vor der Auswahl, ob jedes Gerät die Rate unterstützt. Auf einem Bus müssen alle dieselbe verwenden. Für hochwertiges verdrilltes Kabel gilt bei den Standardraten eine RS-485-Längengrenze von 1.200 m, bei 115.200 Bit/s von 1.000 m. Kabel mit hoher Kapazität und lange Stichleitungen verkürzen diese Grenzen.
Buskapazität: ein Rechenbeispiel
MS/TP überträgt jedes Oktett als 10 Bit: ein Startbit, acht Datenbits und ein Stoppbit, ohne Parität. Ein Frame besteht aus acht Header-Oktetten, Daten und einer CRC aus zwei Oktetten. Bei 38.400 Bit/s dauert ein Oktett 0,26 ms, ein Token-Frame also 2,1 ms.
Ein Client auf BACnet/IP liest über einen Router einen analogen Present_Value von einem MS/TP-Controller:
| Teil des Lesevorgangs | Oktette auf der Leitung | Zeit bei 9.600 Bit/s | Zeit bei 38.400 Bit/s | Zeit bei 76.800 Bit/s |
|---|---|---|---|---|
| ReadProperty-Anfrage mit Routing-Header | 32 | 33,3 ms | 8,3 ms | 4,2 ms |
| ReadProperty-Antwort (ComplexACK) | 39 | 40,6 ms | 10,2 ms | 5,1 ms |
| Zwei Richtungswechsel mit je 40 Bitzeiten | 8,3 ms | 2,1 ms | 1,0 ms | |
| Angenommene Controllerantwortzeit | 5 ms | 5 ms | 5 ms | |
| Ein Lesevorgang | etwa 87 ms | etwa 26 ms | etwa 15 ms |
200 einzeln gelesene Punkte belegen daher bei 9.600 Bit/s etwa 17 s Buszeit, bei 38.400 Bit/s 5 s und bei 76.800 Bit/s 3 s. Einmal pro Minute sind 5 s bei 38.400 Bit/s etwa 9 % des Busses. Alle fünf Sekunden sind dieselben 200 Lesevorgänge bei 9.600 Bit/s unmöglich: Sie dauern länger als das Intervall. Oberhalb von 38.400 Bit/s macht die Controllerantwortzeit einen großen Teil jedes Lesevorgangs aus; eine höhere Baudrate bringt daher weniger, als sie vermuten lässt.
ReadPropertyMultiple reduziert den Aufwand. Eine Anfrage für zehn Present_Values desselben Controllers umfasst etwa 115 Oktette, die Antwort etwa 185. Bei 38.400 Bit/s dauert das ungefähr 85 ms, gegenüber 256 ms für zehn einzelne Lesevorgänge.
Das Token fügt Wartezeit hinzu. Der Router kann nur mit Token senden und höchstens Max_Info_Frames Anfragen pro Besitz. Wenn jeder Master etwa 3 ms bis zum Senden braucht, rotiert das Token in einem ruhigen Ring mit 20 Mastern bei 38.400 Bit/s in etwa 100 ms. Jeder Frame eines anderen Masters verlängert den Umlauf. Ein Controller, der seine Antwort bis zu seinem nächsten Tokenbesitz aufschiebt, fügt jedem Lesevorgang einen vollen Umlauf hinzu.
Setzen Sie den APDU-Timeout des Clients über den ungünstigsten Fall aus Tokenumlauf, Warteschlange am Router und Antwortzeit. Ein kürzerer Timeout löst Wiederholungen aus. Diese belasten den Bus weiter und lassen Geräte als offline erscheinen, obwohl sie nur langsam antworten.
Häufige MS/TP-Fehler
| Fehler | Beobachtung | Prüfung |
|---|---|---|
| Doppelte MAC-Adresse | CRC- und Framing-Fehler, verlorene Tokens, zwei Geräte erscheinen und verschwinden abwechselnd | MAC-Einstellung jedes Geräts, oft DIP-Schalter |
| Unterschiedliche Baudraten | Ein Gerät antwortet nie; ein Analysator zeigt Framing-Fehler beim Senden | Baudrate jedes Geräts, auch bei automatischer Erkennung |
| Zu niedriger Max_Master auf einem Gerät | Master oberhalb dieses Werts erhalten nie das Token und erscheinen nicht | Max_Master auf jedem Master, nicht nur auf dem Router |
| Fehlender oder zusätzlicher Abschluss oder fehlender Bias | Fehler nehmen mit Leitungslänge oder Verkehr zu; Rauschen auf ruhender Leitung | 120 Ω nur an den beiden physischen Enden, Bias an einer Stelle |
| Verlorenes Token | Bus schweigt 500 ms (Tno_token), dann erzeugt ein Master ein neues Token; das wiederholt sich | Rauschen, neu startendes Gerät oder doppelte MAC-Adresse |
Der RS-485-Verdrahtungsleitfaden erklärt Abschluss und Bias ausführlich.
Verdrahtung von BACnet MS/TP
MS/TP folgt denselben RS-485-Grundregeln wie Modbus RTU: Linienstruktur, kurze Stichleitungen, Abschlüsse an beiden physischen Enden, Bias an einer Stelle und eine Signalreferenz. Standard 135 (Clause 9.2.1) legt das Kabel fest: geschirmtes verdrilltes Leiterpaar mit einer charakteristischen Impedanz zwischen 100 und 130 Ω, einer Kapazität zwischen den Leitern unter 100 pF je Meter und zwischen Leitern und Schirm unter 200 pF je Meter. Folien- und Geflechtschirme sind beide zulässig. Die empfohlene maximale Länge eines Segments beträgt 1.200 m mit Kabel AWG 18 (0,82 mm²). Gewöhnliches Netzwerkkabel der Kategorie 5 hat 100 Ω und ist meist ungeschirmt. Prüfen Sie daher seine Kapazität und wählen Sie eine geschirmte Ausführung, bevor Sie es für MS/TP verwenden. Addendum 135-2008y (2010) ergänzte Verdrahtungspläne und Regeln für galvanische Trennung, Erdung und Referenzleiter. Ein Bus zwischen Gebäuden benötigt eine Trennung für 1.500 V. Das Werkzeug RS-485-Abschluss und Bias zeigt, wohin Abschluss- und Bias-Widerstände an einem bestimmten Bus gehören.
MS/TP und Modbus RTU dürfen keinen Bus teilen. Ihre Frames unterscheiden sich, und ein Modbus-Master würde die Tokenweitergabe stören.
MS/TP nach BACnet/IP routen
Ein BACnet-Router verbindet einen MS/TP-Bus mit einem BACnet/IP-Netz. Häufig ist er in die BMS-Zentrale integriert. Jedes BACnet-Netz am Standort, ob IP oder MS/TP, benötigt eine im Standort eindeutige Netznummer von 1 bis 65.534. Zwei Netze mit derselben Nummer schicken Nachrichten zum falschen Bus; Geräte scheinen ihre Identität zu wechseln.
Ein IP-Client erreicht ein MS/TP-Gerät durch den Router anhand der MS/TP-Netznummer und der MAC-Adresse des Geräts. Ein Client, der Geräte über ihre Geräteinstanz findet, muss diese Werte nicht kennen: Der Router leitet Who-Is an den Bus weiter und liefert I-Am-Antworten mit Quellnetz und Adresse zurück. Eine Anfrage Who-Is-Router-To-Network listet die Netze hinter einem Router. Der Router antwortet mit I-Am-Router-To-Network und den bedienten Netznummern. Der Leitfaden zu Routing und BBMD erklärt Broadcasts über IP-Subnetze.
Auswahl beim Nachrüsten
| Situation | Übliche Wahl |
|---|---|
| Energiedaten von bestehenden MS/TP-Controllern lesen | Über bestehenden Router oder BMS-Zentrale auf BACnet/IP lesen. Keinen zweiten Master ohne Zustimmung des BMS-Verantwortlichen auf den Bus setzen: Er braucht eine freie MAC-Adresse, korrektes Max_Master auf jedem Gerät und Tokenzeit. |
| Neue Anlage mit Ethernet-Anschluss | BACnet/IP im Gebäudesteuernetz |
| Viele kleine neue Controller je Etage | MS/TP-Busse zu einem Router. Jeden Bus mit obiger Rechnung auslegen, einschließlich der Abfragen von Energie- und Analysesystemen. |
| Controller weit von jedem Netzwerkswitch | MS/TP oder ein drahtloser Sensor, wenn nur Monitoring erforderlich ist |
BACnet mit Edge
Edge auf dem ZGW-20 Gateway ist ein BACnet/IP-Client. Es liest MS/TP-Controller über einen BACnet-Router am Standort; eine direkte Verbindung zum MS/TP-Bus unterstützt es nicht, und BACnet/SC verwendet es nicht. Der Leitfaden zu Modbus- und BACnet-Gateways erklärt den Unterschied zwischen einem BACnet-Router, einem Protokoll-Gateway und einem IoT-Gateway wie diesem. Es fragt Present_Value in einem an der Uhr ausgerichteten Intervall wie 60 oder 300 s ab oder im Live-Modus einmal pro Minute. COV-Abonnements verwendet es nicht. Für die Busauslegung zählt jeder Punkt als ein Lesevorgang je Intervall gemäß obigem Beispiel. Der Vergleich von BACnet und Modbus beschreibt Lese- und Schreibfunktionen von Edge. Der Leitfaden zu COV und Polling vergleicht beide Verfahren.
Dieser Leitfaden gehört zur Reihe über BACnet und Gebäudeprotokolle.
Häufige Fragen
Was ist BACnet/IP?
BACnet in UDP/IP-Paketen über Ethernet oder ein anderes IP-Netz, definiert in Anhang J von ASHRAE Standard 135. Jedes Gerät ist über eine IP-Adresse und einen UDP-Port erreichbar, standardmäßig 47808. Leitcontroller, Anlagencontroller und BMS-Server nutzen es meist.
Was ist BACnet MS/TP?
Master-Slave/Token-Passing: BACnet auf einem verdrillten RS-485-Leiterpaar, definiert in Abschnitt 9 von Standard 135. Master mit MAC-Adressen von 0 bis 127 geben ein Token weiter und senden nur, solange sie es halten. MS/TP läuft mit 9.600 bis 115.200 Bit/s und verbindet meist Raum-, VAV- und Gebläsekonvektor-Controller mit einem BACnet-Router.
Was ist der Unterschied zwischen BACnet/IP und BACnet MS/TP?
BACnet/IP transportiert BACnet-Nachrichten als UDP-Datagramme über ein IP-Netz. BACnet MS/TP nutzt ein verdrilltes RS-485-Leiterpaar, auf dem Master ein Token weiterreichen und nur während ihres Tokenbesitzes senden. Objekte und Dienste sind gleich; Geschwindigkeit, Adressierung und maximale Nachrichtengröße unterscheiden sich: 1.476 Oktette je APDU auf BACnet/IP und 480 auf MS/TP.
Welchen Port verwendet BACnet/IP?
Standardmäßig UDP-Port 47808, hexadezimal 0xBAC0. Anhang J erlaubt andere UDP-Ports. Geräte, die ihre Broadcasts direkt untereinander hören müssen, verwenden denselben Port. MS/TP hat keine Portnummer: Es ist ein serieller Bus.
Welche Baudrate verwendet BACnet MS/TP?
Jedes MS/TP-Gerät muss 9.600 und 38.400 Bit/s unterstützen. 19.200, 57.600, 76.800 und 115.200 Bit/s sind optional. 57.600 und 115.200 wurden erst mit Addendum 135-2008ab ergänzt und können älteren Geräten fehlen. Alle Geräte eines Busses müssen dieselbe Rate verwenden.
Wie viele Geräte passen auf einen MS/TP-Bus?
Masteradressen reichen von 0 bis 127, Slaveadressen bis 254. Ohne Repeater trägt ein RS-485-Segment 32 Unit Loads. Transceiver mit halber oder viertel Unit Load erhöhen die Grenze neben einem Router mit voller Last auf etwa 62 beziehungsweise 124 Geräte. Meist begrenzt die Tokenumlaufzeit den Bus früher.
Wie verbinde ich MS/TP-Geräte mit BACnet/IP?
Über einen BACnet-Router, der oft in eine BMS-Zentrale integriert ist. Der Router gibt dem MS/TP-Bus eine eigene Netznummer. So erreichen IP-Clients jedes MS/TP-Gerät anhand von Netznummer und MAC-Adresse.
Ist BACnet/IP dasselbe wie EtherNet/IP?
Nein. BACnet/IP überträgt BACnet-Nachrichten über UDP, standardmäßig auf Port 47808. EtherNet/IP ist das Common Industrial Protocol (CIP) der ODVA und wird vor allem bei SPS eingesetzt. Ein BACnet/IP-Client kann kein EtherNet/IP-Gerät lesen, und umgekehrt gilt dasselbe.
Welches Kabel verwendet BACnet MS/TP?
Geschirmtes verdrilltes Leiterpaar mit einer charakteristischen Impedanz zwischen 100 und 130 Ω und einer Kapazität zwischen den Leitern unter 100 pF je Meter, wie Standard 135 festlegt. Die empfohlene maximale Segmentlänge beträgt 1.200 m mit Kabel AWG 18 (0,82 mm²). Schließen Sie beide Enden ab und setzen Sie Bias an einer Stelle, wie bei jedem RS-485-Bus.