- 1. Modbus Tests中的”瑞士军刀”
- 2. Modbus RTU/TCP MeldungOnline-Analyse器
- 3. 在线 Modbus RTU Parser
- 4. 在线 Modbus TCP Parser
- 5. Modbus Geräte Adresse空间扫描Werkzeuge
- 6. CAS Modbus Scanner
- 7. Befehl行Vereinbarung测试:modbus-cli 技巧
- 8. 用 Netcat 测试 TCP 连通性
- 9. 用 Python 一行Befehl测试
- 10. 用 xxd Unterteilung析Binärsystem Modbus Daten
- 11. Das Modbus-Protokoll函数快速参考
- 12. Modbus Ungewöhnlicher Code速查
- 13. 总结
Modbus Tests中的”瑞士军刀”
在日常的 Modbus AusrüstungTests中,并非每次都需要Öffnen. Wireshark 抓包或者写 Python Drehbuch。有时候你只需要快速验证一个Funktion——解码一串16. SystemMeldung、扫描一个UnbekanntAusrüstung的Register.范围、或者在Befehl行里测试一个读写Bitte。本文汇总了 modbus.org 推荐的那些最轻Quantität、最实用的 Modbus 小Werkzeuge。
Modbus RTU/TCP MeldungOnline-Analyse器
当你从Die SerieAssistenten.收zu一串 Modbus Meldung,或者在代码里Tests时打印了一段 Modbus BinärsystemDaten,你需要快速知道这段DatenWas ist das?意思。在线 Modbus Nachrichten analysieren器是最快的解决方案——不需要安装任何软件,浏览器Öffnen.Benutzt werden kann.。
在线 Modbus RTU Parser
Empfohlene Werkzeuge:CAS Modbus RTU Parser(Chipkin Automation Systems 提供)
访问:store.chipkin.com/products/tools#modbus-rtu-parser
这是一个纯网页Werkzeuge。你只需粘贴一串16. System Modbus RTU Meldung:
01 03 00 00 00 0A C5 CD
KlickenAnalyse后,Werkzeuge会自动展示:
- von der Station Adresse(Slave ID)= 1
- Funktionscode = 03(Read Holding Registers)
- Ausgang Adresse = 0
- BitteAnzahl = 10 ein Register.
- CRC-Prüfung = 0xCDC5(并验证是否Richtig. ✓)
在线 Modbus TCP Parser
访问:store.chipkin.com/products/tools#modbus-tcp-parser
与 RTU 版本类似,但增加了 MBAP 头的Analyse:Transaction ID、Protocol ID、Length 和 Unit ID。粘贴如下 TCP Meldung即可:
00 01 00 00 00 06 01 03 00 00 00 0A
Analyseergebnisse:事务 ID=1,Vereinbarung=Modbus,Von der Station=1,Funktionscode=03,Ausgang Adresse=0,Anzahl=10。
Modbus Geräte Adresse空间扫描Werkzeuge
CAS Modbus Scanner
DownloadAdresse:store.chipkin.com/products/tools/cas-modbus-scanner
当你拿zu一个没有vollständigRegisterabbildung手册的 Modbus Ausrüstung时,最直接的方法就是”扫描”——用 Modbus Scanner 遍历Ausrüstung的Adresse空间,记录下哪些Adresse返回了WirksamDaten。
使用方法:
- 设置Verbindung方式(TCP 输入 IP:Port,RTU Auswahl der Serien)
- Auswahl要扫描的Adresse范围(建议先小范围 0-100 试探)
- Auswahl要扫描的Datentyp:线圈、离散输入、保持Register.、输入Register.
- Klicken Start Scan,观察Ergebnis
- 对返回WirksamDaten的Adresse做好记录
- 结合Ausrüstung实物(改变物理Quantität、观察对应Register.变化)进行验证
扫描技巧:
- 先扫描保持Register.(4xxxx),因为大多数Ausrüstung的配置和测QuantitätDaten都在这里
- 如果某个Adresse返回Ungewöhnlicher Code 02(Illegale Datenadressen),说明该AdresseUnwirksam
- 如果返回 0 但无异常,需要判断是真的值=0 还是Ausrüstung对该Adresse没有实现(仅靠扫描无法区Unterteilung)
- 改变物理激励(如升温、旋转Codierung器)后复扫,观察哪些Adresse值发生变化
Befehl行Vereinbarung测试:modbus-cli 技巧
除了专用Werkzeuge外,很多通用的Befehl行Werkzeuge也可以用于 Modbus 测试:
用 Netcat 测试 TCP 连通性
# 测试 Modbus TCP Ausrüstung是否在线
nc -zv 192.168.1.100 502
# 如果输出 "Connection to 192.168.1.100 502 port [tcp/*] succeeded!" 说明在线
用 Python 一行Befehl测试
# 安装 pymodbus 后,一行测试Lesen und halten Register
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()
"
用 xxd Unterteilung析Binärsystem Modbus Daten
# 如果你有一段 Modbus BinärsystemDaten文件,可以用 xxd Überprüfen
xxd modbus_dump.bin
# 或者用 hexdump Das Format化显示
hexdump -C modbus_dump.bin | head -20
Das Modbus-Protokoll函数快速参考
Tests时经常需要查Funktionscode对应表,以下是常用Funktionscode速查:
| Funktionscode | Name | Datentyp | Operationen |
|---|---|---|---|
| 01 (0x01) | Read Coils | 线圈(0xxxx) | 读 1-bit |
| 02 (0x02) | Read Discrete Inputs | 离散输入(1xxxx) | 读 1-bit |
| 03 (0x03) | Read Holding Registers | 保持Register.(4xxxx) | 读 16-bit |
| 04 (0x04) | Read Input Registers | 输入Register.(3xxxx) | 读 16-bit |
| 05 (0x05) | Write Single Coil | 线圈 | 写 1-bit |
| 06 (0x06) | Write Single Register | 保持Register. | 写 16-bit |
| 15 (0x0F) | Write Multiple Coils | 线圈 | 写多 1-bit |
| 16 (0x10) | Write Multiple Registers | 保持Register. | 写多 16-bit |
| 23 (0x17) | Read/Write Multiple Registers | 保持Register. | 读写组合 |
Modbus Ungewöhnlicher Code速查
| Ungewöhnlicher Code | 含义 | Häufig原因 |
|---|---|---|
| 01 | Illegale Funktionen码 | Ausrüstung不支持该Funktionscode |
| 02 | Illegale Datenadressen | Bitte的Adresse范围超出Ausrüstung可用范围 |
| 03 | Illegale Datenwerte | 写入的值超出允许范围 |
| 04 | Ausfall aus der Station | Ausrüstung内部Fehler.,无法处理Bitte |
| 05 | Bestätigen(ACK) | Bitte已接受但需要较长Zeit处理 |
| 06 | Ausstattung von Station beschäftigt | Ausrüstung正忙,稍后重试 |
总结
Modbus Tests不需要每次都用重型Werkzeuge。Online-Analyse器适合快速解码Meldung、扫描器适合逆向UnbekanntAusrüstung的Registerabbildung、Befehl行Werkzeuge适合自动化测试。掌握这些”小Werkzeuge”能让你的 Modbus Tests效率翻倍——遇zu问题先用最轻Quantität的Werkzeuge定位,只有当需要深入Unterteilung析时才动用 Wireshark 等重型Werkzeuge。
Antwort veröffentlichen