Was ist RS485?
RS485 ist eine Norm für die elektrische Übertragung, kein Protokoll. Die Daten laufen als Spannungsdifferenz zwischen zwei Adern, meist A und B genannt, manchmal auch D+ und D−. Weil der Empfänger nur die Differenz auswertet, heben sich Störungen, die beide Adern gleich treffen, weitgehend auf. Deshalb funktioniert RS485 auch in Schaltschränken mit Frequenzumrichtern und über lange Strecken.
Ein Segment verträgt klassisch 32 Teilnehmer (Unit Loads), moderne Treiber belasten den Bus nur mit einem Bruchteil davon. Die Leitung darf rund 1200 m lang sein, bei hohen Baudraten weniger.
Über RS485 laufen verschiedene Protokolle, neben Modbus RTU zum Beispiel BACnet MS/TP. Bei einem RS485 Stromzähler ist deshalb erst zusammen mit dem Protokoll klar, wie er ausgelesen wird.
Wie wird ein RS485-Bus richtig verkabelt?
- Als Linie verlegen: von Gerät zu Gerät, ohne Stern und ohne lange Abzweige.
- An den beiden Enden der Leitung je einen Abschlusswiderstand von 120 Ω setzen, nicht an jedem Gerät.
- Verdrilltes, geschirmtes Datenkabel verwenden, idealerweise mit einem Wellenwiderstand um 120 Ω.
- Die Bezugsmasse (GND) mitführen, wenn die Geräte weit auseinander liegen oder unterschiedlich gespeist sind.
- Bei allen Geräten dieselbe Baudrate, Parität und dieselben Stoppbits einstellen.
Die häufigsten Stolpersteine beim Busaufbau beschreibt der Beitrag Modbus RTU über RS-485: die fünf häufigsten Stolpersteine.
Was ist Modbus RTU?
Modbus ist ein offenes Protokoll, das Modicon 1979 für Steuerungen entwickelt hat. RTU steht für Remote Terminal Unit und bezeichnet die binäre Variante für serielle Leitungen. Ein Master, etwa eine SPS, ein Datenlogger oder ein Energiemanagementsystem, schickt eine Anfrage an eine Slave-Adresse, und nur dieses Gerät antwortet. Von sich aus sendet ein Slave nie.
Ein Telegramm besteht aus Adresse, Funktionscode, Daten und einer CRC16-Prüfsumme. Zwischen zwei Telegrammen liegt eine Pause von mindestens 3,5 Zeichenlängen, daran erkennen die Geräte Anfang und Ende.
| Funktionscode | Bedeutung | Typischer Einsatz |
|---|---|---|
| 03 | Holding Register lesen | Messwerte und Einstellungen |
| 04 | Input Register lesen | Messwerte |
| 06 | ein Register schreiben | eine Einstellung ändern |
| 16 | mehrere Register schreiben | mehrere Werte in einem Block schreiben |
Wie liest man Modbus-Register richtig aus?
Modbus kennt nur 16-Bit-Register. Ein Zählerstand mit 32 oder 64 Bit verteilt sich auf zwei oder vier aufeinanderfolgende Register. Ob das höherwertige Wort zuerst kommt, legt jeder Hersteller selbst fest. Liefert ein System unsinnige Werte, ist meist die Byte- oder Wortreihenfolge vertauscht.
Auch die Zählweise der Adressen unterscheidet sich: Manche Handbücher zählen ab 0, andere ab 1. Ist ein Wert um genau ein Register verschoben, liegt es fast immer daran.
Wann passt Modbus RTU über RS485?
Modbus RTU passt, wenn eine Steuerung oder ein Datenlogger Zähler im selben Schaltschrank oder Gebäude direkt abfragt und kein Netzwerk zu den Zählern führt. Mit vielen Zählern in mehreren Gebäuden oder mehreren Zielsystemen lohnt sich ein Gateway. Den Vergleich mit der Netzwerkvariante finden Sie im Beitrag Modbus TCP oder Modbus RTU? und auf der Seite Was ist Modbus TCP?.
RS485 und Modbus RTU mit Geräten von EMU
Der RS485 Stromzähler EMU Professional II spricht Modbus RTU, als EMU Professional II 3/100 für Direktanschluss bis 100 A oder als 3/5 für Wandleranschluss.
Das EMU M-Center hat zwei RS485-Anschlüsse, liest bis zu 64 Modbus-RTU-Geräte aus und gibt die Werte per BACnet IP oder MQTT weiter.