s7-200smart 与网关进行modbus-tcp通讯,网关具有rtu的站号,怎么写程序,详见图片上的内容
图片说明:
最佳答案
Modbus-TCP网关设备实现S7-200SMART以太网对支持Modbus RTU的串口设备的访问,S7-200SMART对串口设备而言,是主站,对以太网通信而言,就是客户端,是通信请求的发起者。但是对网关而言,只有一个IP地址和固定的IP_PORT,怎么来区别Modbus RTU从站呢?则可以改写MB_UNIT_ID 参数。这个参数在哪里呢?则要看你给modbus-TCP库指令分配的地址,若VB500,则VB506就是MB_UNIT_ID 参数。对RTU从站的轮流访问(读或者写),则变成了对VB506的轮流改写(写RTU从站地址),并在改写后启动一次MBUS_CLIENT指令。同时对同一个设备,也可能存在读、写,这也涉及轮询。因此编程的核心,变成写什么样的MB_UNIT_ID 参数,以及如何轮询。
而对于网关而言,实际上是通过接收到的MB_UNIT_ID (7字节MODBUS 协议报文头的最后一个字节:单元标识符)来识别RTU从站,从而完成转发。
另有一类网关,是把不同的RTU从站映射到不同的地址区域。例如:大连德嘉的Modbus TCP/Modbus RTU 转换器,可访问http://www.dl-winbest.cn/。这样PLC编程通过访问不同地址就对应了不同RTU设备。
提问者对于答案的评价:
学习了,已经搞定了
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc283931.html