前言

之前调试Modbus很多都是在Windows上调试的,但现在有一些场景,我们需要远程通过vpn连接到现场,然后再测试现场的modbus设备是否通讯正常。在这种场景下,windows的工具就不太适用了,我们虽然能通过vpn使用ssh方式远程连接到现场主机,但我们却无法连接到现场的modbus设备,因为modbus设备并没有配置vpn地址,我们只能用他们内网地址访问modbus设备,这个时候就需要用到Linux下的命令行Modbus调试工具了。

安装mbpoll(Ubuntu)

sudo apt install update
sudo apt install mbpoll

使用mbpoll

  1. 常用参数

    常用参数:
    -p 端口号
    -t 功能码
    -B 默认
    -0 默认
    -a slave主机
    -r 地址
    -c 地址长度
    -v 查看报文
    其他参数:mbpoll -h 查看
    
  2. -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
    
  3. 读取线圈寄存器

    • 读取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 
      

      在这里插入图片描述

  4. 读取离散输入寄存器

    • 读取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 
      

      在这里插入图片描述

  5. 读取保持寄存器(功能码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 
      

      在这里插入图片描述

  6. 读取输入寄存器(功能码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 
      

      在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐