<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESP32_CAN" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
<iframe frameborder="0" height="1500" name="ifd" scrolling="auto" src="https://mnifdv.cn/resource/cnblogs/ESP32_CAN" width="100%"></iframe>
说明
这节测试的是让设备作为Modbus Slave
Modbus Poll 可以连接设备, Modbus Poll发送的Modbus TCP数据可以经过设备转换为Modbus RTU协议通过RS485输出.
设备从RS485接收的Modbus RTU数据经过设备转换为Modbus TCP协议然后发送给Modbus Poll
测试
1,打开这节的工程
2,修改说明
测试的时候有两种测试方式,一种是使用电脑连接设备的无线信号,设备的IP地址固定为 192.168.4.1;
另一种是设备连接路由器,然后电脑也连接路由器,设备的IP地址为路由器分配的IP; 如果使用这个方式修改下设备连接的路由器名称(修改为自己的路由器信息)
Modbus Slave服务器端口号为 502,也可以修改
3,提示
下面测试方式是让设备连接路由器, 不过和使用电脑连接设备的无线信号测试基本一样,所以两种方式就一块说过去;
下面测试方式是让设备连接路由器, 不过和使用电脑连接设备的无线信号测试基本一样,所以两种方式就一块说过去;
下面测试方式是让设备连接路由器, 不过和使用电脑连接设备的无线信号测试基本一样,所以两种方式就一块说过去;
4,修改连接的路由器名称
如果是使用电脑连接设备的无线信号测试就不需要任何修改;
5,先打开串口监视器,波特率选择为9600
6,把程序下载到设备
设备连接路由器以后会打印设备的IP地址;
如果是使用电脑连接设备的无线信号测试不需要看这个;
7,电脑也连接路由器
如果是使用电脑连接设备的无线信号的方式,则下面就选择为设备的无线 ModbusSlaveAP 密码为 11223344
8,设备的RS485接口接上Modbus RTU通信的设备
9,我这边就使用 Modbus Poll 上位机测试, 先设置下协议
这个要根据自己的RTU设备设置,我这边是03功能码读取设备的寄存器,然后读取7个
10,然后连接
注意: 如果是连接路由器测试的,下面的IP就填写设备上面日志上打印的IP;
如果是使用电脑连接设备的无线信号的方式,IP地址就填写 192.168.4.1
11,正常情况下这里会获取到读取的数据
程序说明
1,buf里面是接收到的Modbus TCP数据; buf1是发送给RS485的Modbus RTU数据
2,rs485RcvBuf里面是通过RS485接收到的Modbus RTU数据; rs485RcvBufCopy是发送给Modbus TCP的数据
3, 设备上面的按键重启
.
标签:RTU,Modbus,测试,串口,路由器,连接,设备 From: https://www.cnblogs.com/yangfengwu/p/18065760