
Das Modbus-Protokoll wird in der Automatisierung der Produktion weit verbreitet eingesetzt. Viele Geräte unterstützen das Modbus RTU-Kommunikationsprotokoll, das eine serielle Schnittstelle verwendet. Typischerweise verfügen die Geräte über eine RS-232- oder RS-485-Schnittstelle mit einem DB-9-Stecker oder einer Anschlussdose. Modbus RTU-Geräte sind einfach zu implementieren und kostengünstig zu warten. Daher ist das Modbus RTU-Protokoll so populär geworden. Heutzutage beginnen immer mehr Industriegeräte, den Ethernet-Standard zu unterstützen. Die Komplexität und der Umfang der Netzwerke nehmen zu. Viele Systeme arbeiten bereits über Modbus TCP mit Ethernet, zum Beispiel SCADA. Dadurch entstehen Schnittstellenprobleme zwischen den Modbus RTU- und Modbus TCP-Protokollen. Die folgenden häufig gestellten Fragen und deren Antworten sollen Ihnen helfen, häufig auftretende Probleme bei der Modbus-Protokollkonvertierung zu identifizieren und zu verhindern.
FAQ:
- Brauche ich einen speziellen Protokollkonverter, um Geräte mit einer seriellen Modbus RTU-Schnittstelle mit einem Ethernet-Netzwerk zu verbinden? Reicht der Server der seriellen Geräte aus?
- Wenn mehrere Modbus RTU-Geräte an verschiedene serielle Ports des Gateways angeschlossen sind, wie sollte die TCP-Verbindungsarchitektur aussehen? Kann ich eine einzelne Verbindung verwenden oder benötige ich für jeden seriellen Port eine separate Verbindung?
- Wie können mehrere SCADA-Hosts gleichzeitig auf dieselben Modbus RTU-Geräte über ein einzelnes Gateway zugreifen?
- Ich habe zwei funktionierende Modbus-Master-Geräte (PLC oder HMI). Wie kann ich den Datenaustausch zwischen ihnen organisieren?
- Ich habe mehrere Modbus RTU-Geräte, die abgefragt werden müssen. Ich kann mehrere Modbus-Befehle verwenden, um Registerdaten zu erhalten, aber es dauert zu lange. Kann das Gateway aktiv Daten empfangen und sie in ein einzelnes Register zusammenführen, sodass ich alle Daten mit einem einzigen Modbus-Befehl abrufen kann?
Brauche ich einen speziellen Protokollkonverter, um Geräte mit einer seriellen Modbus RTU-Schnittstelle mit einem Ethernet-Netzwerk zu verbinden? Reicht der Server der seriellen Geräte aus?
Zunächst müssen Sie bestimmen, welchen Modbus-Treiber auf dem SCADA-Host Sie verwenden möchten. Es gibt vier mögliche Optionen:
- SCADA-Host mit Modbus TCP-Treiber
- SCADA-Host mit Modbus RTU-Treiber – mit eingebautem seriellen Port
- SCADA-Host mit Modbus RTU-Treiber – ohne eingebauten seriellen Port
- SCADA-Host mit dem Treiber „Ethernet Encapsulation“
Option 1: SCADA-Host mit Modbus TCP-Treiber
Diese Version erfordert einen Protokollkonverter. Sie können das Modbus TCP-Protokoll verwenden, um über das Gateway mit Modbus RTU-Geräten zu kommunizieren.
Auf dem Markt für Automatisierungsgeräte sind viele "Modbus-Gateways" erhältlich, die eine Verbindung über Modbus TCP für Modbus TCP-Slave-Geräte bereitstellen. Wenn das Gateway eine Modbus TCP-Anfrage erhält, konvertiert es das Paket in Modbus RTU und sendet es sofort an die Modbus RTU-Geräte.

Option 2: SCADA-Host mit Modbus RTU-Treiber – mit eingebautem seriellen Port
Diese Option eignet sich, wenn Sie nur einen vorhandenen SCADA-Host und Modbus RTU-Geräte in ein Ethernet-Netzwerk integrieren müssen. Wenn Ihr SCADA-Host über einen seriellen Port verfügt, können Sie dieses Problem mit einem Paar von Gateways lösen.
Wie im Netzwerkdiagramm gezeigt, kann das Gateway das Modbus RTU-Paket in Modbus TCP und umgekehrt konvertieren. Wenn der eingebaute serielle Port fehlt, eignet sich diese Lösung nicht für Sie, verwenden Sie Option 3.

Option 3: SCADA-Host mit Modbus RTU-Treiber – ohne eingebauten seriellen Port
Wenn Sie bestehende SCADA-Programme und -Geräte verwenden möchten, aber Ihr SCADA-Host keinen seriellen Port hat, verwenden Sie einen seriellen Geräteserver, um einen virtuellen COM-Port zu erstellen. So können Sie über den Server auf entfernte serielle Geräte zugreifen, und die Funktionalität entspricht einem realen COM-Port.
Um einen „virtuellen COM-Port“ zu erstellen, installiert der serielle Geräteserver den virtuellen COM-Port-Treiber auf Ihrem SCADA-Host. Um diesen Port zu aktivieren, installieren Sie den seriellen Geräteserver im virtuellen COM-Port-Modus. Alle über ihn übertragenen Daten werden an den entfernten seriellen Port des seriellen Geräteservers gesendet. Da der virtuelle COM aus Sicht des Betriebssystems und der SCADA identisch mit dem realen ist, können Sie direkt einen Modbus RTU-Befehl an ihn senden.

Option 4: SCADA-Host mit dem Treiber „Ethernet Encapsulation“
Wenn Ihr SCADA-Host keinen seriellen Port hat und Sie keinen virtuellen COM-Port-Treiber installieren möchten, können Sie stattdessen den Ethernet Encapsulation-Treiber verwenden. Beachten Sie, dass die SCADA-Software den Typ „Ethernet Encapsulation“ unterstützen muss. Die Verwendung von „Ethernet Encapsulation“-Treibern wird empfohlen, wenn Sie über fundierte Kenntnisse in seriellen Protokollen und TCP/IP-Protokollen verfügen.
Der serielle Geräteserver muss in den Raw Socket- oder Tunneling-Modus geschaltet werden. Wenn SCADA Modbus RTU-Pakete an Geräte sendet, erfolgt die Verbindung zwischen Host und seriellen Geräteserver über einen transparenten TCP/IP- oder UDP-Kanal ohne Protokollkonvertierung. Der serielle Geräteserver muss korrekt konfiguriert sein, da Modbus RTU das Ende eines Pakets auf der Grundlage von Pausen in der Übertragung definiert. Wenn das Modbus RTU-Paket in zwei oder mehr TCP/IP- oder UDP-Pakete aufgeteilt wird, können Probleme auftreten. Wenn Sie die Übertragung von Paketen zwischen seriellen Kanälen und Ethernet-Netzwerken nicht richtig konfigurieren können, wird empfohlen, die Option mit einem Gateway (2) oder einem virtuellen COM-Port (3) zu verwenden.

Obwohl serielle Geräteserver verwendet werden können, um Modbus RTU-Geräte mit einem Ethernet-Netzwerk zu verbinden, ist die Gateway-Option (2) die bevorzugte Lösung und erfüllt fast alle Systemanforderungen. Ihr Host muss das Modbus TCP-Protokoll unterstützen, aber das verursacht selten Probleme; Dieses Protokoll ist sehr beliebt und weit verbreitet. Hier sind einige Situationen, in denen Sie die vorgestellte Version mit dem Gateway verwenden müssen:
Mehrere Host-Geräte oder Netzwerkrückfall
Die Verbindung über Ethernet ermöglicht nicht nur den Fernzugriff, sondern unterstützt auch mehrere Verbindungen. Die meisten Gateways unterstützen bis zu 32 Verbindungen, d.h. 32 SCADA-Hosts können gleichzeitig Daten von Modbus RTU-Geräten abfragen. In dieser Situation ist es ziemlich schwierig, die Redundanz des Netzwerks mit einem seriellen Geräteserver bereitzustellen, da die meisten Server keine mehreren führenden Geräte unterstützen. Andererseits verursacht die Verwendung von Gateways keine Probleme.

Eine Verbindung für mehrere Modbus RTU-Geräte
Manchmal ist es notwendig, eine Verbindung auf dem SCADA-Host zu verwenden, um mehrere Modbus RTU-Geräte, die an verschiedene serielle Ports angeschlossen sind, abzufragen. Das Gateway ist die einzige Lösung, die einen solchen Routing-Mechanismus implementieren kann. Gateways mit mehreren seriellen Ports können so konfiguriert werden, dass sie eine Modbus-Anfrage an den entsprechenden seriellen Port senden, wobei die eindeutigen Kennungen der Slaves berücksichtigt werden.
Der Norden der seriellen Geräte kann mit einer so schwierigen Aufgabe nicht umgehen.

Gleichzeitiger Zugriff auf das Gerät vom alten Modbus RTU-Controller und dem neuen Modbus TCP SCADA
Obwohl das Ethernet-Protokoll den Fernzugriff erleichtert, ist es manchmal notwendig, bestehende lokale Verbindungen zum Controller oder HMI zu erhalten. Das Problem ist, dass der serielle Port am Gerät bereits mit dem Gateway verbunden ist, sodass kein serieller Port für die HMI-Verbindung vorhanden ist. Um dieses Problem zu lösen, sind einige Gateways mit der Funktion „Serial Redirector“ ausgestattet. Dieses System ähnelt sehr einem Router, da das Gateway Anfragen zwischen verschiedenen seriellen Ports basierend auf der Slave-ID senden kann.

Fazit
Es gibt viele Varianten der Modbus-Konvertierung zwischen serieller Schnittstelle und Ethernet. Obwohl in diesem Fall eine so einfache Option wie die transparente Datenübertragung zwischen seriellen und Ethernet-Ports verwendet werden kann, passt bei der Arbeit mit industriellen Protokollen, beispielsweise Modbus, ein spezielles Gateway viel besser. Die Verwendung eines solchen Gateways kann eine große anfängliche Investition erfordern, bietet jedoch langfristig eine stabilere Verbindung und kann Modbus-Pakete zur ordnungsgemäßen Verarbeitung erkennen.
Wenn mehrere Modbus RTU-Geräte an verschiedene serielle Ports des Gateways angeschlossen sind, wie sollte die TCP-Verbindungsarchitektur aussehen? Kann ich eine einzelne Verbindung verwenden oder benötige ich für jeden seriellen Port eine separate Verbindung?
Die meisten Gateways bieten flexible TCP-Verbindungseinstellungen für den Zugriff auf mehrere Modbus RTU-Geräte, die an verschiedene serielle Ports am Gateway angeschlossen sind. Es gibt drei verschiedene Methoden basierend auf dem Routing-Mechanismus:
- Verbindung des seriellen Ports zu einem eindeutigen TCP-Port
- Verbindung des seriellen Ports zu einer eindeutigen IP-Adresse
- Verwendung der Routing-Tabelle
Methode 1: Verbindung des seriellen Ports zu einem eindeutigen TCP-Port
Die beliebteste Methode zur Planung der Gateway-Topologie. In der Gateway-Konfiguration wird jeder serielle Port mit einem separaten TCP-Port verbunden. Zum Beispiel ist 4001 serieller Port 1, 4002 serieller Port 2 und so weiter. Wenn Sie Modbus RTU-Geräte an seriellen Port 1 anschließen möchten, stellen Sie eine Modbus TCP-Verbindung mit 4001 her. Das Gateway sendet Modbus TCP-Pakete zwischen TCP-Port 4001 und seriellen Port 1.
In dieser Topologie muss der SCADA-Treiber mehrere Modbus TCP-Verbindungen erstellen.

Methode 2: Verbindung des seriellen Ports zu einer eindeutigen IP-Adresse
Diese Option ist sehr ähnlich wie Option 1, aber das Gateway verwendet verschiedene IP-Adressen, um die seriellen Ports zu identifizieren.
Zum Beispiel, 192.168.2.1 – für seriellen Port 1, 192.168.2.2 – für seriellen Port 2 usw. Wenn Sie Modbus RTU-Geräte an seriellen Port 1 anschließen möchten, stellen Sie eine Modbus TCP-Verbindung mit 502 her. Das Gateway sendet Modbus TCP-Pakete zwischen 192.168.2.1:502 und seriellen Port 1. In dieser Topologie muss der SCADA-Treiber ebenfalls mehrere Modbus TCP-Verbindungen erstellen. Obwohl die Topologie mehrere IP-Adressen erfordert, erlauben einige Modbus TCP-Clients nur TCP-Port 502. In diesem Fall ist Option 1 nicht geeignet für Sie, und Sie müssen Option 2 verwenden.

Methode 3: Verwendung der Routing-Tabelle
In dieser Topologie wird Routing verwendet, um mit mehreren Geräten zu kommunizieren. Damit eine Anfrage an den richtigen seriellen Port gesendet wird, müssen das Gateway und die Routing-Richtung korrekt konfiguriert werden. Zum Beispiel verarbeitet serieller Port 1 alle Modbus-Pakete, die Slave-IDs von 1 bis 10 haben, serieller Port 2 IDs von 11 bis 20 usw.
Da in der Topologie nur eine Verbindung verwendet wird, ist die Kommunikation langsamer als bei den Optionen 1 und 2. Allerdings kann mit budgetären und technischen Einschränkungen eine einzelne Verbindung eine geeignete Option sein, wenn die ausreichende Leistung bereitgestellt wird.
Hinweis:
Wenn Sie mehrere Geräte an denselben seriellen Port anschließen oder mehrere serielle Ports an dieselbe TCP-Verbindung binden, erhöht sich die Modbus-Abfragezeit. Um die Abfragerate zu erhöhen, benötigen Sie mehr TCP-Verbindungen, daher müssen Sie die Fähigkeiten von SCADA berücksichtigen.

Wie können mehrere SCADA-Hosts gleichzeitig auf dieselben Modbus RTU-Geräte über ein einzelnes Gateway zugreifen?
Obwohl das Gateway dies handhaben kann, bedenken Sie, dass die Bandbreite des seriellen Ports unverändert bleibt. Wenn mehrere Anfragen über einen seriellen Port empfangen werden, kann es zu Verzögerungen kommen. Das Gateway verarbeitet die früheren Anfragen zuerst. Daher müssen Sie, wenn Sie mehreren Master-Geräten den gleichzeitigen Zugriff auf das Modbus RTU-Gerät ermöglichen möchten, zunächst die geeignete Abfragezeit auswählen.

Dennoch ist die oben beschriebene Lösung nicht die einzige. Einige Gateways unterstützen den „Agent“-Modus, der Daten von den angeschlossenen Geräten aktiv und ständig empfängt.
Aktualisierte Daten werden im internen Speicher gespeichert, der verwendet wird, um auf Host-Anfragen zu antworten. Obwohl diese Lösung schneller und effizienter ist, werden die erhaltenen Daten nicht die aktuellsten sein.
Zum Beispiel, wenn eine Anfrage 100 ms dauert, verursachen 5 Verbindungen eine Verzögerung von mindestens 100 ms (5-1) = 400 ms, bevor die nächste Anfrage gesendet wird. Das bedeutet, dass der Scan-Zyklus jedes SCADA-Hosts 400 ms (plus etwas Toleranz) betragen sollte.

Ich habe zwei funktionierende Modbus-Master-Geräte (PLC oder HMI). Wie kann ich den Datenaustausch zwischen ihnen organisieren?
Um den Datenaustausch zwischen zwei Modbus-Master-Geräten zu ermöglichen, ist ein Gateway erforderlich, das den Master-Master-Modus unterstützen kann. In diesem Modus arbeitet das Gateway als Slave-Gerät für beide Seiten. Ein Master-Gerät kann Daten in den internen Speicher des Gateways schreiben, und ein anderes kann sie empfangen, wodurch ein Austausch ermöglicht wird. Je nach verwendetem Gateway können Sie sowohl Modbus RTU- als auch Modbus TCP-Unterstützung für beide Seiten bereitstellen oder Modbus RTU-Unterstützung für eine und Modbus TCP für die andere Seite.

Ich habe mehrere Modbus RTU-Geräte, die abgefragt werden müssen. Ich kann mehrere Modbus-Befehle verwenden, um Registerdaten zu erhalten, aber es dauert zu lange. Kann das Gateway aktiv Daten empfangen und sie in ein einzelnes Register zusammenführen, sodass ich alle Daten mit einem einzigen Modbus-Befehl abrufen kann?
Damit das Gateway aktiv Daten von mehreren Modbus RTU-Geräten empfangen und sie in ein einzelnes Register zusammenführen kann, muss der Gateway-Agent die Daten im internen Speicher speichern. Das Gateway muss außerdem jedes Modbus RTU-Gerät nacheinander abfragen. Alle Daten werden in einem Block im internen Speicher des Gateways abgelegt, sodass Sie sie mit einem einzigen Lese-Befehl abrufen können.

Glossar
Serieller Geräteserver
Ein serieller Geräteserver ist ein eigenständiges Gerät, das mindestens einen Ethernet-Port und einen oder mehrere serielle Ports besitzt. Serielle Geräteserver sind mit einem eingebetteten Netzwerkbetriebssystem ausgestattet und ermöglichen es Computern, serielle Geräte im Netzwerk zuzugreifen. Sie können Daten transparent zwischen der seriellen Schnittstelle und Ethernet übertragen und diese entsprechend konvertieren.
Moderne serielle Geräteserver unterstützen auch die Funktion „virtueller COM-Port“ für Computer, die keinen zusätzlichen seriellen Port haben, indem sie die Ethernet-Verbindung in den COM-Port umwandeln. Zusätzlich zu diesen Kernfunktionen können komplexere Server sogar PPP über serielle Leitungen oder Telnet in Ethernet-Netzwerken unterstützen. Der serielle Geräteserver kann für die Konsolenverwaltung von Netzwerk- und Servergeräten verwendet werden (deshalb nennen ihn einige Hersteller „Console“) oder für die Fernterminalverwaltung in alten Bankensystemen (deshalb wird er manchmal „Terminal“ genannt).
Virtueller COM-Port, virtueller COM-Port-Treiber
Ein virtueller COM-Port ist kein echter (nicht-physischer) COM-Port am Computer. Stattdessen wird ein virtueller COM-Port-Treiber auf dem Computer installiert, der das Verhalten des lokalen COM-Ports vollständig emuliert. Der Treiber verwaltet die Ports auf einem seriellen Geräteserver, der über ein TCP/IP-Netzwerk verbunden ist. Der serielle Port auf dem entfernten seriellen Geräteserver funktioniert auf die gleiche Weise wie der lokale COM-Port. Ein virtueller COM-Port ist an einen bestimmten Port auf einem bestimmten seriellen Geräteserver gebunden. Zum Beispiel ist COM3 serieller Port 1 auf einem entfernten seriellen Geräteserver mit der IP-Adresse 192.168.2.1. Daher werden Daten, die durch diesen Port gehen, vom Treiber an „192.168.2.1@serieller Port 1“ (192.168.2.1 zu serieller Port 1) gesendet. Alle Anfragen für diesen virtuellen COM-Port werden an „192.168.2.1@serieller Port 1“ weitergeleitet. Da moderne Host-Computer oft eine unzureichende Anzahl eingebauter serieller Ports haben, sind virtuelle COM-Ports ein unverzichtbares Werkzeug zum Anschluss bestehender Industrieautomatisierungsgeräte.
Transparenter Gateway
Ein transparenter Gateway ist die Hauptmethode zur Verwendung des Modbus-Gateways. Da die Modbus RTU- und Modbus TCP-Protokolle dieselbe PDU (Datenblock) haben und sich nur im Header unterscheiden, kann das Gateway Daten zwischen solchen Geräten einfach übertragen. Wenn das Gateway also ein Modbus TCP-Paket von einem Ethernet-Netzwerk erhält, kann es einfach das Adressfeld gemäß den Modbus RTU-Anforderungen ersetzen und das Paket sofort an den seriellen Port senden. Wenn das Gateway eine Antwort vom Modbus RTU-Gerät erhält, antwortet es dem Modbus TCP-Client.

Gateway-Agent
Ein Gateway-Agent ist eine andere Methode zur Verwendung des Modbus-Gateways, um Daten zwischen Modbus TCP- und Modbus RTU-Geräten zu übertragen. Der Gateway-Agent ist mit eigenem internem Speicher für temporäre Datenspeicherung ausgestattet und pollt kontinuierlich angeschlossene Geräte. Wenn eine Anfrage vom SCADA-Treiber empfangen wird, verwendet das Gateway die im internen Speicher gespeicherten Daten, um zu antworten. Daher fungiert das Gateway als Agent für das aktive Polling von Geräten. Diese Funktion kann zur Protokollkonvertierung verwendet werden, wenn:
- Die beiden Protokolle verwenden eine unterschiedliche Paketstruktur. Zum Beispiel PROFIBUS und Modbus, Ethernet/IP, PROFINET usw.
- Zwei Protokolle verwenden unterschiedliche Zykluszeiten. Einige Protokolle, zum Beispiel PROFIBUS, PROFINET und Ethernet/IP, tauschen Daten für sehr kurze Zeitzyklen aus, bei denen ein transparenter Gateway nicht ausreicht.

Für weitere Informationen kontaktieren Sie bitte unser Vertriebsteam! sales@ipc2u.com