Modbus-Software zum Testen und Debuggen

Modbus ist ein Kommunikationsprotokoll, das üblicherweise in industriellen Automatisierungssystemen, Smart-Home-Systemen und automatisierten Netzwerken kleiner Objekte (Lagerhäuser, Gewächshäuser usw.) verwendet wird. Das Protokoll dient auch zum Anschließen von Geräten verschiedener Typen an einen Heimcomputer. Die Entwicklung von Projekten wie Arduino und Raspberry Pi hat das Interesse an Aufgaben im Zusammenhang mit Robotik und Automatisierung erheblich erhöht. All dies sichert die Popularität von Modbus bei Amateuren und Profis.

In diesem Artikel werden die wichtigsten Funktionen der vorhandenen Software- und Hardwarelösungen zum Testen und Debuggen von Geräten und Netzwerken basierend auf dem Modbus-Protokoll behandelt.

Wenn Sie mit der Architektur des Protokolls vertraut sind, können Sie direkt zur Beschreibung der Modbus-Software springen. Wenn nicht, finden Sie unten eine kurze Einführung in Modbus.

Inhaltsverzeichnis:

  1. Informationen zum Modbus-Protokoll
  2. Modbus-Geräte entwickeln und testen
  3. Debugging von Automatisierungssystemen auf Basis von Modbus-Geräten
  4. Herausforderungen bei der Modbus-Kommunikation

Informationen zum Modbus-Protokoll


Modbus ist ein gängiges Protokoll, das in Automatisierungssystemen auf mittlerer und unterer (Feld-) Ebene verwendet wird. Die mittlere Ebene ist die Ebene der Controller - Geräte, die Daten sammeln und den technologischen Prozess steuern. Die Feldebene ist die Interaktionsebene zwischen Sensoren und Steuerungen oder Sensoren und dem Server.

Die typische Struktur eines Automatisierungssystems, das Modbus als Basisprotokoll verwendet, ist unten dargestellt.

Modbus-Protokoll

Die Standardumgebung für das Modbus-Protokoll ist RS485/422/232. Modbus RTU oder Modbus ASCII arbeiten darüber. In TCP/IP-Netzwerken ist das übergeordnete Protokoll jedoch das TCP-Transportprotokoll, und diese Variante wird als Modbus-TCP bezeichnet. In diesem Artikel werden wir über den Modbus RTU-Übertragungsmodus sprechen.

Das Modbus-Protokoll wird mithilfe einer Master-Slave-Beziehung implementiert. Das heißt, die Kommunikation wird immer von einem Gerät initiiert, dem Master, der eine Anfrage an einen Slave (Server) sendet und auf eine Antwort wartet. Es gibt immer einen Master im Netzwerk und 1 bis 247 Slaves.

Der Master interagiert mit Slave-Geräten im Request-Response-Format. Die Anforderung enthält eine Folge von Bytes, die als Frame bezeichnet wird und in der die Zeit zwischen Bytes in Abhängigkeit von der Datenübertragungsrate standardisiert ist und nicht länger als das Intervall ist, in dem 1,5 Bytes Daten übertragen werden können. Im RTU-Modus beginnen Nachrichten mit einem stillen Intervall von mindestens 3,5 Zeichen.

Eine Anforderungsnachricht wird im folgenden Format gesendet:

Modbus-Protokoll

ID - Geräteadresse (1 Byte),
FN - Modbus-Funktion (1 Byte),
[args] - Funktionsargumente (N Bytes, abhängig von der Funktion),
CRC - eine Prüfsumme CRC-16 (2 Bytes).

Das Format einer Antwortnachricht:

Modbus-Protokoll

Wie Sie sehen können, haben die Antwort- und Anforderungsrahmen ähnliche Konstruktionen, mit Ausnahme des Datenfelds, das je nach ausgeführter Funktion unterschiedliche Inhalte bereitstellt.

Falls die angeforderte Funktion vom Slave-Gerät nicht unterstützt wird oder die Argumente im Feld [args] der Anforderung für diesen Server falsch sind, wird im Feld FN der Antwort das High-Bit auf 1 und das Feld Data gesetzt enthalten zusätzliche Informationen zu dem aufgetretenen Fehler.

Bestimmte Slave-Geräte können auch bestimmte Register mit zusätzlichen Informationen haben.

Die Registertypen, auf die in Modbus-Geräten verwiesen wird, umfassen Folgendes:

Feld Zugriff Größe Beschreibung
Diskrete Eingänge
nur lesen
1 Bit
als Eingänge verwendet
Spulenausgänge
lesen Schreiben
1 Bit
verwendet, um diskret zu steuern
Eingangsregister
nur lesen
16 Bit
wird für die Eingabe verwendet
Register halten
lesen Schreiben
16 Bit
wird für eine Vielzahl von Dingen verwendet, einschließlich Eingaben, Ausgaben, Konfigurationsdaten usw.

Die vollständige Beschreibung des Modbus RTU-Protokolls finden Sie in seiner Funktionsspezifikation.

Beim Einrichten eines Modbus-Netzwerks ist zu berücksichtigen, dass das Protokoll die Übertragung von Daten von mehreren Geräten ermöglicht, die von einem einzelnen Server oder Controller empfangen werden sollen, auf dem ein Modbus-Treiber installiert ist. Eine serielle App kann den Kommunikationsport eines Servers (z. B. COM1) steuern, wenn sie Modbus-Daten von mehreren Sensoren empfängt.

Leider gibt es eine Einschränkung, da das gleichzeitige Öffnen des Empfangsports in mehreren Anwendungen eine erhebliche Herausforderung darstellen kann.

Für dieses Dilemma gibt es eine Lösung. Virtual COM Port Driver PRO von Eltima ermöglicht die Erstellung virtueller RS485-Ports und die Aufteilung von Modbus-Daten, sodass mehrere Ports die Daten gleichzeitig empfangen können.

Probieren Sie jetzt den Virtual Serial Port Driver Pro aus
14-day free trial

Sie können jetzt den Datenstrom, der über einen physischen Port eingeht, auf mehrere virtuelle Ports duplizieren. Durch das Verbinden mehrerer Anwendungen mit virtuellen Kopien Ihres COM1-Ports können alle Apps gemeinsam auf Ihren physischen Port zugreifen.

Modbus-Geräte entwickeln und testen


Entwickeln und Testen von Modbus-Geräten Beim Entwickeln und Debuggen von Modbus RTU-Geräten verwenden Experten spezielle Software- und Hardwaretools. Die einfachste Lösung für Hardwaregeräte ist der RS485 / USB-Konverter. Von allen Geräten dieses Typs ist MOXA UPORT 1130 / UPORT 1150 wahrscheinlich die effizienteste Lösung. Das Gerät ist einfach zu bedienen und erfordert nur minimale Kenntnisse beim Zusammenbau. Es gibt auch komplexere Lösungen wie Ethernet / RS-485 (z. B. NPORT von MOXA).

In der Praxis wird bei der Entwicklung von Modbus RTU-Geräten die Slave-Funktion häufiger implementiert. Slave-Geräte umfassen verschiedene Sensoren, gesteuerte Relais, E / A-Module usw. Master-Geräte werden seltener erstellt. In Automatisierungsnetzwerken wird die Masterfunktion normalerweise entweder von einer Steuerung ausgeführt, auf der bereits ein Modbus-Stack implementiert ist, oder von einem OPC-Server / SCADA-System, das mit einem Modbus-Treiber ausgestattet ist.

Wir werden die Entwicklung des Modbus-Stacks in diesem Artikel nicht berücksichtigen. Erwähnenswert ist nur die FreeMODBUS-Bibliothek, auf deren Grundlage es recht einfach ist, ein Gerät zu bauen, das Modbus-Slave-Funktionen unterstützt.

Effiziente Software für Modbus-Tests


Tests können auf verschiedenen Ebenen der Modbus-Geräteentwicklung durchgeführt werden. Die Modbus-Testsoftware- und -hardwarelösungen unterscheiden sich je nach Entwicklungsstand und Testzweck

Während des Entwicklungsprozesses kann eine Situation auftreten, in der ein Gerät eine Anforderung empfängt und darauf antwortet (dies kann entweder durch die Paketempfangs- / Sende-LEDs angezeigt werden, wenn solche Elemente im Entwurf vorgesehen sind, oder mithilfe eines Debuggers und einer Einstellung erkannt werden ein Haltepunkt), aber die Daten werden nicht im Terminal oder einem anderen speziellen Programm angezeigt. In diesem Fall benötigen Sie einen dedizierten Sniffer für die serielle Schnittstelle.

Serial Port Monitor ist eine der besten Modbus-Überwachungssoftware, die derzeit verfügbar ist. Diese Modbus-Lösung kann alle seriellen Daten, die über die COM-Ports des Systems übertragen werden, problemlos lesen und aufzeichnen. Die erweiterte Funktionalität der App ermöglicht die Erfassung von Daten in Echtzeit, sodass ein Entwickler alle Probleme lösen kann, sobald sie erkannt wurden.

Serial Port Monitor kann im Terminalmodus arbeiten, der die Übertragung von Daten von einem überwachten COM-Port zu einem darin eingesteckten Gerät emuliert. Diese Option ist besonders praktisch für Modbus-Kommunikationstests, da hiermit die Reaktion eines bestimmten Geräts auf einen bestimmten Befehl und bestimmte Daten beobachtet werden kann.

Modbus Tester von Eltima Software

Serial Port Monitor logo

Serial Port Monitor

Protokollieren und analysieren Sie die Aktivität des Serial-Ports
4.8 Rang basierend auf 41+ Nutzer, Bewertungen(75)
Herunterladen 14 Tage voll funktionale Testversion
Serial Port Monitor

Die dedizierte Software ist nützlich, wenn nicht nur überprüft werden muss, ob ein Gerät funktioniert (dh auf Anforderungen korrekt reagiert), sondern auch die Zwischenzeit bis zum Ausfall gemessen werden muss.

Die Modbus-Testerlösung ermöglicht die Protokollierung eingehender und ausgehender Datenströme. Darüber hinaus können alle gesammelten Daten in verschiedenen Ansichten (Tabelle, Zeile, Speicherauszug, Terminal) angezeigt werden, was den Vergleich und die Analyse vereinfacht.

Debugging von Automatisierungssystemen auf Basis von Modbus-Geräten


Es gibt weit mehr Spezialisten, die Automatisierungssysteme und Geräte debuggen, die das Modbus-Protokoll unterstützen, als diejenigen, die diese Geräte entwickeln. Also, basierend auf den Besonderheiten der Aufgaben, die Anforderungen für Die Modbus-Software wird etwas anders sein.

Wenn ein Controller an ein einzelnes Slave-Gerät angeschlossen werden muss, können Sie eine serielle Kommunikation mithilfe eines RS-485 / USB-Konverters, eines PCs und einer speziellen Software oder eines speziellen Terminals herstellen. In diesem Fall sind keine langen Tests erforderlich, gefolgt von der Analyse zahlreicher Protokolldateien. Daher unterscheiden sich die Logik der Operation und der Satz von Werkzeugen nicht von denen, die in der Testphase der Entwicklung von Slave-Geräten verwendet werden.

Falls Sie bereits über ein bereites Netzwerk von Geräten verfügen, können die folgenden Aufgaben unterschieden werden:

  • Überprüfen der Funktionsfähigkeit aller Geräte im Netzwerk (d. h. Kommunikation mit jedem einzelnen Gerät und Überprüfung der Richtigkeit seiner Antwort);

  • Lasttest (Identifizierung der maximalen Betriebskapazität des Geräts). Es wird empfohlen, mehrere Sitzungen durchzuführen und die gesammelten Daten auf Fehler, Nichtantworten, Datenbeschädigung usw. zu analysieren.

Um diese Aufgaben zu erfüllen, benötigen Sie entweder ein Terminal mit der Möglichkeit, eine Liste von Anforderungen zu erstellen, oder ein spezielles Tool wie Modbus Poll, einen Modbus-Mastersimulator, mit dem mehrere Modbus-Slaves und / oder Datenbereiche gleichzeitig überwacht werden können.

Herausforderungen bei der Modbus-Kommunikation


Einige Modbus-Geräte können bestimmte RS-485-Schnittstelleneinstellungen haben (Anzahl der Datenbits, Parität, Anzahl der Stoppbits). Geräte mit unterschiedlichen Einstellungen können nicht im selben Netzwerk mit demselben Master arbeiten. Das bequemste Tool zum Testen und Konfigurieren solcher Geräte ist ein Terminalprogramm, das das schnelle Umschalten zwischen vorinstallierten Portparametern unterstützt oder mit mehreren Leitungen gleichzeitig arbeitet.

Eine weitere Herausforderung besteht darin, den Datenaustausch mit einem Gerät zu ermöglichen, das über ein Protokoll arbeitet, das sich von der Standardspezifikation der Modbus RTU unterscheidet. Beispielsweise kann das Protokoll des Slaves Modbus logisch ähnlich sein (Paketstruktur, Zeitüberschreitungen usw.), jedoch einige Funktionen verwenden, die über den Standard hinausgehen.

In diesem Fall empfiehlt es sich, entweder Modbus Poll zu verwenden, mit dem beliebige Anforderungen formuliert werden können, oder ein Terminal, das ähnliche Funktionen unterstützt.

Das Standard-SCADA-System ist für die Arbeit mit solchen Geräten nicht effizient und die Kommunikation mit den Geräten wird über einen speziellen OPC-Server hergestellt.

Serial Port Monitor

Anforderungen: Windows (32-bit und 64-bit): XP/2003/2008/Vista/7/8/10, Windows Server 2012, Windows Server 2012/2016/2019 , 9.16MB Größe
Version 7.0.342 (der 13. Jan, 2018) Versionshinweise
Categorie: Communication Application