Cookie
Electronic Team, Inc. uses cookies to personalize your experience on our website. By continuing to use this site, you agree to our cookie policy. Click here to learn more.

Effiziente Tools zum Debuggen Modbus-basierter Geräte und Netzwerke

Olga Weis Olga Weis

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 protocol

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 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 protocol

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

Das Format einer Antwortnachricht:

Modbus protocol

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 gesetzt und das Feld Data enthält zusätzliche Informationen zu dem aufgetretenen Fehler.

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

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
Betriebsregister
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 Kommunikations-Port 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 Empfangs-Ports in mehreren Anwendungen eine erhebliche Herausforderung darstellen kann.

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

Testen Sie
Virtual Serial Port Driver jetzt
14 Tage kostenlose Testversion

Sie können nun 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


Bei der Entwicklung und dem 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 die 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 Design enthalten sind, oder mithilfe eines Debuggers und Einstellung eines Breakpoint), aber die Daten nicht im Terminal oder einem anderen speziellen Programm angezeigt werden. In diesem Fall benötigen Sie einen dedizierten Sniffer für die serielle Schnittstelle.

Serial Port Tester 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.

COM Port Tester 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 Electronic Team, Inc.

Serial Port Monitor logo

Serial Port Monitor

Protokollieren und analysieren Sie die Aktivität des Serial-Ports
4.8 Rang basierend auf 345+ Nutzer, Bewertungen(345)
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 (d.h. auf Anforderungen korrekt reagiert), sondern auch die Zwischenzeit bis zum Ausfall gemessen werden muss.

Die Modbus-Tester-Anwendung 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 solche die diese Geräte entwickeln. Aufgrund der Besonderheiten der Aufgaben unterscheiden sich die Anforderungen an die Modbus Software geringfügig.

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

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

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

  • Belastungstest (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 über bestimmte RS-485-Schnittstelleneinstellungen verfügen (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, mit dem beliebige Anforderungen formuliert werden können zu verwenden, 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): Vista/7/8/10/11, Windows Server 2008/2012/2016/2019/2022, Windows auf ARM , 9.87MB Größe
Letztes Build 9.5.589 (der 16. Nov, 2023) Versionshinweise
Categorie: Communication Application