关于modbusSlave

355 阅读2分钟

关于modbusSlave

主要利用MCGS触摸屏作为modbus主站,电脑的modbusSlave作为从站,通过串口线链接进行通讯

1、主要设备

1、触摸屏MCGS作为主站,组态RTU硬件设备,通过COM2口的78链接电脑的usb转485.
2、电脑客户端安装modbusSlave软件,作为多个客户端,通过usb转485链接触摸屏

2、触摸屏组态

1656225481415.png

1656225767929.png

1656227284421.png 因为这里模拟的是现场设备,主要要注意地址的范围,因为触摸屏会根据地址的范围,发出不同的命令。主要还是起始字节地址和地址数量,只有拿到了起始地址和数据数量才能在modbusSlave里面才能建立响应的地址空间


基本概念:如果主机发送的请求指令里面请求的地址范围,从机里没有的话,主机会报通讯错误。所以从机里面的地址范围一定要大于等于主机所请求的地址范围。


2、modbusSlave的设置

1656227576196.png

1656227638343.png

1656227847160.png

1656228021986.png

对于一个设备的的不同的采集区间,可以设置多个地址域文件。只要设备地址相同,起始地址和数量还有数据格式差别都可以选择设置。

对于不同设备的,也可以建立多个地址域,保证Slave ID的不同就可以实现,一个客户端模拟多个modbus设备的需求。


这里电脑用了一根usb转485的线链接的触摸屏的7和8口,电脑虚拟的是com4口,所有mudbusSlave的端口设置port4

1656228314453.png


如果出现通讯错误,可以利用串口调试工具,截获触摸屏主机的采集字节

1656228507515.png

然后通过一个虚拟串口工具,电脑上建立一对虚拟串口com5和com6,意味着电脑的com5和com6是链接

1656228564315.png com5发送数据,com6能够接受到响应的数据,我们用串口调试助手链接com5.用salve作为com6,

然后com5作为主机发送上面截获的指令。查看是否能够正常接受到com6的数据。通过接受到的数据判断问题的具体原因,注意上面的请求的03码和上面SLAVE设置的保持寄存器4区是对应的。

如果发送的为01 03 00 06 00 02 24 0A 接受到为01 03 83-----等基本为slave数据范围问题。


1656229259147.png

1656229389145.png

1656229462467.png