文章目录
- 1 软件说明
- 2 本例目标
- 3 Modbus Poll配置步骤
- 4 Modbus Slave配置步骤
- 5 各种测试
- 5.1 正常显示
- 5.2 Slave Id不一致
- 5.3 Quantity不够
- 5.4 测试IP Address
- 6 总结
1 软件说明
- Modbus Poll:是Witte Software公司开发的的Modbus主机仿真器,用于测试和调试Modbus从设备。软件支持ModbusRTU、ASCII、TCP/IP协议。支持多设备监控,可以同时监视多个从设备/数据域。
- Modbus Slave:Modbus从设备仿真器,主要用来模拟Modbus从站设备,接收主站的命令包,回送数据包。帮助Modbus通讯设备开发人员进行Modbus通讯协议的模拟和测试,用于模拟、测试、调试Modbus通讯设备。
2 本例目标
- 下文中整个测试例子的目标是:在本机电脑上,让slave Id为2,端口为502的Modbus Slave和Poll实现功能码为0x03的Modbus TCP/IP连接。此外,连接检测地址从3开始的100个寄存器。
3 Modbus Poll配置步骤
-
打开软件后的主界面如下图,红字
No connection
表示此时没有连接任何从设备。其中,Tx表示发送帧数,Err表示错误帧,ID表示从站的ID号,F表示功能码,SR表示轮询周期,右下角的[127.0.0.1]:502显示IP地址和端口号
-
点击导航栏里Connection->connect可以设置连接的一些参数,本次例子为Modbus TCP/IP。所以Connection选择Modbus TCP/IP,端口与从站一致设为502。还可以下载
Virtual Serial Port Driver Pro
软件去模拟串口连接。
-
设置成功后,点击
OK
按钮。但还需要进行Modbus TCP/IP连接协议配置。导航栏Setup->Read/Write Definition。根据目标要求,把Slave Id改为2,Function选择03,Address设3,Quantity数量设100。其余属性保持默认。配置好后点击按钮OK
。
4 Modbus Slave配置步骤
-
打开软件后,主界面如下图。其中,ID即从站ID,F为功能码。红字
No connection
表示此时未与任何设备连接。右下角[Any IP Address]:502显示ip地址和端口。
-
导航栏Connection->connect,Connection选择Modbus TCP/IP,端口设为502,其余保持默认。配置好,点击按钮ok。
-
导航栏Setup->Slave Definition。Slave ID即从站地址配为2,Function选择0x03,Address保持默认0,Quantity改为103。因为poll里的address和quantity表示,从address开始读quantity个寄存器值。而slave表示从Address开始共有quantity个寄存器。那么只要slave里有poll要读的寄存器即可,所以slave可以多设寄存器数量但不是不能少配置。
5 各种测试
5.1 正常显示
- 按照上述配置后,两个软件能够实现连接,下面是它们的主界面图:
图1. Modbus Poll
- 查看二者之间的报文,都是导航栏Display->communication。如下图所示,Tx表示发送报文,即poll发出的;Rx为响应报文,即slave响应回来的。而Exit表示退出,弹窗关闭;Stop停止报文,显示框内停止报文记录;Clear清空,显示框清空;Log可以把报文保存在本机上,存为txt文件。
- 因为0x03功能码是读寄存器,所以当slave寄存器里值变化时,poll读到的值也会变化。如下图所示。但是改slave寄存器1的数值时,poll没有变化。因为poll没有address为3之前的寄存器。
5.2 Slave Id不一致
- 如果从站ID为2,但是poll没有改,无法成功连接,报
Timeout Error
。
- 打开poll日志发现只有发送报文,没有响应报文。因为Slave ID不一致,slave和poll没有成功连接。
5.3 Quantity不够
- 把slave设置的quantity改为100,即address为0,quantity为100,共101个寄存器。但是不满足poll读的要求。poll界面显示如下,报
Illegal Data Address
非法数据地址。
- 打开poll的日志,有发送报文和响应报文,但是响应报文为异常的。可以与正常时作比较。
5.4 测试IP Address
- 准备两台不同的电脑,即主机,一台运行slave,一台运行poll,让二者连接成功。
- 步骤如下:
- 在主机A上运行Modbus poll,点击Connection->Connection;跳出配置弹窗。在弹窗,选择modbus tcp/IP,填写主机B的IP地址,其它配置默认,点击“OK”。
- 在主机B上运行modbus slave,操作同步骤上,同样选择modbus tcp/IP,先去掉“Any address”,ip根据实际从机设备的IP设置,再勾上“Any address”。点击OK。即可成功建立连接。
6 总结
- 上述内容是常用的连接介绍,软件导航栏的其余选项可自行探索;
- poll和slave不一定要同时使用,这两个软件是进行模拟主从设备的。当有实际的主平台时,可以只有slave模拟从设备,从而检测主平台性能;当有实际从设备时,也可以只有poll模拟主平台。