导语: 一台边缘计算网关连接多台PLC和工业仪表,设置了1秒或2秒的采集周期,是否意味着所有设备的数据都能按照这个间隔更新?实际工程中,采集软件的周期配置只是任务目标,能否实现还取决于通信请求完成时间与本地处理能力。容量规划需要将业务数据需求、通信负载和计算资源分开评估,避免简单用设备数量推算网关性能。

一、设备数量、变量更新量与通信请求量的关系
多设备采集项目通常会提供PLC数量、点位规模和目标采集周期,但这三项信息只能用于初步估算数据更新需求,不能直接代表实际通信负载。
假设某条自动化产线接入10台PLC,每台需要读取40个变量,目标采集周期为4秒。那么平均计划变量更新量为:
变量更新量 = 设备数量 × 每台变量数量 ÷ 采集周期
10 × 40 ÷ 4 = 100个变量值/秒。
这个结果表示业务平均每秒需要获得100个更新后的变量值,并不是每秒必须发送100次协议请求,也不代表系统已经具备这一采集能力。
实际通信请求数量取决于变量在PLC中的分布,以及协议和采集软件的读取方式。例如某台PLC有40个变量,如果这些数据能够按照协议要求分组读取,那么一次请求可能返回多个变量;如果变量地址分散,或者协议对单次读取范围存在限制,就需要分成更多请求。
假设每台PLC的40个变量最终需要4次通信请求,则按照4秒采集周期计算,平均请求量为:
10 × 4 ÷ 4 = 10次请求/秒。
需要强调,这里的4次请求是示例假设,不代表所有PLC协议都具有相同的读取能力。
同样是10台PLC,如果另一项目需要每秒读取一次,而且每台PLC的请求数量更多,那么实际通信任务就可能明显增加。因此,在进行容量规划时,至少需要明确每台设备的实际协议请求数、控制器响应时间及采集软件的任务组织方式。
对于以太网PLC,还应考虑控制器的通信连接资源。部分PLC已经向HMI、SCADA等系统提供数据,新增采集任务可能使用额外的通信连接与处理资源。网关能够通过工业网络连接PLC,不等于可以无限增加通信请求。
因此,变量更新量用于描述业务的数据需求,协议请求量用于分析通信任务,而最终采集周期还需要通过设备响应和软件执行情况确认。
二、RS485仪表的轮询时间如何计算?
对于通过RS485总线集中接入的工业仪表,串行通信时序通常是采集周期的重要限制条件。
假设一条总线连接8台仪表,通信速率为19200bit/s,每台仪表完成一次请求与响应共需传输80字节。为便于估算,假设每字节传输10位,且每台仪表还存在40毫秒不与上述传输时间重叠的额外响应等待。
那么全部8台仪表的理论传输时间为:
8 × 80 × 10 ÷ 19200 ≈ 0.333秒。
额外响应等待时间为:
8 × 0.04 = 0.32秒。
两部分合计约0.653秒。
这一结果尚未包含协议帧间隔、软件调度及异常重试等开销。80字节和40毫秒均为用于解释计算方法的假设值,不代表具体仪表的实测数据。
如果业务要求所有仪表每秒更新一次,那么仅上述正常通信过程就已经占用约65%的目标周期,剩余时间是否足够,还需要结合实际协议与现场设备验证。
串行轮询还存在一个重要特点:部分设备的响应异常可能影响整轮采集任务。
例如某台仪表没有及时返回数据,采集程序等待超时后才继续读取其他设备。如果额外超时及重试耗时较长,整轮通信时间就可能超过业务要求,即使网关CPU仍有较多空闲资源,也无法按时完成数据更新。
因此,RS485采集周期不应只计算正常通信时间,还应检查异常响应的处理策略。
对于变量较多的仪表,寄存器地址是否连续、单次读取长度是否符合设备要求,以及是否存在重复请求,也会影响总线负载。
如果采集周期已经接近业务上限,应先检查轮询任务是否合理,再考虑是否需要调整设备分组或采集通道,而不能直接认定处理器性能不足。
三、本地数据处理负载如何估算?
工业数据采集并不总是以设备返回数据为终点。
在一些项目中,采集程序还需要执行协议解析、字段映射、数据换算、状态判断及业务系统输出。这些任务会占用网关处理器和内存资源。
因此,判断边缘计算网关的容量时,需要把通信耗时与计算耗时区分开。
假设某个数据处理程序每秒处理200条记录,经过目标环境测试,每条记录平均消耗0.5毫秒CPU执行时间。那么该处理环节每秒需要:
200 × 0.5毫秒 = 100毫秒CPU时间。
即约0.1个单核CPU秒。
需要注意,这只是某个处理环节的CPU时间估算,不等于整台网关的CPU利用率,也没有包含其他采集、网络和系统服务的资源开销。
如果程序等待PLC响应时不持续消耗相同比例的CPU计算时间,也不能直接将通信等待时间计入CPU执行时间。
在实际工程中,还需要检查数据处理任务是否集中触发。例如多个PLC在接近的时刻完成采集,程序随后集中进行字段转换与结果输出,就可能出现短时间内的处理高峰。
此外,内存使用与程序任务组织方式有关。如果应用同时保留大量待处理记录,或在通信异常期间持续积累任务,内存占用可能增加。对于需要本地保存历史数据的项目,还应单独规划存储空间和记录管理方式。
这些问题说明,不能只根据网关处理器核心数估算设备接入上限。CPU、内存及存储需要与实际部署的软件任务共同评估。
四、如何通过测试判断容量是否满足要求?
完成初步计算以后,系统集成商应使用实际PLC、仪表和采集程序开展验证。
建议先设置具有代表性的设备与点位,检查其正常响应和实际更新周期,再逐步增加采集任务。测试时不仅要记录软件配置的采集间隔,还应记录任务真正完成的时间。
例如某项采集任务设置为每2秒执行一次,但实际完成一轮读取需要超过2秒。此时,如果软件采用顺序执行方式,后续任务可能等待;如果允许任务重叠运行,则需要评估并发连接和额外资源占用。
因此,系统能够设置2秒的采集周期,不代表业务系统实际接收到的数据一定每2秒更新。
容量测试还应覆盖通信异常场景。某台RS485仪表持续超时,是否影响其他设备的轮询?一台PLC暂时不可达,采集程序是否产生大量重复请求?业务系统暂时无法接收数据,是否导致本地任务积压?
这些情况可能比正常状态下的平均CPU占用更能反映系统容量边界。
最终的评估结果应与具体设备、通信协议、变量规模和采集周期绑定。例如在某组PLC、某种协议和特定采集任务下,系统可以持续完成规定的数据更新,并保持必要的运行余量。
这样的结果能够为新增设备或扩展产线提供参考,但不能直接转换成所有项目通用的固定设备接入数量。

FAQ:
问题1:一台边缘计算网关连接20台PLC,采集周期该怎样计算?
答:需要统计每台PLC的变量规模、实际协议请求次数和设备响应情况,再结合采集软件的执行方式判断,不能仅根据20台设备数量推算。
问题2:RS485仪表增加后,为什么CPU空闲但采集周期变长?
答:串行总线受到传输速率、设备响应和轮询时序限制,CPU空闲不代表所有仪表请求都能更快完成。
问题3:变量更新量和通信请求量有什么区别?
答:变量更新量表示业务在单位时间内需要获得多少个数据值,通信请求量则取决于协议和变量组织方式,一次请求可能读取多个变量。
问题4:怎样判断边缘计算网关是否需要增加采集节点?
答:应结合实际任务完成时间、通信异常、CPU和内存资源及目标数据更新要求,判断现有节点能否继续承担新增负载。
总结: 多设备接入边缘计算网关,容量规划应从变量更新量、实际通信请求、设备响应时间和本地计算资源分别展开。计算公式用于识别负载规模,实际测试用于确认业务周期能否满足要求。将两者结合,才能为工业设备数据采集提供具有工程参考价值的容量评估结果。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/Robustel/article/details/170193433




