常见问题
1、如何判断Modbus TCP连接是否建立?
答:进行Modbus TCP通信,需要建立连接
S7-200 SMART CPU作为Modbus TCP客户端时:通过Modbus TCP Client指令 MBUS_CLIENT 的符号表中的 mConnected 参数来判断,如图1.所示
mConnected=1 表示已经建立连接,mConnected=0 表示尚未建立连接
S7-200 SMART CPU作为Modbus TCP服务器时:通过Modbus TCP Server指令 MBUS_SERVER 的符号表中的 mConnected 参数来判断,如图2.所示
mConnected=1 表示已经建立连接,mConnected=0 表示尚未建立连接.
2、如何查看错误代码?
答:出现错误时,MBUS_CLIENT 指令输出参数Done 会为1,但是,Done在连接建立完成,连接断开,响应完成时都会出现置位为1的情况。 出现错误时,还有Error字节会显现出错误代码,仅保留一个周期时间。 综上所述,查看错误代码,可以按照图3.所示的方法进行。
3、进行Modbus TCP通信寄存器类型数据,数据量大超过120个字如何处理?
答:如果数据量超过120个字,可以进行如下两种方法操作:
A、建立多个连接,不同连接之间,可以并行操作,因为占用的通信资源不同;
B、建立一个连接,进行多个操作,不同操作之间需要进行轮询,同一时刻只有一个操作在进行。
4、Modbus TCP通信时,如何访问地址范围大于49999的保持寄存器?
Modbus 保持寄存器地址在 40001 到49999 这一范围内。该范围足以满足大多数应用的要求,但有些 Modbus 从站设备将数据映射到地址范围更大的保持寄存器中。 MBUS_CLIENT 指令允许参数 Addr 的附加范围,以支持 400001 至465536 的保持寄存器地址的扩 展范围。例如,要访问保持寄存器 16768,请将 MBUS_CLIENT 的Addr 参数设置为 416768。 扩展寻址允许访问 Modbus 协议支持的全部 65536 个可能地址。此扩展寻址仅适用于保持寄存器。
5、S7-200 SMART作为Modbus TCP客户端,服务器为网关模块,连接多个Modbus RUT设备时如何区分Modbus RTU从站地址能?
答:S7-200 SMART CPU 作为 Modbus TCP 客户端与 Modbus TCP 服务器通信,当尝试访问比 Modbus TCP 服务器更低端的串行子网中的设备,会有报错 “无法建立连接”。如果 Modbus TCP 服务器用于 Modbus RTU 协议的网关,则MB_UNIT_ID 可用于识别串行网 络上连接的从站设备。MB_UNIT_ID 用于将请求转发到正确的 Modbus RTU 从站地址。