连接超时参数

S7-1200 Mobus RTU通信网络中包含多个从站站点时,由于轮询的网络特性,只能同时读或写一个站点数据。因此有如下因素,会影响到最终整体的轮询时间:

1. 通信速率(波特率)设置时间

2. 每个站点的通信数据量

3. 站点数量

4. 通信距离

5. 各站点连接时间

无论是由于信号干扰,硬件质量引起的从站掉站或是由于工程需要暂时关闭站点,此时都会由于“各站点连接时间”的增加而使通信系统的轮询时间大大延长。在S7-1200的Modbus RTU通信中,主要有三个参数与“各站点连接时间”的设置相关。

1. 从站响应时间 RESP_TO

如图1所示,V2.x版本的MB_COMM_LOAD初始化块可设置从站响应时间RESP_TO参数:

设置单次连接从站的可响应时间,范围为5ms到65535ms(默认值为1000ms);即如从站在此时间段内未作出响应,则MB_MASTER将在发送指定次数的重试请求后终止请求并提示错误信息80C8。

图1. RESP_TO参数设置

注意:如图2所示,Modbus从站的执行频率须至少小于RESP_TO设置的响应时间(需要考虑响应延迟时间),才可以正常通讯。

图2. 从站响应时间

2.重试次数 RETRIES

在初始化功能块MB_COMM_LOAD的背景数据块中,可设置重试次数RETRIES参数:

主站在返回无响应错误代码 0x80C8 之前的重试次数。(默认值为2次)
注意:此参数表示初次连接无响应后,再次连接的次数;即以默认2次为例,实际尝试连接次数为3次。

图3 RETRIES参数设置

注意:在更改RETRIES参数后,需要重新使能MB_COMM_LOAD功能块的REQ管脚,否则更改参数不生效。

3. 主站定时参数 Blocked_Proc_Timeout

当由于某些原因(如已发出主站请求,但在彻底完成该请求前停止调用主站功能块时),造成Done及Error均没有置1时,需要提供一个定时时间,在时间到达后置位,以便执行下一个功能块或轮询下一个站点。

MB_Master的背景数据块中提供了主站定时参数Blocked_Proc_Timeout(范围0S到5.5S,默认3S)

此前的RESP_TO 是针对从站响应时间的,而Blocked_Proc_Timeout则是针对主站的定时时间,此功能参数用于防止单个 MB_Master 指令独占或锁定对端口的访问。

图4. Blocked_Proc_Timeout参数设置

常问问题:

由于某一个从站掉站引起的轮询周期时间延长,如何减小此影响

通常,S7-1200可同时调整两个参数:从站响应时间 RESP_TO和重试次数 RETRIES,用于减小Modbus从站掉站或暂时关闭而增大的轮询周期时间。
例:系统默认的尝试连接次数为3次,每次1S,总计3S;
可根据项目实际工况适当减小从站响应时间RESP_TO。这一时间无法估算,建议多次测试,确认每个从站都能够正常稳定连接情况下,将此时间设置的尽量小。
以设置500ms为例。再将RETRIES设置为0。即对于每个从站,主站只尝试连接一次,总计耗时500ms。

MB_MASTER报错8200(端口正忙于处理传送请求),如何处理?

此情况是由于MB_MASTER的DONE或ERROR均未置位从而与后续MB_MASTER冲突导致。确保接通下一个MB_MASTER的时间大于Blocked_Proc_Timeout的设定时间(默认3S)。