Effiziente Tools zum Testen und Debuggen von Modbus-basierten Geräten und Netzwerken


Modbus ist ein Kommunikationsprotokoll, das häufig in industriellen Automatisierungssystemen, Smart-Home-Systemen, automatisierten Netzwerken kleiner Objekte (Lagerhäuser, Gewächshäuser usw.) verwendet wird. Das Protokoll dient auch dazu, Geräte verschiedener Art an einen Heimcomputer anzuschließen. Die Entwicklung von Projekten wie Arduino und Raspberry Pi hat das Interesse an Robotik- und Automatisierungsaufgaben deutlich erhöht. All dies sorgt für die Popularität von Modbus unter 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 auf Basis des Modbus-Protokolls behandelt.

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

Inhalt


  1. Über Modbus-Protokoll
  2. Entwicklung und Test von Modbus-Geräten
  3. Debugging von Automatisierungssystemen auf Basis von Modbus-Geräten

Über Modbus-Protokoll


Modbus ist ein allgemeines Protokoll, das in Automatisierungssystemen in den mittleren und unteren (Feld-) Ebenen verwendet wird. Die mittlere Ebene ist die Ebene der Controller - Geräte, die Daten sammeln und den technologischen Prozess steuern. Die Feldebene ist die Ebene der Interaktion zwischen Sensoren und Controllern oder Sensoren und dem Server. Weitere Details zu den Ebenen in Automatisierungssystemen finden Sie hier.

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

Modbus-Protokoll

Die Standardumgebung für das Modbus-Protokoll ist RS-485/422/232. Modbus RTU oder Modbus ASCII arbeiten darüber. Im TCP / IP-Netzwerke, Das Protokoll der höheren Ebene ist 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 unter Verwendung einer Master-Slave-Beziehung implementiert. Das bedeutet, dass die Kommunikation immer von einem Gerät initiiert wird, 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. (Weitere Informationen zu Modbus - Geräten finden Sie auf der Offizielle Website von Modbus).

Der Master interagiert mit Slave-Geräten im Anfrage-Antwort-Format. Die Anforderung enthält eine Sequenz von Bytes, die als Rahmen bezeichnet werden, 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:

Eine Anfrage Nachricht

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:

Eine Antwortnachricht

Wie Sie sehen, sind die Antwort- und Anforderungsrahmen ähnlich aufgebaut, mit Ausnahme des Datenfelds, das abhängig von der ausgeführten Funktion unterschiedliche Inhalte bereitstellt.

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

Außerdem können bestimmte Slave-Geräte spezifische 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
Spulen Ausgänge
lesen Schreiben
1 Bit
verwendet, um diskret zu steuern
Eingangsregister
nur lesen
16 Bit
verwendet für die Eingabe
Holding-Register
lesen Schreiben
16 Bit
verwendet für eine Vielzahl von Dingen einschließlich Eingaben, Ausgaben, Konfigurationsdaten usw.

Die vollständige Beschreibung des Modbus RTU - Protokolls finden Sie in der funktionale Spezifikation.

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

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

Es gibt eine Lösung für dieses Dilemma. Virtual COM Port Driver PRO von Eltima ermöglicht die Erstellung von virtuellen RS485-Ports und die Aufteilung von Modbus-Daten, so dass mehrere Ports die Daten gleichzeitig empfangen können.

Sie können den Datenstrom, der in einen physischen Port eingeht, jetzt auf mehrere virtuelle Ports duplizieren. Wenn Sie mehrere Anwendungen mit virtuellen Kopien Ihres COM1-Anschlusses verbinden, können alle Apps einen gemeinsamen Zugriff auf Ihren physischen Port erhalten.

Entwicklung und Test von Modbus-Geräten


Bei der Entwicklung und dem Debugging von Modbus RTU-Geräten verwenden Experten spezielle Software- und Hardwaretools. Die einfachste Lösung für Hardware-Geräte ist der RS-485 / USB-Konverter. Von allen Geräten dieses Typs ist MOXA UPORT 1130 / UPORT 1150 wahrscheinlich die effizienteste Lösung. Das Gerät ist so konzipiert, dass es einfach zu bedienen ist und minimale Fähigkeiten erfordert, um zusammengebaut zu werden. Es gibt auch komplexere Lösungen wie Ethernet / RS-485 (zum Beispiel NPORT von MOXA).

n der Praxis wird bei der Entwicklung von Modbus RTU-Geräten die Slave-Funktion häufiger eingesetzt. Slave-Geräte umfassen verschiedene Sensoren, gesteuerte Relais, E / A-Module usw. Master-Geräte werden seltener erstellt. In Automatisierungsnetzen wird die Master-Funktion in der Regel entweder von einem Controller, der bereits einen Modbus-Stack implementiert hat, oder von einem OPC-Server / SCADA-System mit einem Modbus-Treiber ausgeführt.

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

Effiziente Software für Modbus-Tests


Das Testen kann auf verschiedenen Ebenen der Modbus-Geräteentwicklung durchgeführt werden. Das Modbus-Testsoftware die Hardwarelösungen unterscheiden sich je nach Entwicklungsstufe und Testzweck.

Eines der praktischsten Werkzeuge, die in den Anfangsphasen des Gerätetests verwendet werden, ist das Modbus-Terminal. Mit dieser Lösung können Sie manuell eine Anforderung erstellen, diese senden und die Antwort analysieren.

Während des Entwicklungsprozesses kann eine Situation auftreten, wenn ein Gerät eine Anfrage empfängt und darauf antwortet (dies kann entweder durch die Paketempfangs- / Übertragungs-LEDs angezeigt werden, wenn solche Elemente im Design bereitgestellt werden oder durch Verwendung eines Debuggers und einer Einstellung erkannt werden) ein Breakpoint), aber die Daten werden nicht im Terminal oder einem anderen spezialisierten Programm angezeigt. In diesem Fall benötigen Sie einen dedizierten seriellen Port-Sniffer.

Serial Port Monitor ist eine der besten Modbus-Überwachungssoftware, die heute verfügbar ist. Diese Modbus-Lösung kann problemlos alle seriellen Daten lesen und aufzeichnen, die über die COM-Anschlüsse des Systems laufen. 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 Monitorkann im Terminal-Modus arbeiten, der emuliert Daten von einem überwachten COM-Port auf ein Gerät übertragen wird. Diese Option ist besonders praktisch für den Modbus-Kommunikationstest, da sie die Reaktion eines bestimmten Geräts auf bestimmte Befehle und Daten überwacht.

Serial Port Monitor

Serial Port Monitor ist eine professionelle Software zum Testen und Debuggen von Modbus-basierten Geräten und Netzwerken
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 soll, ob ein Gerät funktioniert (dh, auf Anforderungen korrekt reagiert), sondern auch die mittlere Zeit bis zum Ausfall gemessen wird.

Modbus-Tester-Lösung ermöglicht die Protokollierung der eingehenden und ausgehenden Datenströme. Darüber hinaus können alle gesammelten Daten in verschiedenen Ansichten (Tabelle, Zeile, Dump, Terminal) angezeigt werden, was es einfach macht, sie zu vergleichen und zu analysieren.

Debugging von Automatisierungssystemen auf Basis von Modbus-Geräten


Es gibt viel 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 Modbus RTU-Software wird etwas anders sein.

Wenn Sie einen Controller an ein einzelnes Slave-Gerät anschließen möchten, können Sie eine serielle Kommunikation mit einem RS-485 / USB-Konverter, einem PC und einer speziellen Software oder einem Terminal herstellen. In diesem Fall müssen keine langen Tests durchgeführt werden, gefolgt von der Analyse zahlreicher Protokolldateien. Die Logik der Operation und der Werkzeugsatz unterscheiden sich nicht von denen, die in der Testphase der Entwicklung von Slave-Geräten verwendet werden.

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

  • prüfen der Funktionsfähigkeit aller Geräte im Netzwerk (d. h. Kommunikation mit jedem einzelnen Gerät und Verifizieren der Korrektheit seiner Antwort);
  • Belastungstest (Identifikation 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 Anfragen zu erstellen, oder ein spezielles Tool wie Modbus Poll, ein Modbus-Master-Simulator, mit dem mehrere Modbus-Slaves und / oder Datenbereiche gleichzeitig überwacht werden können.

Modbus-Kommunikationsherausforderungen


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 Werkzeug zum Testen und Konfigurieren solcher Geräte ist ein Terminal-Programm, das den schnellen Wechsel zwischen vorinstallierten Port-Parametern unterstützt oder mit mehreren Leitungen gleichzeitig arbeitet.

Eine weitere Herausforderung ist der Datenaustausch mit einem Gerät, das über ein Protokoll arbeitet, das sich von der Standardspezifikation von Modbus RTU unterscheidet. Zum Beispiel kann das Protokoll des Slaves logisch Modbus ähnlich sein (Paketstruktur, Timeouts usw.), aber einige Funktionen außerhalb des Standards verwenden.

In diesem Fall ist es sinnvoll, 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 nicht effizient für die Arbeit mit solchen Geräten und die Kommunikation mit dem Gerät wird über einen speziellen OPC-Server hergestellt.

/ / / Effiziente Tools zum Testen und Debuggen von Modbus-basierten Geräten und Netzwerken

Serial Port Monitor

Bedarf: Windows XP/2003/2008/Vista/7/8/10/Server 2012 , 9.16MB Größe
Version 7.0.342 (der 13. Jan, 2018) Versionshinweise
Categorie: CommunicationApplication