一种基于云的软PLC 系统架构研究

2021-04-24 11:37
电子技术应用 2021年4期
关键词:控制程序实时性控制算法

陈 海

(1.中电智能科技有限公司,北京 102209;2.华北计算机系统工程研究所,北京 100083)

0 引言

近几年,云计算在越来越多的领域成为了核心技术[1-2]。云计算具备一些很重要的特性,如按需部署、动态可扩展、灵活性高、可靠性高、性价比高等。这些特性引起了工业自动化领域的关注,以研究新型云应用在自动化中的适用性。随着工业4.0 和工业互联网的出现,云将成为工业系统中主要的基础设施、服务和算法都将在云端分布式执行。软PLC 是该系统下的一种应用,可以在云端采集传感器数据并对工厂进行控制。但是,连接到云系统的软PLC 不能保证系统的硬实时性,因此基于云的软PLC 不适合运行有硬实时性要求的关键控制程序。

然而,基于云的软PLC 有以下优点:

(1)软PLC 比硬件PLC 更容易部署和改进,可以作为系统开发与调试期间的一种控制手段;

(2)软PLC 的冗余成本远远低于硬件PLC 系统,可以大大节约系统建设成本;

(3)基于云的软PLC 价格低廉、易于扩展,可以迅速在一些新兴领域取得突破效果,如工业互联网、工业4.0及物联网等应用。

为了能够在这些场景下进行应用,需要对基于云的软PLC 系统进行深入研究。本文提出了一种多实例可扩展的软PLC 系统架构,分析了在云环境下部署和执行软PLC 的可行性,并对实时性、可靠性等关键性指标进行了评估,阐述了基于云的控制系统可能的现实场景。

1 工业控制需求

工业控制的应用范围很广范,包括过程自动化、离散制造、发电配电、楼宇控制等领域。为了满足这些多方面应用不断增长的需求,自动化系统需要不断创新,从而采用其他领域已被验证的新技术。例如,基于PC 的高性能控制器补充了传统的控制器在性能上的不足,并且可以在控制器中集成如HMI、MES 等额外的应用程序。智能化现场设备的出现导致控制现场越来约分散,更有利于基于云的软PLC 分布式部署。

通常情况下,实时控制是在固定周期内进行的。例如每50 ms 进行一次数采集、执行算法、控制输出,这种方法非常适合硬件PLC 中通常存在的固定资源。然而部署在云端的软PLC 系统的负载不太好预测,资源效率是软件提供最佳操作的关键,基于事件的控制方法显得更有意义。在这种方法中,算法的执行只在更改输入时触发,可以节省不必要的计算周期,然而这种方法从传统控制角度来看,会使得整个控制算法的执行不可预测。因此,在讨论基于云的软PLC 控制应用场景时,应该按以下分类确定该架构何时可行。

(1)硬实时:自动化系统错过了控制截止时间,导致整个自动化系统失效。系统保证所有的控制截止时间是第一要务,例如锅炉的控制。

(2)强实时:系统可以容忍一些控制截止时间的延迟,但系统的服务等级会下降。如果错过了所有的控制截止时间,系统失效。例如零件分拣控制是允许一定比例的漏捡的,但该比例需控制在一定范围内。

(3)软实时:系统错过控制截止时间仅仅会降低系统的服务质量,响应时间的平均值可接受即可,允许每次控制在一定范围内波动。例如视频会议控制系统是允许数据包延迟的。

由此可见,基于云的软PLC 控制仅仅可以用于软实时控制或者强实时控制中的特定场合,如楼宇自动化、太阳能电池板控制、电动汽车充电站等。

2 当前研究进展

工业控制系统对实时性的要求从自动化金字塔的顶部到底部逐渐增强,如图1 所示。最高层级的系统对实时性要求并不高,如ERP 和MES 系统,研究人员已经将云计算与生产制造系统进行了融合[3-4]。在控制系统的监控层级(SCADA)移到云端也有了一定研究,国外率先提出了一种能够部署在云端基于Web 的SCADA系统[5-7]。

底层PLC 系统对实时性的限制以及对可靠性和安全性的严格要求,限制了基于云的软PLC 系统的研究和应用。

图1 自动化金字塔

3 基于云的软PLC 系统架构

3.1 云计算软件体系架构

在软件架构中,高级的架构设计理论在解决特定的架构需求时扮演了十分重要的角色。本文的软件体系架构参考了专门为云计算系统创建的软件架构设计方法[8],提高了系统的可伸缩性、可维护性、可定制性和可用性。如图2 所示[9],软件体系架构分为客户端、会话层、应用层、数据库层4 个层级,4 个层级依次串行交互。

图2 云计算软件体系架构

3.2 OpenPLC

OpenPLC[10]是一款开源的PLC 运行时软件,能够在多个平台下进行安装应用。OpenPLC 是根据IEC 61131-3标准创建的,支持结构化文本(ST)、指令列表(IL)和功能框图(FBD)等多种语言的编程解析及执行功能。OpenPLC能够与Arduino 开源硬件配套使用。本文描述的基于云的软PLC 架构中,外部输入信息通过网络通信输入给OpenPLC 实例,OpenPLC 实例将已编好的PLC 程序解释执行并将结果输出,如图3 所示。

图3 OpenPLC 实例的应用

3.3 基于云的软PLC 系统架构

基于云的软PLC 系统架构根据上文提到的软件体系架构进行搭建,融合了云计算的多种优秀特性,其中包括通过消息总线使用云级通信,并且使用了平台即服务(PaaS)的功能,保证系统的快速部署和组件的可扩展性。

3.3.1 云端通信

如图4 所示,基于云的软PLC 系统与受控工业现场的本地组件(例如传感器和执行器)通过基于OPC-UA的连接器进行通信。OPC-UA[11]是最新的OPC 标准,通过提供一个完整的、安全和可靠的跨平台的架构,以获取实时和历史数据和时间。OPC-UA 为工业系统的互联互通提供了统一的访问方式、更好的认证互操作性、设计的可靠性,并提供标准的安全模型。OPC-UA 是客户端-服务器协议,支持二进制TCP 协议、HTTP(s)协议和XML Web 服务等功能,客户端启动连接后可订阅服务器数据。

图4 基于云的软PLC 系统架构

3.3.2 基于云的软PLC 系统组件

云系统的内部操作(如部署、监视、维护)和扩展系统的应用程序和服务等功能由PaaS 平台实现。主流的PaaS 平台提供了许多云模型[12]。例如CloudFoundry 提供了监视已部署的应用程序并可以弹性扩展的方法;提供了健康管理器,在系统出现故障时会自动重新启动故障组件;在充分利用CloudFoundry 所提供的云级特性基础上设计如图4 所示的应用程序架构,下面将分别介绍软PLC 系统中的重要组件。

(1)监控器

监控器组件作为弹性管理器负责监视系统的各种统计信息,例如面向消息的中间件中的队列长度或应用程序的CPU 负载。基于这些统计数据,监控器可以利用PaaS 的API 动态生成数据收集器、缓存编写器和软PLC 本身的新实例。

(2)数据收集器

为了保证分布式云组件的负载均衡,负载均衡器接收所有数据并分发到适当的数据收集器实例。数据被OPC-UA 数据采集器实例收取后,它就被转发到由面向消息的中间件(MOM)组成的中央通信组件(RabbitMQ),数据收集器确保安全的处理来自客户端的数据,并将其映射到适当的交换队列。

(3)缓存编写器

将控制算法的执行与软PLC 的状态分离,即设计一片内存缓冲区域,该缓存由MOM 中的缓存编写器进行填充。它确保现场传入数据和PLC 结果的缓存值始终是最新的。因此,在软PLC 出现故障时,新生成的实例可以根据缓存中存储的值轻松地继续控制计算。

(4)控制工程

对于控制算法中的输入/输出变量或调度属性等映射关系,需要定义一个UI 组件进行可视化配置[13]。控制算法和调度信息存储在文档数据库中。

(5)控制程序调度器

控制程序调度器负责将控制程序加载到软PLC 实例中,并指定程序的循坏执行或触发执行方式。软PLC 实例间的通信通过MOM 中的一个监听所有软PLC 实例的特殊控制队列实现[14]。

(6)软PLC 组件

执行控制算法的核心组件就是基于OpenPLC 的软PLC 组件。软PLC 组件作为云架构中的应用组件,允许动态缩放和分配工作负载。在这种模式下一组激活的软PLC 实例可以同时执行一系列控制程序。控制程序按周期运行,并根据给定的输入值计算输出值。为了使软PLC的输入输出与状态无关,这些值存储在缓存组件中。通过从数据库加载程序并且使用缓存中的内部状态值,可以在不同的软PLC 中执行新的循环,这使得工作负载可以按需快速弹性地分配到负载较少的实例上[15]。

4 实验仿真分析

由于实验条件有限,使用VirtualBOX、OpenPLC、Node-RED[13]、CloudFoundry 等软件工具单个实例的实时性进行实验仿真分析。硬件配置:i58250u,主频1.8 GHz,内存16 GB,硬盘256SSD。

图5 I/O 设备数据传输图

如图5 所示,PLC 程序以固定的间隔TI周期性地读取发生器的生成的I/O 设备输入,并将反向值写入输出,使用示波器测量并记录。输入信号间隔用TI表示,输出间隔用TO表示。通常,输出会受延迟影响,记为ΔT,见方程式(1):

由于网络没有完全同步,因此当帧开始在网络上传输时,应考虑周期更新时间。该时间值在方程式(2)中显示为TCD。在最坏的情况下,如果一个帧在其上下游时间等待整个周期时间,则该延迟将为2TCD。

用式(3)定义N 个实验的ΔT 的平均值,作为评估基于云的软PLC 系统性能指标。实验记录N=1 000 次,置信度为90%。

如图6 所示,评估结果表明,基于云的软PLC 系统在输出端有一定延迟,特别是对于较短的输入间隔,系统的工作负载将大量增加,从可编程逻辑控制器的CPU使用情况和网络流量来看,ΔT 值将更高,这表明系统的性能较差。但是,对于软实时应用来说,性能降低是可以接受的,因为对于这类应用来说,TI更高。

图6 实时性折线图

5 结论

本文提出了一种基于云的多用户可扩展的软PLC系统架构,并且根据最简单的单实例模式分析了系统的实时性,从仿真实验分析结果得出结论,在软实时控制系统中使用基于云的软PLC 系统是可行的。但由于实验条件有限,未能进一步测试多实例对系统实时性的影响、系统的冗余恢复时间、内存数据库及消息中间件对系统的影响等质量指标。在接下来的工作中会搭建完善的系统原型,并对系统中未测试的部分进行补充测试,以明确该系统适合的应用场景。在未来,将探索进一步的应用领域,在工业4.0 的过程中推进基于云的软PLC 系统应用。

猜你喜欢
控制程序实时性控制算法
基于PLC的变电站备用电源自动投入装置控制程序的研究
基于ARM+FPGA的模块化同步控制算法研究
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用
基于PLC数值处理模块的PID控制程序研究
一种非圆旋转工件支撑装置控制算法
纸机传动控制程序的复用性研究
一种车载Profibus总线系统的实时性分析
DI材横向厚差自动控制算法及其应用