在工业自动化领域,我们经常遇到各种通讯协议,如Profibus,ContrlNet,EntherNet,Canopen,Modbus等通讯协议,而免费,开源,使用最为广泛的就是Modbus协议,基本各个厂家的工业设备都可以支持此协议。
我们在实际做工程中,就会需要做此种通讯测试,但是却没有相应的通讯设备可以做测试,那么就需要一些仿真测试的软件,我们使用最多的就是 ModScan 软件,它可以用于Modbus TCP通讯,Modbus RTU通讯,Modbus ASCII通讯,作为主站用于采集从站的数据,它可以发送指令到从站设备(必须使用Modbus协议的智能设备)中,从站响应之后,就可以在监控界面上返回相应寄存器的数据。
那么我们如何进行测试呢?
第一, 进行设备的硬件连接,PC电脑安装 ModScan 软件,作为主站用来采集数据,还需要支持Modbus协议的智能设备作为从站,一般PC电脑只有USB接口,那么就需要USB转串口转RS485接口的设备实现与智能从站的连接,此中情况是针对支持Modbus-RTU协议,接口为RS485的设备;如果智能从站是支持Modbus TCP/IP协议的设备那么只需要用网线将PC电脑和从站设备连接即可。
RS485连接
如果是TCP连接,只有一台设备用网线直连即可,如果有多台设备,那么就需要工业以太网交换机将所有设备接入交换机,通过不同的IP地址访问不同的设备。
第二,打开ModScan软件进行通讯参数设置,如果是RS485通讯,那么选择串口,并按照从站通讯参数设置波特率(一般为默认为9600),数据长度(8位),校验位(无校验),停止位(1位),如图:
如果是Modbus TCP通讯,那么通讯连接如下图,选择通讯连接位TCP/IP,输入从站设备的IP 地址和端口号(默认502)
第三,设置通讯寄存器,Address填写寄存器起始地址,Length为长度,03:HOLDING REGISTER为寄存器类型,代表保持寄存器,Device ID代表从站的站号,如果是Modbus RTU那么此处需要输入从站地址,如果是Modbus TCP通讯不用输入,如果使用了串口服务器那么需要输入从站地址,Number of Polls / Valid Slave Responses代表收发数据的数量,从这里可以看到是否有丢包。中间区域测试显示检测到从站的数据,目前有报警说明通讯有故障。
数据类型选择如下图,目前我们使用的32位浮点类型,还有bit类型,整形,双精度浮点类型等,对于浮点类型也可以设置高低位交换
第四,我们通过Modbus TCP方式进行通讯测试,设置 IP 通讯地址为:192.168.1.10,端口号为:502,设置 PC电脑的 IP 地址与从站 IP 地址:192.168.1.10 在同一个网段,比如:192.168.1.20.
我们要读取从站寄存器为:保持寄存器,那么选择功能代码为:03,寄存器起始地址为1,数据类型为32位浮点类型,读取的寄存器数量设置为:10,然后点击连接,如下图:
从图中可以看到,主界面没有任何报警信息,数据收发数量相同,说明没有数据丢包,相应寄存器中有数据显示,那么说明此次通讯成功,大功告成!!!
如果觉得《Modbus 仿真- 新手必备技能》对你有帮助,请点赞、收藏,并留下你的观点哦!