Modbus Einführung
Das CM-RC-01 und das CM-SW-01 haben eine eingebaute Modbus-RTU-Schnittstelle (CN14), die die Überwachung und Steuerung des Verdichters ermöglicht. Die Schnittstelle wird gemeinsam genutzt für den Anschluss des Feldbus (Modbus) oder des BEST Schnittstellenkonverters. Wenn der Feldbus angeschlossen ist, können die Betriebsparameter weiterhin mit der BEST SOFTWARE per Bluetooth überwacht werden.
Konfiguration der Modbus Kommunikationsparameter
Die Konfiguration und Voreinstellungen finden sich in BEST unter "Konfiguration" in der Parametergruppe "Modbus".
Die Parametrierung kann über BEST oder per Modbus erfolgen. Wenn Modbus verwendet wird, um Modbus-Kommunikationsparameter wie Adresse, Baudrate oder Parität zu ändern, ändert dies nicht sofort die Kommunikation: Die neue Konfiguration wird erst nach dem Aus- und Wiedereinschalten des Moduls aktiv.
Verwendete Datentypen und Skalierung
Datentypen:
- uint8: 8-Bit-Ganzzahl ohne Vorzeichen
- int16: 16-Bit-Ganzzahl mit Vorzeichen
- uint16: 16-Bit-Ganzzahl ohne Vorzeichen
- uint32: 32-Bit-Ganzzahl ohne Vorzeichen
- string: Zeichenfolge
Skalierung der Werte:
- Skala 1: Der Wert ist der exakte Wert.
- Skala 10:
- Um einen Wert zu übertragen, muss er mit 10 multipliziert werden, d.h. 12,3 --> 123
- Ein empfangener Wert muss durch 10 geteilt werden, d.h. 123 --> 12,3
- Skala 100:
- Um einen Wert zu übertragen, muss er mit 100 multipliziert werden, d.h. 1,23 --> 123
- Ein empfangener Wert muss durch 100 geteilt werden, d.h. 123 --> 1,23
32-Bit-Werte lesen und schreiben
32-Bit-Werte müssen als zwei aufeinander folgende Modbus-Register gelesen und geschrieben werden (Anzahl Register = 2).
Während Modbus.org spezifiziert hat, dass 16-Bit-Werte mit dem höchstwertigen Byte zuerst übertragen werden ("most significant byte first" oder "big endian byte order"), gibt es keinen Standard zur Anordnung der "Word", die bei 32-Bit-Werten oder Zeichenfolgen mit 2 oder mehr Registern ins Spiel kommen.
Dieses Gerät überträgt 32-Bit-Werte mit dem niederwertigsten "Word" zuerst ("least significant word first" oder "little endian word order").
In der folgenden Tabelle ist dies beispielhaft für die Zahl 123456789 dargestellt, der die Hexadezimalzahl 75BCD15 entspricht.
Register X | Register X+1 | |||
---|---|---|---|---|
Word 0 | Word 1 | |||
Byte 1 | Byte 0 | Byte 3 | Byte 2 | |
Bit 16 .. 9 | Bit 8 .. 0 | Bit 32 .. 25 | Bit 24 .. 17 | |
Binär | 11001101 | 00010101 | 00000111 | 01011011 |
Hexadezimal | CD | 15 | 07 | 5B |
Zeichenfolgen per Modbus lesen
Mittels eines Byte lässt sich ASCII codiert ein Zeichen übertragen. Ein "Word" bzw. Register ermöglicht somit, zwei Zeichen zu übertragen.
Um längere Zeichenketten übermitteln zu können, werden daher meist mehrere Register für den string-Datentyp genutzt.
Die Zahl der zu lesenden Register ist in "Anzahl Register" aufgeführt.
Die Zeichenfolgen werden von links nach rechts übertragen und immer mit dem höchstwertigsten "Word" ("most significant word first" oder "big endian word order") und dem niederwertigsten Byte ("least significant byte first" oder "little endian byte order") zuerst.
In der folgenden Tabelle ist dies für beispielhaft für die Zeichenfolge ABCD dargestellt, die in einem String mit 3 Registern zur Verfügung gestellt wird.
Register X | Register X+1 | Register X+2 | ||||
---|---|---|---|---|---|---|
Word 2 | Word 1 | Word 0 | ||||
Byte 4 | Byte 5 | Byte 2 | Byte 3 | Byte 0 | Byte 1 | |
Bit 40 .. 33 | Bit 48 .. 41 | Bit 24 .. 17 | Bit 32 .. 25 | Bit 8 .. 0 | Bit 16 .. 9 | |
Binär | 01000010 | 01000001 | 01000100 | 01000011 | 00000000 | 00000000 |
Hexadezimal | 42 | 41 | 44 | 43 | 0 | 0 |
ASCII | B | A | D | C |
Modbus-Funktionscodes
Die folgenden Funktionscodes wurden aus dem Standard-Modbus-Protokoll implementiert:
Funktion | Code (hexadezimal) | Code (dezimal) |
---|---|---|
Read holding registers (H) | 03 | 03 |
Read input register (I) | 04 | 04 |
Write single register (H) | 06 | 06 |
Write multiple registers (H) | 10 | 16 |
Read/write multiple registers (H) | 17 | 23 |
Alle Input-Register (I) können auch als Holding-Register (H) gelesen werden.
Modbus-Ausnahmecodes
Die folgenden Ausnahmecodes wurden aus dem Standard-Modbus-Protokoll implementiert:
Code | Name | Bedeutung |
---|---|---|
01 | Illegal function | Der Funktionscode ist nicht gültig. |
02 | Illegal data address | Das angegebene Register ist nicht gültig. |
03 | Illegal data value | Der Wert ist nicht zulässig. |
04 | Server device failure | Unbehebbarer Fehler im Server-Gerät. |
Empfehlungen zur Kabelführung
- Es muss ein abgeschirmtes Kabel mit paarweise miteinander verdrillten Adern verwendet werden, das für die RS485-Kommunikation geeignet ist und eine nominelle Impedanz von 100 .. 130 Ω aufweist. Die beiden Signaldrähte müssen sich im gleichen Adernpaar befinden.
- Die Verdrahtungstopologie muss als "Daisy Chain" (Reihenschaltung) mit 120 Ω Abschlusswiderständen an jedem Ende der Busleitung erfolgen. Da dieses IQ Produkt keinen integrierten Abschlusswiderstand hat, muss dieser extern hinzugefügt werden.
- Die maximale Kabellänge des Modbus-Kabels ist abhängig von der verwendeten Baudrate und der Anzahl der Geräte.
- Das Modbus-Kabel sollte so verlegt werden, dass der Einfluss der Leistungskabel minimiert wird. Bei Kreuzung von Leistungskabeln sollte ein 90°-Winkel erreicht werden. Parallel verlaufende Modbus- und Leistungskabel sollten durch einen möglichst großen angemessenen Abstand getrennt werden, ca. 20 .. 25 cm. Alternativ kann ein geerdetes Schirmblech oder ein geerdetes Metallrohr verwendet werden.
- An einem Modbus-Strang sollten max. 10 IQ Produkte angeschlossen sein. Sind andere Geräte an denselben Modbus-Strang angeschlossen, muss die maximale Stromaufnahme dieser anderen Geräte beachtet werden. Der Vorspannungswiderstand des gesamten Strangs sollte mindestens 450 Ohm betragen. Dieses IQ Produkt hat einen Vorspannungswiderstand von 10 kOhm (--> 1 kOhm bei 10 Geräten).
- Dieses IQ Produkt hat keine galvanische Isolierung an der RS485 Schnittstelle. Daher müssen Module, die direkt über den RS485-Bus verbunden sind, das gleiche PE-Massepotential haben.
- IQ Produkte, die sich auf unterschiedliche Massepotenziale beziehen, müssen über einen geeigneten galvanisch getrennten Repeater an den RS485 angeschlossen werden, oder nur an Geräte mit isolierter RS485-Schnittstelle. Unterschiedliche Potenziale auf der Bus-Leitung können zu Fehlfunktionen oder Beschädigungen der Elektronik führen.
- Nur Data+ und Data- sollten angeschlossen werden. Die GND-Leitung sollte nicht zwischen den Modulen angeschlossen werden, da dies einen unerwünschten Erdstrom in der Kommunikationsleitung verursachen kann. Der GND-Pin kann jedoch für den unsymmetrischen Anschluss der Abschirmung verwendet werden, wenn keine bessere Möglichkeit für den Anschluss der Abschirmung verfügbar ist.
- Die Abschirmung darf nur an einem Ende des Busses angeschlossen werden, um unerwünschte Erdströme in der Abschirmung zu vermeiden. Die Abschirmung muss jedoch über die gesamte Bus-Länge ununterbrochen sein, außer bei galvanisch getrennten Repeatern.
- Im Falle eines isolierten Client-Geräts und eines nicht isolierten Server-Geräts oder umgekehrt wird empfohlen, die Abschirmung am Ende ohne Isolierung anzuschließen.
- Wenn keines der Geräte isoliert ist, sollte die Abschirmung an das Client-Gerät angeschlossen werden. Wenn alle Geräte isoliert sind, spielt es keine Rolle, an welchem Ende die Abschirmung angeschlossen ist - sie sollte jedoch nicht an den GND-Pin der RS485-Schnittstelle angeschlossen werden.
Siehe folgende Beispiele zur Kabelführung:
Modbus TCP/IP
Falls Modbus TCP/IP erforderlich ist oder gegenüber Modbus RTU bevorzugt wird, kann ein Modbus RTU <-> TCP/IP Konverter verwendet werden. Es gibt Gateways auf dem Markt, die die Modbus Kommunikation 1:1 übersetzen, ohne dass die einzelnen Protokolle / Register im Gateway selbst konfiguriert werden müssen. Ein Produkt, das BITZER erfolgreich getestet hat, ist "RS485 TO POE ETH (B)" von Waveshare. Im Vergleich zur Standardversion "RS485 TO ETH (B)" bietet die POE Version eine zusätzliche galvanische Isolierung der Signale und der Netzversorgung. Nachdem die Geräte als Modbus RTU <-> TCP/IP Konverter konfiguriert sind, können mehrere IQ Produkte am Modbus TCP/IP verfügbar gemacht werden.
Im Einzelnen müssen die folgenden Einstellungen im "VirCom" vorgenommen werden:
- Network
- IP Mode: DHCP (alternativ kann eine feste IP Adresse gegeben werden)
- Work Mode: TCP Server
- Serial
- Baudrate, Datenbits, Parität, Stopbits: Müssen identisch sein zu den Kommunikationseinstellungen der angeschlossenen IQ Produkte.
- Advanced Settings
- Transfer Protocol: Modbus_TCP Protocol
- Weitere fortgeschrittene Einstellungen: Bei der Konfiguration des Geräts über das „VirCom“-Tool werden die Speicherfunktion (Modbus Gateway Type = Auto Query Storage Type) und die Multi-Host-Unterstützung (Enable RS485 Multi-Host) automatisch aktiviert. Die Speicherfunktion verbessert die Leistung für Modbus TCP/IP-Abfragen, und die Multi-Host-Funktion ermöglicht den Anschluss von mehr als einem Modbus TCP/IP-Client-Gerät.