概述
在S7-1200 Modbus RTU通信网络中,当包含多个从站站点时,轮询必须逐一读写各站点数据。本文将探讨影响整体轮询时间的因素,并提出相应的优化策略和故障处理方法。
影响轮询时间的关键因素
- 波特率设置:波特率越高,数据传输速度越快,从而缩短轮询时间。
- 通信数据量:每个站点的通信数据量越小,指令执行越快,轮询时间相应缩短。
- 站点数量:站点越少,所需处理的数据量越小,轮询时间更短。
- 通信距离:通信距离越短,可设置的波特率越高,有利于减少轮询时间。
- 各站点连接时间:连接时间越短,整体轮询时间越短。
各站点连接时间的优化
在Modbus RTU通信中,以下参数与“各站点连接时间”紧密相关:
- 从站响应时间 (RESPTO):指从站对主站请求的响应时间。
- 重试次数 (RETRIES):指初次连接无响应后,再次尝试连接的次数。
- 主站定时参数 (Blocked_Proc_Timeout):用于控制主站在执行下一个功能块或轮询下一个站点之前的等待时间。
“各站点连接时间”的设置参数
1.信号干扰、硬件质量引起的从站掉站、工程需暂时关闭站点等会增加“各站点连接时间”,使通信系统轮询时间大大延长;
2.ModbusRTU通信中与“各站点连接时间”相关的参数:
- 从站响应时间RESP_TO;
- 重试次数RETRIES;
- 主站定时参数Blocked_Proc_Timeout。
重试次数RETRIES
1.RETRIES参数的设置方法
- 在功能块MB_COMM_LOAD背景数据块可设置RETRIES参数
- 主站在返回无响应错误代码0x80C8 前的重试次数(默认2次)
2.RETRIES参数的含义
- RETRIES参数表示,初次连接无响应后,再次连接的次数。以默认2次为例,实际尝试连接次数为3次;
- 更改参数后,需要重新使能MB_COMM_LOAD功能块的REQ管脚,否则更改参数不生效。
主站定时 Blocked_Proc_Timeout
1.Blocked_ProcTimeout参数的设置方法
- 若Done及Error均未置1时,需提供定时间在时间到达后置位以便执行下个功能块或轮询下个站点。
- MB_Master背景数据块提供了主站定时参数(范围(0S到5.5S)
2.从站响应时间参数与主站定时参数的区别
- 从站响应时间参数RESP_TO针对从站响应时间,主站定时参数Blocked_Proc_Timeout则是针对主站的定时时间;
- 主站定时可防止单个MB_Master指令独占/锁定对端口的访问
Modbus延迟常见问题
1.由于某一个从站掉站,引起轮询的周期时间延长这种情况下该如何减小此影响?
- S7-1200可同时调整从站响应时间参数和重试次数参数,用于减小Modbus从站掉站/暂时关闭而增大的轮询周期时间;
- 可根据项目实际工况适当减小从站响应时间RESP_TO。由于这一时间无法估算,建议多次测试,确认每个从站都能够正常稳定连接情况下,将此时间设置得尽量小。
- 以设置500ms为例:将RETRIES设置为0。即对于每个从站主站只尝试连接一次,总计耗时500ms。
2.MB_MASTER报错8200(端口正忙于处理传送请求)这种情况下该如何处理?
- 该情况DONE/ERROR未置位,与后续MB_MASTER冲突导致;
- 确保接通下个MBMASTER时间大于Blocked Proc Timeout所设定的时间(默认时间为3S)
结论
通过对波特率设置、通信数据量、站点数量、通信距离、各站点连接时间等关键因素的优化,可以显著提高Modbus RTU通信系统的效率。同时,合理设置从站响应时间、重试次数和主站定时参数,可以有效处理通信故障,保证系统的稳定运行。这对于提高工业自动化系统的性能和可靠性具有重要意义。