WIFI&蓝牙(ESP32)转CAN总线&串口TTL模块-C1-设备作为Modbus Slave实现RS485 Modbus RTU和Modbus Poll Modbus TCP转换通信

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESP32_CAN" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

说明

这节测试的是让设备作为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, 设备上面的按键重启

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

posted on 2024-03-11 11:42  广源时代  阅读(131)  评论(0编辑  收藏  举报

导航

支付宝 QQ群