Modbus-Utility - Gadgets: RTU / TCP-Parser, serieller Port-Scanner und Befehlszeilen-Test - Tipps

kostenlosKostenloses technisches Material

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

Modbus-Utility - Gadgets: RTU / TCP-Parser, serieller Port-Scanner und Befehlszeilen-Test - Tipps

Das „Schweizerische Messer" im Modbus-Debugger

Im tä gli chen De bu gging von Mod bus - Ger ä ten muss man nicht jedes Mal ein Wir es har k - G rab pak et ö ff nen oder Python - S kri pte schre iben . Manch mal müssen Sie nur eine Funk tion schnell überprü fen - Dec odi eren Sie eine Reihe von He x ade zim al - N ach richten , durch su chen Sie den Register bereich eines un bek annten Ger ä ts oder testen Sie eine L ese - und Sch reib an forder ung in der Be feh ls ze ile . Dieser Text ist zus amm enge fasst .modbus.orgDie leicht esten und prakt isch sten Mod bus - W id gets sind emp f oh len .

Modbus RTU / TCP-Nachrichten Online-Parser

Wenn Sie eine Reihe von Modbus-Nachrichten vom Serien-Assistenten erhalten oder ein Modbus-Binärdaten ausdrucken, während Sie in Ihrem Code debuggen, müssen Sie schnell wissen, was diese Daten bedeuten. Der Online-Modbus - Nachrichtenparser ist die schnellste Lösung - keine Software ist erforderlich, und der Browser ist verfügbar, wenn man ihn öffnet.

Modbus RTU Parser

Empfohlene WerkzeugeCAS Modbus RTU Parser (mit Chipkin Automation Systems)

Besuch:store.chipkin.com/products/tools#modbus-rtu-parser

Es ist ein reines Web-Tool. Sie müssen einfach eine Reihe von hexadezialen Modbus RTU-Nachrichten einfügen:

01 03 00 00 00 0A C5 CD

Nach dem Klicken auf die Analyse wird das Tool automatisch angezeigt:

  • Slave-ID = 1
  • Funktionscode = 03 (Read Holding Registers)
  • Startadresse = 0
  • Anzahl der Anfragen = 10 Registers
  • CRC-Prüfung = 0xCDC5 (und überprüfen Sie, ob es richtig ist ✓)

Modbus TCP Parser

Besuch:store.chipkin.com/products/tools#modbus-tcp-parser

Ähnlich wie die RTU-Version, aber die Auflösung von MBAP-Headern: Transaktions-ID, Protokoll-ID, Länge und Unit-ID. Folgende TCP-Nachrichten können Sie einfügen:

00 01 00 00 00 06 01 03 00 00 00 0A

Analyseergebnis: Transaktions-ID = 1, Protokoll = Modbus, Slave = 1, Funktionscode = 03, Start-Adresse = 0, Anzahl = 10.

Modbus Gerät Adressraum-Scan - Tool

CAS Modbus Scanner

Adresse herunterladen:store.chipkin.com/products/tools/cas-modbus-scanner

Wenn Sie ein Modbus-Gerät ohne ein vollständiges Register-Zuordnung - Handbuch erhalten, ist der einfachste Weg, das Gerät zu scannen - indem Sie den Adressraum des Geräts mit dem Modbus Scanner durchqueren und aufzeichnen, welche Adressen gültige Daten zurückgeben.

Methode der Verwendung:

  1. TCP-Eingabe IP: Port, RTU-Anschluss auswählen)
  2. Wählen Sie den Adressbereich zu scannen (empfohlen, kleiner Bereich 0 - 100 Proben)
  3. Wählen Sie den Datentyp zu scannen: Spule, diskreter Eingang, Halten-Register, Eingang-Register
  4. Klicken Sie auf Start Scan, Beobachtungen
  5. Aufzeichnen Sie die Adresse, die gültige Daten zurückgibt
  6. Validieren Sie in Verbindung mit dem physikalischen Gerät (Ändern Sie die physikalische Menge, beobachten Sie die entsprechende Registeränderung)

Scan-Techniken:

  • Scannen Sie zuerst das Hold-Register (4xxxx), da die meisten Konfigurations - und Messdaten für das Gerät hier sind
  • Wenn eine Adresse den Ausnahmecode 02 (illegale Datenadresse) zurückgibt, ist die Adresse ungültig
  • Wenn eine 0 zurückgibt, aber keine Ausnahme, Es muss entschieden werden, ob der Wert = 0 wahr ist oder ob das Gerät die Adresse nicht implementiert hat.(nur durch Scan nicht unterscheidbar)
  • Ändern der physischen Anreiz Nach dem Aufwärmen, Drehen des Encoders, überprüfen Sie, welche Adresswerte sich ändern

Befehlszeilenprotokoll-Test: modbus-cli - Technik

Neben speziellen Tools können viele allgemeine Befehlszeilen-Tools auch für Modbus-Tests verwendet werden:

TCP-Konnektivität mit Netcat testen

# 测试 Modbus TCP 设备是否在线
nc -zv 192.168.1.100 502

# 如果输出 "Connection to 192.168.1.100 502 port [tcp/*] succeeded!" 说明在线

Tests mit Python-Befehlen

# 安装 pymodbus 后,一行测试读取保持寄存器
python3 -c "
from pymodbus.client import ModbusTcpClient
c = ModbusTcpClient('192.168.1.100')
c.connect()
rr = c.read_holding_registers(0, 5, slave=1)
print('Values:', rr.registers if not rr.isError() else rr)
c.close()
"

Analysieren von binären Modbus-Daten mit xxd

# 如果你有一段 Modbus 二进制数据文件,可以用 xxd 查看
xxd modbus_dump.bin

# 或者用 hexdump 格式化显示
hexdump -C modbus_dump.bin | head -20

Modbus-Protokoll - Funktionen Schnellverweis

Debugging muss häufig Funktionscode-Korrespondenz - Tabelle überprüfen, die folgenden häufig verwendeten Funktionscode-Schnellverweis:

FunktionscodeNameDatentypOperation
01 (0x01)Read CoilsSpule (0xxxx)Lesen 1 - Bit
02 (0x02)Read Discrete InputsDiskreten Eingang (1xxxx)Lesen 1 - Bit
03 (0x03)Read Holding RegistersHaltungsregister (4xxxx)Lesen Sie 16 - Bit
04 (0x04)Read Input RegistersEingangsregister (3xxxx)16 - Bit-Lesen
05 (0x05)Write Single CoilSpuleSchreiben 1 - Bit
06 (0x06)Write Single RegisterAufbewahrungsregister16 - Bit-Schreiben
15 (0x0F)Write Multiple CoilsSpulenMehr 1 - Bit-Schreiben
16 (0x10)Write Multiple RegistersAufbewahrungsregisterMehr 16 - Bit-Schreiben
23 (0x17)Read/Write Multiple RegistersAufbewahrungsregisterLese - und Schreibkombinationen

Modbus-Ausnahmecode - Schnellsuche

AusnahmecodeBedeutungHäufige Ursachen
01Illegale FunktionscodeDas Gerät unterstützt diesen Funktionscode nicht
02Ungültige DatenadresseDer angeforderte Adressbereich übersteigt den verfügbaren Bereich des Geräts
03Ungültige DatenwerteDer geschriebene Wert übersteigt den zulässigen Bereich
04Ausfall von Station-GerätenInterner Fehler im Gerät, die Anforderung kann nicht verarbeitet werden
05Bestätigung (ACK)Anforderung akzeptiert, aber die Verarbeitung dauert länger
06Slave-Station - Gerät beschäftigtGerät beschäftigt, später erneut versuchen

Zusammenfassung

Modbus-Debugging erfordert nicht jedes Mal ein schweres Tool. Der Online-Parser ist für die schnelle Decodierung von Nachrichten geeignet, der Scanner für die umgekehrte Registermapping von unbekannten Geräten und die Befehlszeilen-Tools für automatisierte Tests. Die Beherrschung dieser „Gadgets" verdoppelt die Effizienz Ihres Modbus-Debugging - mit dem leichtesten Werkzeug, wenn Sie Probleme finden, und verwenden Sie schwere Werkzeuge wie Wireshark nur, wenn Sie eine tiefe Analyse benötigen.

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.