1.S7-200 SMART 是否支持 Modbus ASCII 通信模式?
STEP 7-Micro/WIN SMART 软件未提供Modbus ASCII 通信模式指令库。S7-200 SMARTCPU若用于Modbus ASCII 通信时,则需要用户使用自由口通信模式进行编程。
2.S7-200 SMART CPU 集成的RS485 端口(端口 0 )以及SBCM01 信号板(端口 1 )两个通信端口能否作为 ModbusRTU 主站或者作为 ModbusRTU从站?
S7-200 SMART V2.2版本支持两个通信端口做MODBUS RTU主站,不支持做MODBUSRTU从站。
3.S7-200 SMART CPU作为 ModbusRTU 主站如何访问 Modbus 地址范围大于49999 的保持寄存器?
通常 Modbus 协议的保持寄存器范围在 40001 到 49999 之间,这个范围对于多数应用来说已经足够了,但有些 Modbus从站保持寄存器区的地址会超出该范围。Modbus RTU 主站协议库支持保持寄存器地址范围为(40001 到 49999)或者(400001 到 465536)。如果 Modbus 从站地址范围为 400001 – 465536,只需在调用MBUS_MSG 子程序时给 Addr 参数赋相应的值即可,如 416768。
4.S7-200 SMART CPU作为 ModbusRTU 主站,多次调用 MBUS_MSG 指令时,为什么该指令会出现 6# 错误代码?
1.同一时间只能有一条 MBUS_MSG 指令处于激活状态,如果激活多条 MBUS_MSG 指令,将执行***条 MBUS_MSG指令,所有后续 MBUS_MSG 指令将中止执行并出现 6# 错误代码。多条 MBUS_MSG 指令的执行需要采用轮询方式 。
2. Modbus库存储区中分配的建议地址区与编程中已使用的V存储区有重叠。
5.S7-200 SMART CPU作为 ModbusRTU 主站,从站故障或者通信线路断开时,主站会尝试发送多次请求报文,从而导致通信时间过长。如何减少主站的重发次数,以提高通信效率?
MBUS_MSG 指令被激活时将发送 Modbus 请求报文帧,如果在Timeout参数定义的时间间隔内主站未接收到从站应答,Modbus RTU 主站协议库默认的情况下还会再发送 2 次 Modbus请求报文帧;在***后一次请求报文帧发送后,经过 Timeout 参数定义的时间间隔后还未收到应答时, MBUS_MSG 指令的Done 完成位才被设置为 1 。将 mModbusRetries 变量的数值由 2 改为 0 ,即可取消 Modbus请求报文帧的重试次数。mModbusRetries 变量的***地址可通过查询Modbus RTU 主站协议库的符号表获取,如图 1.Modbus RTU 主站指令符号表所示。
图 1. Modbus RTU 主站指令符号表