前言
之前调试Modbus很多都是在Windows上调试的,但现在有一些场景,我们需要远程通过vpn连接到现场,然后再测试现场的modbus设备是否通讯正常。在这种场景下,windows的工具就不太适用了,我们虽然能通过vpn使用ssh方式远程连接到现场主机,但我们却无法连接到现场的modbus设备,因为modbus设备并没有配置vpn地址,我们只能用他们内网地址访问modbus设备,这个时候就需要用到Linux下的命令行Modbus调试工具了。
安装mbpoll(Ubuntu)
sudo apt install update
sudo apt install mbpoll
使用mbpoll
-
常用参数
常用参数: -p 端口号 -t 功能码 -B 默认 -0 默认 -a slave主机 -r 地址 -c 地址长度 -v 查看报文 其他参数:mbpoll -h 查看
-
-t 参数详解
-t 0 Discrete output (coil) data type (binary 0 or 1) -t 1 Discrete input data type (binary 0 or 1) -t 3 16-bit input register data type -t 3:hex 16-bit input register data type with hex display -t 3:int 32-bit integer data type in input register table -t 3:float 32-bit float data type in input register table -t 4 16-bit output (holding) register data type (default) -t 4:hex 16-bit output (holding) register data type with hex display -t 4:int 32-bit integer data type in output (holding) register table -t 4:float 32-bit float data type in output (holding) register table
-
读取线圈寄存器
-
读取ip地址为10.10.111.54,端口号为10502,从机号1,起始地址为0x1001,地址长度为10的线圈寄存器的数据,并且查看报文
mbpoll 10.10.111.54 -p 10502 -B -0 -a 1 -t 0 -r 0x1001 -c 10 -v
-
-
读取离散输入寄存器
-
读取ip地址为10.10.111.54,端口号为10502,从机号1,起始地址为0x0001,地址长度为10的离散输入寄存器的数据,并且查看报文
mbpoll 10.10.111.54 -p 10502 -B -0 -a 1 -t 1 -r 0x1001 -c 10 -v
-
-
读取保持寄存器(功能码0x03,可读可写)
-
读取ip地址为10.10.111.54,端口号为10502,从机号1,起始地址为0x009C,地址长度为10的保持寄存器的数据,并且查看报文
mbpoll 10.10.111.54 -p 10502 -B -0 -a 1 -t 4 -r 0x009C -c 10 -v
-
-
读取输入寄存器(功能码0x04)
-
读取ip地址为10.10.111.54,端口号为10502,从机号1,起始地址为0x1001,地址长度为10的输入寄存器的数据,并且查看报文
mbpoll 10.10.111.54 -p 10502 -B -0 -a 1 -t 3 -r 0x1001 -c 10 -v
-