1.S7-1200 CPU作为Modbus TCP客户端与一些Modbus RTU网关设备通信时,为什么“MB_CLIENT”指令会出现16#8382或16#80C8错误代码?
答:当S7-1200 CPU作为ModbusTCP客户端与Modbus RTU协议网关通信时,如果“MB_CLIENT”指令背景数据块中静态变量MB_UNIT_ID的值(默认值为255)与Modbus RTU从站地址不相同,则“MB_CLIENT”指令会出现16#8382或16#80C8错误代码。
“MB_CLIENT”指令向Modbus RTU网关发送请求时,MB_UNIT_ID用于标识串行网络中的从站地址,使得ModbusRTU网关可将请求转发到正确的ModbusRTU从站设备。
2.S7-1200 CPU作为Modbus TCP客户端,能否多次调用“MB_CLIENT”指令?
答:ModbusTCP客户端如果需要连接多个ModbusTCP服务器,则需要调用多个“MB_CLIENT”指令,每个“MB_CLIENT”指令需要分配不同的背景数据块和不同的连接ID。(www.xing528.com)
Modbus TCP客户端连接同一个Modbus TCP服务器,但需要对该服务器进行多次读写操作时,则需要调用多次“MB_CLIENT”指令,每次调用“MB_CLIENT”指令需要分配相同的背景数据块和相同的连接ID,“MB_CLIENT”指令之间需要采用轮询方式执行,具体编程请参考第7.4.3章节。
3.S7-1200 CPU作为Modbus TCP服务器,能否连接多个Modbus TCP客户端?
答:ModbusTCP服务器如果需要连接多个ModbusTCP客户端,则需要调用多个“MB_SERVER”指令,每个“MB_SERVER”指令需要分配不同的背景数据块和不同的连接ID(ID需要通过参数CONNECT指定)。
“MB_SERVER”指令的CONNECT参数用于定义通信连接,在该连接参数中需要为每个“MB_SERVER”指令分配不同的连接ID和不同的本地端口,S7-1200V4.2版本CPU支持端口复用,但是建议使用不同的本地端口。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。