Modbus Slave和Modbus Poll的使用说明

文章目录

    • 1 软件说明
    • 2 本例目标
    • 3 Modbus Poll配置步骤
    • 4 Modbus Slave配置步骤
    • 5 各种测试
      • 5.1 正常显示
      • 5.2 Slave Id不一致
      • 5.3 Quantity不够
      • 5.4 测试IP Address
    • 6 总结
    • 7 补充
      • 7.1 Skip response
      • 7.2 Insert CRC/LRC error
      • 7.3 Return exception 06. Busy

1 软件说明

  1. Modbus Poll:是Witte Software公司开发的的Modbus主机仿真器,用于测试和调试Modbus从设备。软件支持ModbusRTU、ASCII、TCP/IP协议。支持多设备监控,可以同时监视多个从设备/数据域。
  2. Modbus Slave:Modbus从设备仿真器,主要用来模拟Modbus从站设备,接收主站的命令包,回送数据包。帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于模拟、测试、调试Modbus通讯设备。

2 本例目标

  1. 下文中整个测试例子的目标是:在本机电脑上,让slave Id为2,端口为502的Modbus Slave和Poll实现功能码为0x03的Modbus TCP/IP连接。此外,连接检测地址从3开始的100个寄存器。

3 Modbus Poll配置步骤

  1. 打开软件后的主界面如下图,红字No connection表示此时没有连接任何从设备。其中,Tx表示发送帧数,Err表示错误帧,ID表示从站的ID号,F表示功能码,SR表示轮询周期,右下角的[127.0.0.1]:502显示IP地址和端口号
    Modbus Slave和Modbus Poll的使用说明_第1张图片

  2. 点击导航栏里Connection->connect可以设置连接的一些参数,本次例子为Modbus TCP/IP。所以Connection选择Modbus TCP/IP,端口与从站一致设为502。还可以下载Virtual Serial Port Driver Pro软件去模拟串口连接。
    Modbus Slave和Modbus Poll的使用说明_第2张图片

  3. 设置成功后,点击OK按钮。但还需要进行Modbus TCP/IP连接协议配置。导航栏Setup->Read/Write Definition。根据目标要求,把Slave Id改为2,Function选择03,Address设3,Quantity数量设100。其余属性保持默认。配置好后点击按钮OK
    Modbus Slave和Modbus Poll的使用说明_第3张图片

4 Modbus Slave配置步骤

  1. 打开软件后,主界面如下图。其中,ID即从站ID,F为功能码。红字No connection表示此时未与任何设备连接。右下角[Any IP Address]:502显示ip地址和端口。
    Modbus Slave和Modbus Poll的使用说明_第4张图片

  2. 导航栏Connection->connect,Connection选择Modbus TCP/IP,端口设为502,其余保持默认。配置好,点击按钮ok。
    Modbus Slave和Modbus Poll的使用说明_第5张图片

  3. 导航栏Setup->Slave Definition。Slave ID即从站地址配为2,Function选择0x03,Address保持默认0,Quantity改为103。因为poll里的address和quantity表示,从address开始读quantity个寄存器值。而slave表示从Address开始共有quantity个寄存器。那么只要slave里有poll要读的寄存器即可,所以slave可以多设寄存器数量但不是不能少配置。
    Modbus Slave和Modbus Poll的使用说明_第6张图片

5 各种测试

5.1 正常显示

  1. 按照上述配置后,两个软件能够实现连接,下面是它们的主界面图:
    Modbus Slave和Modbus Poll的使用说明_第7张图片
    图1. Modbus Poll

Modbus Slave和Modbus Poll的使用说明_第8张图片

图2. Modbus Slave
  1. 查看二者之间的报文,都是导航栏Display->communication。如下图所示,Tx表示发送报文,即poll发出的;Rx为响应报文,即slave响应回来的。而Exit表示退出,弹窗关闭;Stop停止报文,显示框内停止报文记录;Clear清空,显示框清空;Log可以把报文保存在本机上,存为txt文件。
    Modbus Slave和Modbus Poll的使用说明_第9张图片
  2. 因为0x03功能码是读寄存器,所以当slave寄存器里值变化时,poll读到的值也会变化。如下图所示。但是改slave寄存器1的数值时,poll没有变化。因为poll没有address为3之前的寄存器。
    Modbus Slave和Modbus Poll的使用说明_第10张图片

5.2 Slave Id不一致

  1. 如果从站ID为2,但是poll没有改,无法成功连接,报Timeout Error
    Modbus Slave和Modbus Poll的使用说明_第11张图片
  2. 打开poll日志发现只有发送报文,没有响应报文。因为Slave ID不一致,slave和poll没有成功连接。
    Modbus Slave和Modbus Poll的使用说明_第12张图片

5.3 Quantity不够

  1. 把slave设置的quantity改为100,即address为0,quantity为100,共100个寄存器。但是不满足poll读的要求。poll界面显示如下,报Illegal Data Address非法数据地址。
    Modbus Slave和Modbus Poll的使用说明_第13张图片
  2. 打开poll的日志,有发送报文和响应报文,但是响应报文为异常的。可以与正常时作比较。
    Modbus Slave和Modbus Poll的使用说明_第14张图片

5.4 测试IP Address

  1. 准备两台不同的电脑,即主机,一台运行slave,一台运行poll,让二者连接成功。
  2. 步骤如下:
    • 在主机A上运行Modbus poll,点击Connection->Connection;跳出配置弹窗。在弹窗,选择modbus tcp/IP,填写主机B的IP地址,其它配置默认,点击“OK”。
    • 在主机B上运行modbus slave,操作同步骤上,同样选择modbus tcp/IP,先去掉“Any address”,ip根据实际从机设备的IP设置,再勾上“Any address”。点击OK。即可成功建立连接。
      Modbus Slave和Modbus Poll的使用说明_第15张图片
图3. Modbus Poll的设置

6 总结

  1. 上述内容是常用的连接介绍,软件导航栏的其余选项可自行探索;
  2. poll和slave不一定要同时使用,这两个软件是进行模拟主从设备的。当有实际的主平台时,可以只有slave模拟从设备,从而检测主平台性能;当有实际从设备时,也可以只有poll模拟主平台。

7 补充

  1. 2023-07-28,补充关于Modbus Slave的**故障模拟(Error Simulation)**功能。
  2. 此功能在”setUp->slave definition…“的弹窗里。下面是针对几种模拟的具体分析。
    Modbus Slave和Modbus Poll的使用说明_第16张图片

7.1 Skip response

  1. Skip response:跳过响应。就是poll(主机)在发多帧报文的时候,slave有一帧不回。主机具体发多少帧会有一帧不回,没有进行统计分析,读者可自行实验。配置如下,可设500ms的响应延迟,这样能更清楚看到效果。
    Modbus Slave和Modbus Poll的使用说明_第17张图片
  2. 当slave跳过响应时,poll会显示红字提示Timeout Error,且Err计数加一。在本实例中,由39变成40。
    Modbus Slave和Modbus Poll的使用说明_第18张图片
  3. 在communication(Display->communication)中,可以借助Stop on Error功能来更好的分析报文情况。
    Modbus Slave和Modbus Poll的使用说明_第19张图片
  4. 此外,还可以勾选Time stamp(时间戳)显示每帧报文的具体时间。红线上对应,时、分、秒,即10时50分40秒。
    Modbus Slave和Modbus Poll的使用说明_第20张图片

7.2 Insert CRC/LRC error

  1. Insert CRC/LRC error:插入CRC/LRC错误。就是poll(主机)在发多帧报文的时候,slave这边会有一帧返回错误CRC/LRC校验。具体频率,请自行分析。
    Modbus Slave和Modbus Poll的使用说明_第21张图片
  2. 此外要特别注意Not when using TCP/IP,该功能不适用于Modbus TCP/IP,因为该协议没有CRC/LRC校验。Modbus的串口通信才有校验,可以使用Virtual Serial Port Driver软件模拟串口。
    Modbus Slave和Modbus Poll的使用说明_第22张图片

7.3 Return exception 06. Busy

  1. Return exception 06. Busy:返回设备繁忙状态,即异常码06。此部分内容可移步Modbus TCP/IP之异常响应。
    Modbus Slave和Modbus Poll的使用说明_第23张图片

你可能感兴趣的:(通信,Modbus,Slave,Modbus,Poll)