新闻

Siemens S7-200 SMART串行通信常见问题

发布时间:2023-07-27 11:39:28

1. S7-200 SMART 是否支持 Modbus ASCII 通信模式?


STEP 7 - Micro/WIN SMART 软件未提供 Modbus ASCII 通信模式指令库。如果使用 S7-200 SMART CPU 进行 Modbus ASCII 通信,需要用户使用自由端口通信模式进行编程。


2. S7-200 SMART CPU 集成的 RS485 端口(端口 0)和 SB CM01 信号板(端口 1)能否同时作为 Modbus RTU 主站或从站?


S7-200 SMART V2.2 支持两个通信端口同时作为主 MODBUS RTU 站,但不能同时作为从 MODBUS RTU 站。


3. S7-200 SMART CPU 作为 Modbus RTU 主站如何访问 Modbus 地址范围大于 49999 的保持寄存器?


通常,Modbus 协议的保持寄存器范围在 40001 至 49999 之间,这对于大多数应用来说已经足够,但某些 Modbus 从站的保持寄存器区域地址会超出此范围。Modbus RTU 主站协议库支持保持寄存器地址范围(40001 至 49999)或(400001 至 465536)。如果 Modbus 从站地址范围是 400001 - 465536,在调用 MBUS_MSG 子例程时,只需给 Addr 参数分配适当的值,例如 416768。


4. 当 S7-200 SMART CPU 作为 Modbus RTU 主站多次调用 MBUS_MSG 指令时,为何指令显示 6#错误代码?


1. 同一时间只能激活一个 MBUS_MSG 指令。如果激活多个 MBUS_MSG 指令,**MBUS_MSG 指令将被执行。所有后续的 MBUS_MSG 指令将中止执行并出现 6#错误代码。多个 MBUS_MSG 指令需要以轮询模式执行。


2. 在 Modbus 库存储区中分配的建议地址区域与编程中已使用的 V 存储区重叠。


5. S7-200 SMART CPU 作为 Modbus RTU 主站,当从站出现故障或通信线路断开时,主站尝试发送多个请求数据包,导致通信时间较长。如何减少主站的重传次数以提高通信效率?


当激活 MBUS_MSG 指令时,它会发送 Modbus 请求消息帧。如果主站在 Timeout 参数定义的时间间隔内未收到从站的响应,Modbus RTU 主站协议库默认会再发送两个 Modbus 请求消息帧。只有在发送最后一个请求帧且在 Timeout 参数定义的间隔后仍未收到回复时,MBUS_MSG 指令的 Done 完成位才设置为 1。将 mModbusRetries 变量的值从 2 更改为 0 可以取消 Modbus 请求帧的重试次数。mModbusRetries 变量的**地址可以通过查询 Modbus RTU 主站协议库的符号表获得,如图 1 所示。