如何进行Modbus通讯测试

电子说

1.3w人已加入

描述

在工业自动化领域,我们经常遇到各种通讯协议,如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,然后点击连接,如下图:

寄存器

从图中可以看到,主界面没有任何报警信息,数据收发数量相同,说明没有数据丢包,相应寄存器中有数据显示,那么说明此次通讯成功,大功告成!!!

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分