Modbus-Lese - Schreib-Spule - Register-Kommunikations - Testprogramm auf Basis der libmodbus-Bibliothek

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

Modbus-Lese - Schreib-Spule - Register-Kommunikations - Testprogramm auf Basis der libmodbus-Bibliothek

In der modernen industriellen Kommunikation wird das Modbus-Protokoll aufgrund seiner Einfachheit und seiner umfangreichen Unterstützung in verschiedenen Automatisierungssystemen weit verbreitet. Dieses Protokoll unterstützt verschiedene Kommunikationsmethoden, wie z. B. serielle Kabine (RTU) und TCP / IP. Der folgende Artikel beschreibt ein Testprogramm für das Modbus-Protokoll mit der libmodbus-Bibliothek, das die Funktionalität der Bibliothek durch die Implementierung verschiedener Modbus-Funktionen überprüft.

Vollständiger Code:

Programmübersicht

Das Ziel dieses Testprogramms ist es, alle Hauptfunktionen zu überprüfen, die von der libmodbus-Bibliothek unterstützt werden, einschließlich Schreiben einer einzelnen Spule, Lesen von Spule-Status, Schreiben mehrerer Spule, Schreiben eines einzelnen Registers, Lesen von Registers, Schreiben mehrerer Registers und Lesen und Schreiben mehrerer Registers. Das Programm läuft in zwei Modi: TCP und RTU, die durch Befehlszeilenparameter ausgewählt werden.

Umgebungseinstellungen und Initialbedingungen Das Programm

initialisiert zunächst den Modbus-Kontext (ctx) basierend auf den Eingabeparametern (TCP oder RTU). Für den TCP-Modus verbindet er sich mit dem Port 1502 auf dem lokalen Host. Im RTU-Modus ist es so eingestellt, dass es über einen bestimmten seriellen Port (z. B./dev/ttyUSB0) mit einer 19200 - Baud-Rate kommuniziert.

Datenstrukturen und Initialisierung

Um den Test durchzuführen, zugewiesen und initialisiert das Programm zunächst mehrere Arrays, um die Bits und Registerwerte zu speichern, die im Test verwendet werden:

  • tab_rq_bits 和 tab_rp_bitsSpulen (Bit) Zustände für Anfragen und Antworten zu speichern.
  • tab_rq_registers、tab_rp_registers 和 tab_rw_rq_registersRegisterwerte, die zum Speichern von Anfragen und Antworten verwendet werden.

Test-Zyklus

Das Programm führt Schleife-Tests über den definierten Adressbereich durch, wobei die Adresse jedes Mal um eine Zugabe erhöht wird, bis der Bereich vonADDRESS_START 到 ADDRESS_ENDüberschrieben ist. An jeder Adresse führt das Programm folgende Aktion durch:

  1. Schreibe eine einzelne Spule: Verifiziert, dass das Schreiben und Lesen einer einzelnen Spule erfolgreich durchgeführt wurde.
  2. Schreiben mehrerer Spulen: Überprüfen Sie, ob das Schreiben und Lesen mehrerer Spulen erfolgreich ist.
  3. Schreiben eines einzelnen Registers: Überprüfen Sie, ob das Schreiben und Lesen eines einzelnen Registers erfolgreich ist.
  4. Schreiben mehrerer Registers: Überprüfen Sie, ob das Schreiben und Lesen mehrerer Registers erfolgreich ist.
  5. Lese - und Schreiben mehrerer Registers gleichzeitig: Überprüft, ob es gelungen ist, mehrere Register gleichzeitig in einem Vorgang zu lesen und zu schreiben.

Ausnahmebehandlung

Nach jeder Modbus-Operation überprüft das Programm die zurückgegebenen Ergebnisse, um zu bestätigen, dass die Operation erfolgreich ist. Wenn der Vorgang fehlschlägt, gibt das Programm eine Fehlermeldung aus und erhöht den Failure-Zähler. Die Tests werden fortgesetzt, bis alle geplanten Tests abgeschlossen sind.

Ergebnis-Ausgabe

Nach Abschluss des Tests gibt das Programm die Testergebnisse aus, die die Gesamtzahl der erfolgreichen oder fehlgeschlagenen Operationen anzeigen. Dies wird durch einen Vergleich der Anforderungsdaten mit den Antwortendaten ermittelt, um die Vollständigkeit und Genauigkeit der Daten sicherzustellen.

Reinigen und Schließen

Nach Abschluss des Tests freigegeben das Programm alle zugewiesenen Ressourcen, schließt die Modbus-Verbindung und beendet sich.

Mit einem solchen Testprogramm können Entwickler die Leistung und Zuverlässigkeit der Modbus-Bibliothek unter verschiedenen Einstellungen überprüfen und ihren stabilen Betrieb in der Praxis gewährleisten. Dies hilft nicht nur den Entwicklern, einen tiefen Einblick in die Implementierung des Modbus-Protokolls zu gewinnen, sondern bietet auch ein leistungsstarkes Werkzeug, um potenzielle Probleme zu identifizieren.

Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.