Quelle: Modbus Chinesisches Netzwerk (modbus.cn) - führende Modbus Kommunikationsprotokoll Technologie-Community in China
Dieser Artikel: Serial Debugging Assistant Software ATK-XCOM V3.0: Ein vollständiger Leitfaden für die Übertragung des Modbus-Protokolls von Grundlagen · Autor: Modbus-Technik - Team · Veröffentlicht am 2026 - 07 - 01
ATK-XCOM V3.0 wurde von Positive Point Atom (ALIENTEK) entwickelt und ist eines der am häufigsten verwendeten seriellen Debugging-Tools in der heimischen Embedded-Entwicklungszene. Dieser Artikel behandelt nicht nur seine Kernfunktionen, sondern erläutert auch seinen Protokollübertragungsmodus - automatische Übertragung durch Timeout, Checksum / Exclusive OR / CRC8 / CRC16 vier Arten von Checksum, getrennte Anzeige von Datenrahmen und tatsächlichen Daten - diese Funktionen machen ATK-XCOM im Modbus-RTU - Debugging-Szenario eine Größenordnung höher als der normale serielle Port-Assistenten. Enthält einen vollständigen Modbus-Debugging - Handbuch und Vergleich vergleichbarer Tools. Stichworte: ATK-XCOM, Positive Point Atom, Serial Debugging Assistant, Protokollübertragung, Modbus RTU Debugging, CRC16, Checksumme.
Das Debuggen des seriellen Anschlusses ist einfach und einfach - finden Sie einen seriellen Anschluss-Assistent, wählen Sie den richtigen COM-Port und die Baudrate, senden Sie einen Hexadezimal-Frame, und sehen Sie, was zurückkommt. Es ist schwer zu sagen - wenn Ihr Frame ausgeschickt wird, kommt das Gerät zurück, aber Sie wissen nicht, ob die zurückgegebenen Daten richtig sind, nicht, ob der Frame verloren geht oder nicht, nicht, ob die beiden Bytes in der Mitte der richtige Checkcode sind.
ATK-XCOM V3.0 ist ein Debugging-Tool für serielle Ports, das vom Positive Point Atom Team entwickelt wurde. Der Einfluss von Positive Point-Atoms in den inländischen eingebetteten Kreisen muss nicht mehr erwähnt werden - STM32 - Entwicklungsplatte, ESP32 - Modul, RT-Thread - Tutorials, im Grunde lernte eingebettete Menschen haben ihre Sachen verwendet. ATK-XCOM ist eine externe Version ihres internen Debugging-Tools, mit Funktionen, die aus realen Entwicklungszenarien und nicht aus dem Nichts entworfen wurden.
1. Wie die Software installiert wird
Entwickler: Positive Point Atom (ALIENTEK), ein professioneller inländischer Anbieter von Embedded-Entwicklungslösungen. Langjähriger Schwerpunkt auf der Bereitstellung von Entwicklungsboards, Modulen und unterstützenden Werkzeugen für Ingenieure, Studenten und Enthusiasten.
Systemanforderungen: Windows 7 und höher, 32 / 64 - Bit unterstützt. Die Messung läuft stabil unter Windows 10 und Windows 11, CH340, CP2102, FT232 und andere gängige USB-zu - serielle-Anschluss - Chips sind normal erkannt.
II. Grundfunktionen schnell
2.1 Serielle Ports Einstellungen
Nach dem Öffnen der Software werden automatisch alle verfügbaren Seriellen Ports durchsucht, und in der Dropdown-Liste der Seriellen Ports können Sie den entsprechenden Seriellen Portnamen und die Details (z. B.COM3: USB-SERIAL CH340)。Der übliche CH340 - Chip unterstützt Hot-Swap - - USB-Stick nach dem Anstecken auf Aktualisieren kann erscheinen, nach dem Trennen automatisch verschwinden. Einige ältere Treiber müssen möglicherweise manuell schließen und anschließend anschließen.
Baud-Rate - Bereich: 1200 bis 1382400 bps, um alle Standardraten abzudecken. Wenn Sie eine nicht-Standard - Baudrate (z. B. 750000, 921600) benötigen, klicken Sie auf die Schaltfläche "Anpassbar" im geschlossenen Zustand des seriellen Anschlusses, um den Wert direkt einzugeben. Voraussetzung ist, dass Ihr USB-to - serial-Chip und die UART des gegenseitigen Geräts diese Rate unterstützen können - die USART von STM32 unterstützt den Bereich der nicht-Standard - Baud-Rate bei 72 MHz-Takt, der sehr eng ist, nicht eine beliebige Zahl eingeben kann stabil.
Stopp-Positionen: 1, 1,5 und 2. Datenbits: 5, 6, 7, 8 vier Bits. Prüfen: keine Prüfung, ungerade Prüfung, gerade Prüfung. Modbus RTU-Standard: 8 Datenbits, 1 Stop-Bit, Paritätsprüfung oder keine Überprüfung.
2.2 Zeigen und senden
Der Empfangsbereich unterstützt zwei Anzeigemodi: Hexadezimal und ASCII, die in Echtzeit gewechselt werden können. Zwei Farbschema: das klassische „grüne Schrift auf schwarzem Boden" (ähnlich dem Terminal-Stil, ohne einen langen Blick auf den Bildschirm zu blenden) und „schwarze Schrift auf weißem Boden" (ähnlich dem Dokument-Stil, Screenshots verfügbar). Wenn Sie "Zeitstempel" aktivieren, können Sie jeder empfangenen Daten eine genaue Zeit hinzufügen. Achte auf die Zeit,rnist die Frame-Grenze - Wenn Sie0D 0Ain der Mitte des Modbus-Frame empfangen, wird ein Zeitstempel fälschlicherweise in den Frame eingefügt. Daher wird die Modbus-Zeitstempelfunktion im ASCII-Modus empfohlen, im Hex-Modus wird sie deaktiviert.
Der Sendebereich unterstützt ASCII und Hexadezimal Eingabeformate. Wählen Sie „Neue Zeile senden" automatisch hinzufügenrnam Ende des Sendeinhalts - AT-Befehlsmodul (z. B. ESP8266, 4G-Modul) muss aktiviert werden. Die TastenkombinationCtrl+Enterkann direkt gesendet werden.
„Zeitliche Senden" - Funktion: Sie können einen festen Zeitraum (Milliisekunden) festlegen, und die Software sendet den Inhalt des Sendenbereichs automatisch in Abständen zyklus. Geeignet für Alterungstests - zum Beispiel 24 Stunden kontinuierliche Lesen-Register - Befehle an Modbus-Slaven, um zu sehen, ob das Gerät Kommunikation unterbrochen.
"Datei Senden" - Funktion: kann Dateien beliebiger Formate (z. B. bin-Firmware,. hex-Upgrade - Pakete) per Byte-Stream über den seriellen Anschluss mit Fortschrittsleiste und Pause / Fortsetzung-Steuerung senden. IAP (In-Application Programming) wird direkt verwendet, wenn Sie die Firmware aktualisieren, ohne dass Sie ein separates Upgrade-Tool schreiben müssen.
2.3 mehrere Sendungen und Befehle verwalten
Vier unabhängige Sendenseiten mit jeweils 10 bearbeitbaren Sendenbefehlen (das entspricht bis zu 40 vordefinierten Befehlen). Das Sendenformat (Hex / ASCII), ob eine neue Zeile hinzugefügt wird, und die Sendenzyklen jeder Befehl können individuell konfiguriert werden. Die numerischen Tastaturen 0 bis 9 können an die Befehle 1 bis 10 der aktuellen Seite gebunden werden - geeignet für Szenarien, in denen eine schnelle Reaktionssteuerung erforderlich ist, wie z. B. eine intelligente Fahrzeugsteuerung (Druck der numerischen Tasten 1 vorwärts, 2 zurück, 3 links abbiegen).
Befehlssatze unterstützen den Export in das Excel-Format und den Import aus Excel. Bei der Übergabe des Projekts exportieren Sie alle Ihre Testbefehle direkt in eine Datei und senden Sie sie an einen Kollegen, der nach dem Import genau den gleichen Befehl verwenden kann.
III. Protokollübertragungsmodus - ATK-XCOMs Killer
Dies ist der wesentliche Unterschied zwischen ATK-XCOM und dem normalen seriellen Assistenten. Die meisten Serien-Assistenten sind nur "Senden Sie die Bytes und zeigen Sie es, wenn Sie antworten". Das Protokollübertragungsmodell von ATK-XCOM leistet drei Dinge: Automatische Überprüfung, automatische Übertragung durch Timeout und getrennte Darstellung von Daten und Frames.
3.1 Prinzip der Arbeit
Der grundlegende Prozess der Protokollübertragung: Sie füllen die tatsächlichen Daten (Payload) im Sendenbereich, ATK-XCOM fügt automatisch einen Frame-Header und einen Check-Code vor und nach den Daten hinzu, um den vollständigen Protokollrahmen zu zusammensetzen und über den seriellen Anschluss zu senden. Nachdem die Empfängerseite den Rahmen empfangen hat, berechnet sie den Prüfcode und gibt den Bestätigungsrahmen (ACK) zurück, wenn die Überprüfung erfolgreich ist, und der Sender erhält die ACK, um die Übertragung erfolgreich zu zeigen. Wenn die ACK innerhalb der festgelegten Zeit nicht empfangen wird, wird automatisch erneut gesendet, maximal die Anzahl der Malen, die die Konfiguration erneut versucht hat.
Die Modbus-RTU verfügt nicht über einen vollständigen Send-Ack - Mechanismus (Modbus selbst verfügt über ein eigenes Master-Slave - Fragestellungsprotokoll), unterstützt aber vier Prüfealgorithmen und die separaten Funktionen „Rohframe anzeigen" und „Eigentaten anzeigen" - beide sind für das Modbus-Debuggen zu praktisch.
3.2 Vier Prüfmethoden
| Prüfmethode | Länge | Algorithmus Kurzbeschreibung | Anwendbares Szenario |
|---|---|---|---|
| Prüfsumme (Checksum) | 1 Byte | Alle Daten-Bytes summieren sich, 8 Bits unternehmen | Einfaches Protokoll, benutzerdefinierte Frames |
| Exclusive OR (XOR) | 1 Byte | Alle Datenbyte kontinuierlich Exclusive OR | NMEA0183 (GPS), Teilsensor |
| CRC8 | 1 Byte | 8 - Bit zyklische Redundanz, Polynomialverfügbar mit | Dallas 1 - Wire, SMBus |
| CRC16 | 2 Byte | 16 - Bit zyklische Redundanzprüfung, Tabellenverfolgung | * * Modbus RTU** (Polynomial 0xA001) |
Wenn Sie "CRC16" in den Protokollübertragungseinstellungen auswählen, ATK-XCOM berechnet automatisch nach Modbus Standard Polynomial (0xA001), das Ergebnis ist niedriges Byte vor, hohes Byte nach hinten (kleine Reihenfolge), vollständig im Einklang mit der Modbus RTU CRC-Sortierung Regeln. Sie müssen nur die nackten Frames außer CRC eingeben, und die Software fügt Ihnen zwei Byte CRC hinzu.
3.3 Anzeige des ursprünglichen Frames vs. Anzeige der tatsächlichen Daten
Der Empfangsbereich kann in zwei Modi wechseln:
- Anzeige des ursprünglichen Frames: Der vollständige empfangene Byte-Stream, einschließlich Frame-Header, Adresse, Funktionscode, Daten, Prüfcode, wird angezeigt. Verwendet für die Untersuchung von Frame-Struktur - Problemen - zum Beispiel, dass die Anzahl der empfangenen Bytes zu gering ist, oder dass die Zeitintervalle zu kurz abgeschnitten wurden.
- Zeigt die tatsächlichen Daten an: Nur die validierte nützliche Datenlast wird angezeigt, alle Frame-Header und Checkcodes werden entfernt. Um den Inhalt der Daten schnell anzusehen - es ist nicht notwendig, in Hexadezimal zu suchen, wo die Daten beginnen und die Prüfungen enden.
Modbus-Debugging - Wechsel zwischen diesen beiden Modi ist wie folgt: Zuerst mit "Original-Frame anzeigen" bestätigen Sie, dass die Frame-Struktur korrekt ist und der Check-Code pass. Nach der Bestätigung des Fehlers wechseln Sie auf "Auszeigen der tatsächlichen Daten" und konzentrieren Sie sich nur auf die Änderung des Registerwerts.
3.4 Konfiguration des automatischen Re-Sendings und Timeout
Der Wiederversuchmechanismus nach einem fehlgeschlagenen Senden kann mit drei Parametern konfiguriert werden:
- Timeout (ms): Maximale Wartezeit für die ACK. Für Modbus-Sklaven ist ein typischer Wert von 100 bis 500 ms ausreichend, abhängig von der Reaktionsgeschwindigkeit des Slaven-Geräts. Einige Geräte mit niedriger Geschwindigkeit (alte 51 - Chip-Machine laufen auf 4800 - Baud-Rate) müssen möglicherweise auf 800ms oder höher eingestellt werden.
- Anzahl der Wiederveröffentlichungen: Die maximale Anzahl der automatischen Wiederveröffentlichungen nach dem Timeout. 0 bedeutet keine Wiederholung. Normalerweise 3 - 5 mal.
- Re-Send - Intervall (ms)Abstand zwischen zwei Wiederholungen. Dieser Wert benötigt > Timeout, sonst wird die Logik verwirrt. Für Modbus-RTU - Szenarien muss das Framelabstand ≥ 3,5 Zeichenzeit (3,5 × 11 / Baudrate) betragen, z. B. 9600 bps entspricht etwa 4 ms.
Diese Parameter werden auf einem GUI-Panel platziert, was viel intuitiver ist als das Schreiben von Code mit einem seriellen Timeout. Der Schlüssel ist, dass man visuell sehen kann, dass "der richtige ACK beim dritten Wiederholen empfangen wurde" - wenn es bis zum dritten Mal erfolgreich ist, ist die Kommunikationsverbindung instabil, um Kabel oder Störungen zu überprüfen.
4. Debuggen des gesamten Modbus RTUs mit ATK-XCOM
Schritt 1: Konfiguration der seriellen Portparameter
Öffnen Sie ATK-XCOM V3.0, wählen Sie den entsprechenden COM-Port aus. Die Baud-Rate ist 9600 (oder die tatsächliche Baud-Rate des Geräts), die Daten-Bit 8, Stop-Bit 1, die Verifizierung-Bit ist nicht ausgewählt oder die Parität - je nach Konfiguration Ihres Geräts.
Tippen Sie auf „Öffnen Sie die Schnittstelle". Wenn die Leitung korrekt ist und das Gerät eingeschaltet ist, zeigt die Statusleiste an, dass der serielle Anschluss geöffnet ist und die Anzahl der Senden und Empfänger-Bytes beginnt mit 0.
Schritt 2: Erstellen eines Modbus-Abfrage - Frameworks
Wenn Sie das Hold-Register 40001 (Adresse 0x0000) von der Station 01 lesen, lesen Sie 1 Register. Nackte Frames (ohne CRC) sind:
01 03 00 00 00 01Wählen Sie "Hexadezimal Senden" und geben Sie010300000001in den Bereich Senden ein. Wenn Sie die CRC16 - Überprüfung in den Einstellungen "Protokollübertragung" aktivieren, berechnet ATK-XCOM automatisch die CRC und fügt zwei Bytes am Ende des Frames hinzu (für diesen Frame ist die CRC 0x840A, der gesendete vollständige Frame ist01 03 00 00 00 01 84 0A). Punkte senden.
Schritt 3: Analyse des zurückgegebenen Frames
Wenn das Gerät normal reagiert, zeigt der ATK-XCOM - Empfangsbereich die zurückgegebenen hexadezialen Daten an. Das Standard-Respondenzframe - Format ist:
01 03 02 XX YY CRCL CRCHVon denen02ist die Anzahl der Bytes im Datenbereich angegeben (das Lesen eines Registers ist 2 Bytes), undXX YYist der Registerwert (das hohe Bytes vor).
Wenn der Funktionscode zurückgegeben wird:
01 83 02 CRCL CRCHwird 0x83 - das ist der höchste Bit des ursprünglichen Funktionscodes 0x03, der auf 1 gesetzt wird, plus der Ausnahmecode 0x02. Der Modbus-Ausnahmecode 0x02 bedeutet "illegal data address" - die angeforderte Registeradresse existiert auf diesem Slave-Stand nicht.
Schritt 4: Verwalten von mehreren Sendungen Häufige Modbus-Befehle
Erstellen Sie vier Seiten im Bereich "Multiple Send":
Seite 1 - - Lesen von Klassenbefehlen
条目1: 010300000001 → 读从站01寄存器40001(1个)
条目2: 010300000004 → 读从站01寄存器40001~40004(4个)
条目3: 0103000A0001 → 读从站01寄存器40011(1个)
条目4: 010100000008 → 读从站01线圈00001~00008(8个)Jeder Eintrag ist unabhängig von "Hexadezimal Senden" und CRC16 - Überprüfung aktiviert.
Seite 2 - Schreiben von Klassenbefehlen
条目1: 010600000001 → 写从站01寄存器40001=1
条目2: 010600000000 → 写从站01寄存器40001=0
条目3: 011000000001020001 → 写从站01多个寄存器,起始0000,2字节,值=0001Seite 3 - - Broadcast & Diagnostics
条目1: 000800000001 → 广播诊断(子功能码0001,重启通信)
条目2: 00110000 → 广播获取从站事件计数器Seite 4 - - Backup exportieren
Alles ist fertig, das Menü → Export senden Eintrag → Speichern als Excel-Datei. Später wechseln Sie den Computer direkt mit dieser Datei importiert, alle Befehle in einer Sekunde wiederhergestellt.
V. Positionierung von ATK-XCOM im Vergleich zu anderen seriellen Port-Tools
| Vergleich Dimensionen | ATK-XCOM V3.0 | LLCOM | SSCOM | COMTool |
|---|---|---|---|---|
| Entwickler | Positive Point Atom (inländisch) | chenxuuu Persönliche Open Source | Persönliche | Persönliche Open Source |
| Kostenlos | 是 | 是 | 是 | 是 |
| Skripting | Nicht unterstützt | Lua 5.3 Script Engine | Nicht unterstützt | Eingeschränkte Unterstützung |
| Protokollübertragung | Unterstützt (Framehead / Verify / ACK / Timeout-Reset) | Nicht unterstützt (Lua selbst schreiben) | Nicht unterstützt | Nicht unterstützt |
| CRC / Überprüfung | Integriert 4 Arten (Checksum / XOR / CRC8/CRC16) | Erstellen Sie selbst Lua | Nicht unterstützt | Nicht unterstützt |
| Mehrfachsenden | 4 Seiten × 10 + Verknüpfungskasteln | 10 Seiten Unbegrenzt | Nicht unterstützt | Unterstützt |
| Obergrenze der Baudrate | 1382400 | Gesteuerte Einschränkungen | Gesteuerte Einschränkungen | Gesteuerte Einschränkungen |
| GUI-Stil | Klassisch grüner Hintergrund schwarz | Moderne Weiß | Altmodus Windows | Moderne |
| Download-Methode | Baidu Disk + offizielle | GitHub + MS Store | Jeder Download-Standort | GitHub |
Drei Szenarien für die Auswahl von Werkzeugen:
- tägliches Debuggen der Modbus RTU, einfach Daten senden und ansehen→ ATK-XCOM. Protokollübertragungsmodus eingebaut CRC, mehrere Senden bequem zu verwalten, keine Skript schreiben müssen.
- Benötigt automatisierte Batch-Tests, benutzerdefinierte Datenanalyse und TCP / MQTT-Bündelungund LLCOM. Es gibt keinen Ersatz für die Flexibilität von Lua-Skripten, aber es ist teuer zu lernen.
- Manchmal benutzt man nur ein paar Befehle.→ COMTool oder SSCOM. Leicht und benötigt keine Konfiguration
ATK-XCOM ist als „Toolbox für professionelle Serien-Debugging" und nicht als „programmierbares All-Werkzeug" positioniert. Seine Designphilosophie ist es, die am häufigsten von Embedded-Ingenieuren verwendeten Debugging-Prozesse zu festen Funktionen zu machen, sodass Sie es ausführen können, ohne Code schreiben zu müssen. LLCOM bietet Ihnen alle Programmierfähigkeiten, die Sie tun können, was Sie wollen - aber zum Preis, dass Sie Lua schreiben können.
Die Kombination von zwei Werkzeugen ist am sinnvollsten: ATK-XCOM übernimmt den täglichen Senden und Empfang und die Überprüfung, LLCOM übernimmt Aufgaben, die eine automatische Wiederholung erfordern.
VI. Häufig gestellte Fragen
CRC16 - Test-Ergebnisse und manuelle Berechnungen nicht übereinstimmen?Bestätigen Sie zwei Dinge: 1) Ist das Polynom richtig - Modbus RTU verwendet 0xA001 (nicht 0x8005, das ist das Forward-Polynom von IBM CRC - 16). 2)Ob die Initialisierung 0xFFFF ist? Der integrierte CRC16 von ATK-XCOM wurde streng nach dem Modbus-Protokoll implementiert, und die korrekten Ergebnisse können mit einem Online-CRC - Rechner überprüft werden.
Keine Antwort von der Station?1. Prüfen Sie, ob die Baudrate und die Prüfsätze übereinstimmen. 2)Die Adresse des Slaves ist korrekt (Beachten Sie, dass die Standardadresse 1 oder 247 sein kann, je nach Hersteller). 3)Ob das Gerät angeschaltet ist - dies ist am häufigsten auf der Szene vernachlässigt, viele Menschen angeschlossen USB zu 485 für das Gerät zu haben Strom, das tatsächliche Gerät braucht eine unabhängige DC-Stromversorgung.
Zeitschein nicht angezeigt?Der Zeitstempel von ATK-XCOM wird mitrnals Abbruch-Frame - Flag verwendet. Wenn die empfangenen Daten reine Modbus-RTU - Binär-Frame sind, die keine0D 0ADie Zeitstempelfunktion wird nicht ausgelöst. Es wird empfohlen, den Zeitstempel im Hex-Empfangsmodus auszuschalten oder sicherzustellen, dass der gegenseitige Datenstrom tatsächlich Zeilenumschläge enthält.
Ist die Sendung auf halbem Weg?Überprüfen Sie, ob der Empfangspuffer des Ziergeräts ausreichend ist. Das Senden von Dateien ist ein kontinuierlicher Byte-Stream, wenn das Gerät nicht mit der Verarbeitungsgeschwindigkeit mithalten kann (z. B. jedes empfangene Byte muss Flash schreiben und warten auf die Fertigstellung), wird der Sender nicht automatisch verlangsamt. Die Lösung besteht darin, die Senden-Bortrate zu reduzieren oder die Dateien in kleine Stücke zu zerlegen und mit mehreren Senden-Zeitfunktionen in Fragmenten zu senden.
ATK-XCOM hat nichts coole neues Konzept, jede seiner Funktionen kommt von Embedded-Ingenieur in der Debugger-Site - Protokollübertragung ist, weil das Gerät reagiert, wenn es einen Fehler gibt und nicht wissen, wo der Fehler ist, mehrere Sendungen sind, weil mehr als ein Dutzend AT-Befehle hin und her zu foltern, benutzerdefinierte Baudrate ist, weil es immer einige nicht-Standard - Geräte gibt. Das ist der größte Unterschied zwischen Positive Point Atom als „Tool-Team, das aus dem Entwicklungsbrett wächst" und einem „Rein Software-Tool - Team" - letzteres ist entworfen, ersteres geschliffen.
Probleme noch mal reden.
Antwort veröffentlichen