1 引言:实时计算对工业控制的重要性
在现代工业领域,无论离散制造业还是流程行业,若要生产设备和过程能安全且高效运转,从而制造出质量合格且有经济效益的产品,均离不开自动控制技术的支撑和驱动。工业控制系统需与真实世界的生产过程和装置,进行数据通信和能量传递,才能完成自动化任务。
生产过程中的物理或化学变化,总是需要时间的,即无论变化过程有多快,从开始到结束总有延迟。在常规观测条件下的真实时间是均匀流逝且不能被操控的。工业自动化系统为实现自动化而执行的各种功能任务,如测量输入、控制输出和控制计算等,也需要在预定的某个时刻开始,并在预期的某段时间内完成。控制器的各类操作,即使计算数值正确,若不能及时响应被控对象或被控过程的需要,那么也会导致错误而无法完成任务。
作为系统核心的工业控制器,一般都采用基于计算机的架构,即以执行存储程序的方式来实现控制算法逻辑。当一个计算任务,不但要求计算结果正确,而且也要求满足时间上确定的指标时,则可称其具备了“实时性”的特征;所以,工业控制器必须具备实时计算的能力,才可对生产过程实施自动化控制。
2 实时控制的概念:基于实时计算的工业控制技术
实时计算的概念,定义了计算任务的成功取决于两个必要条件:计算结果的正确性、完成时间上的确定性,即按实际任务的需求在指定的时间要求下提供正确的结果。当然,计算机任务处理速度快,是完成实时计算任务的一个重要前提,有利于设计时留有充分的余量;但单纯的“快”不足以描述实时,真正的实时是要“疾如所指”(as fast as specified),这也是对“如何正确理解实时性特征”的一个精炼表述。
按实时计算所涉及的领域,大体上可分为两类:信息技术(IT)领域,以计算机的信息和数据处理为主,如:分布式科学计算、金融交易系统等;工业自动化(OT)领域,涉及到真实物理设备和工业流程,如:工业控制、自动驾驶、远程医疗、电网负载均衡调度等。其中,对完成某个实时任务所涉及的软、硬件的全体,可统称为实时系统;如离散制造中的多轴联合电机调速任务,为实现此实时运动控制任务,通常需要由控制器、伺服驱动器和电机、传动机构和机械负载、传感器等量装置及其它附属部件等组件一起构成了实时系统;其中控制器和伺服驱动器,本质都是计算机,即依靠软件与硬件协同来完成与实时控制相关的功能。
工业实时控制,泛指以工业控制器为核心装置来实现工业自动化任务的相关技术统称。可根据控制器产品特征和应用领域细分如下:可编程逻辑控制器(PLC),广泛用于单台机电设备和自动化生产线,也可用于过程控制节点;数控系统(CNC),主要是完成机加工等相关的控制任务;此外,还有工业机器人的专用控制器,以及过程控制领域常见的分布式控制系统(DCS)。当前主流的控制器,均可视为有与现场设备进行通信能力的计算机,以离散方式进行工作,即时间上以时钟节拍信号来指挥和协调各器件运作,数值上对连续的物理量进行量化编码式处理。
在工业自动化场景下,通常需要在等间隔的时刻与外部交互,即接收测量数据和下发控制命令;而这个间隔被称为“控制周期”,简记为周期(cycle);所以要求控制器在一个周期内,完成测量接收、控制计算和指令下发,以及其它相关事件响应等一系列操作;后续各个周期也依此循环往复。工业控制不同应用场景的任务需求各异,那其所需的实时性能要求也就不尽相同,即周期和响应时间等约束上存在差异,如石油化工等流程行业可能以秒和分钟作为周期单位,而离散制造中的运动控制任务一般要达到毫秒级的控制周期或响应能力。
工业控制器按架构可分为:专用计算机型(嵌入式)和通用计算机型(PC-based)等两大类控制器。其中,嵌入式(embedded)系统,一般指计算机的硬件实体装在被控设备机柜内;其特点是体积小、结构简单、可靠性高、功能专用、扩展性和灵活性低、性能够用即可、价格相对便宜。嵌入式计算机,可用于实现工业实时控制,但并非所有的嵌入式系统应用都要求具备明确的实时性特征。随着实际生产中,如机器视觉、大数据、人工智能和预测性维护等各种新技术和多样性新需求的出现,通用型计算机,以其灵活性和易于实现负载整合的特点,越来越多地应用在工业控制领域,形成通用控制器类产品。
其具体特征,是在通用硬件平台和通用软件基础设施上定义和开发相应的功能;如:软PLC技术,不断扩大其在产线自动化领域的应用范围。而大多主流的数控机床和工业机器人系统,也基本都采用了以英特尔X86架构的计算机,作为其专用控制器。现可将“嵌入式系统”概念扩展,理解为这样一类广义计算机装置:其本身会从属于某个设备或系统,作为该系统的一个核心组件,其软件也是专用于此设备或系统功能的实现,如监测、操控,以及数据采集和传输等。这里“专用”的含义,已从在定制型计算机上实现的功能,扩展为可在通用硬件平台上实现的面向某类应用场景的功能。
3 实时操作系统:基于通用架构的开源方案
应用程序,是可以在没有操作系统的情况下,直接运行在计算机硬件上的,即所谓的“裸机”(baremetal)方式。随着计算机硬件的持续进步——特别是微处理器(CPU)的迅猛发展,计算任务管理复杂度不断提高,而编写高效和可靠的多任务并发的裸机程序,也变得越来越困难;操作系统类软件因此应需而生,采用“分层架构”设计思想,作为底层直接管理各种硬件资源,并为其上的应用程序提供访问硬件受控的接口,从而对任务执行和并发进行高效而安全地管理。一般而言,操作系统的引入,为应用开发带来如下优点:
(1)应用编程,更聚焦和友好:单个任务,只需聚焦于自身算法逻辑的实现,支撑性和维护性工作均借助于操作系统来完成;因此,对于各专业领域人员而言,编程开发体验更高效和友好。
(2)多任务和多用户:在一台计算机上,通过操作系统的隔离机制,多个任务可安全、独立且并发地执行;利用通信基础设施,可更好地实现任务间的同步和协调,从而有利于解决更复杂的问题。
(3)提升硬件利用率:操作系统会调度各种工作负载,在“性能过剩”的硬件上以提高利用率和兼顾高效执行为目标,完成各种任务;一般以充分利用计算资源(特别是避免CPU闲置)为策略,从而提高了系统的整体任务吞吐量(throughput)。
(4)软件生态基础:统一而规范的接口和基础设施,是代码移植和复用的前提,也是各种软件协同合作的基础;会方便终端用户在同一平台上,累积和复用各种软件的使用习惯和经验;从而产生一个良性发展的、合作共赢的软件应用的市场环境。
实时操作系统(RTOS),首先是作为操作系统而存在,然后才是满足实时性保障特征,其应具备一般操作系统基本功能和由此带给应用程序开发的便捷和优势,然后才是保证满足实时要求的措施,必须优于裸机实时编程方式,提供更加可靠的实时性和稳定性保障。通常一个实时操作系统,应具备基于优先级的任务调度,支持抢占的内核和高精度时钟等模块,和针对中断处理、优先级反转等延时问题的解决方案等基础措施,来支持和保障计算任务的实时性特征。按设计方式,可分为专用和基于通用改造的实时操作系统;前者包含如商用VxWorks和开源的FreeRTOS等,后者包含基于Linux的Preempt_RT实时补丁方案、双操作系统内核架构的Xenomai方案等。
此外,还有基于虚拟化技术的实时解决方案,如ACRN、RTS Hypervisor和KVM等,其引入的虚拟机监控管理计算资源,实现了类操作系统的硬件管理和隔离等功能。工业控制参考实例,如在同一台IPC上运行多个虚拟机,可在其Windows虚拟机中运行常用的用户界面程序和数据处理、仿真程序,而在实时虚拟机(如基于Linux实时操作系统)运行实时控制类计算负载等关键任务程序。
相较而言,开源的方案,易于获取和使用,但需要投入较多前期培训和维护成本;商业方案,一般具有良好的技术支持保障,并且便于某些领域的安全认证和规范要求,但授权费用一般较高。而通用操作系统对比专用操作系统,具备更广谱软件硬件支持,更新升级快,能够完成更广泛的计算任务,且可通过配置和调试,对特定计算任务进行优化。基于通用架构和系统的开源实时解决方案,在高效地应对复杂性的同时,还提供确定性、可靠性和灵活性的计算能力;且经长期的发展和累积,其上的软、硬件生态丰富,为满足多样化负载整合的需求,提供了便利。但在具体实践中也要面对如下复杂性:
(1)硬件平台复杂:组件品类和型号多样,最优选型比较困难,需要平衡性能、价格和扩展性。
(2)软件系统复杂:获取到开源代码,远不是对平台系统完全掌控,代码庞杂,需要理清依赖关系。
(3)调优过程复杂:缺少系统性的指导和解释,并且开源社区对新问题的响应也无法保证及时。
为此需要专业团队,一方面具备实时计算基本知识和技能,另一方面理解工业控制任务的实际需求,对具体应用,提供针对性的实时解决方案。
4 ECI:基于X86架构的参考平台软件
“英特尔工业边缘控制平台”(Intel®Edge Controls for industrial)方案——简称ECI,是以面向工业自动化领域应用和软硬一体化实现的这两个目标为自身定位;基于“通用开放架构”和“软件定义”的两个基本设计理念进行开发,突出软硬协同优化的特征;包含“一硬一软”两个基础构件,用以实现各种边缘控制任务的整合应用:
(1)硬:以基于X86架构的通用计算硬件平台,用作为缘控制软件的执行载体。
(2)软:具备实时性保障的通用操作系统和虚拟化方案,用作边缘控制应用软件的运行基础。
ECI架构如图1所示。
图1 ECI架构图:功能与组件
此平台软件,提供了两种主流的基于Linux通用操作系统的开源实时解决方案:内核实时补丁Preempt_RT方案和双内核Xenomai方案;并且基于计算硬件特性,针对其对实时任务可能影响,提供了推荐配置和调优方法。如:通过主板固件(UEFI/BIOS)选项和内核启动参数等手段,来配置与运算速率相关的时钟频率、功耗和温控等管理功能,以减少CPU频率波动对实时应用的影响;共享缓存(LLC)的隔离和分配技术,以降低共享资源争抢式访问对实时应用造成的干扰;此外,在某些处理器上还集成了专门为实时任务设计的Intel TCC技术、相关软件工具及配置方法等。
Preempt_RT Linux内核模型如图2所示,Xenomai双内核模型如图3所示。
图2 Preempt_RT Linux内核模型
图3 Xenomai双内核模型
英特尔ECI平台,不但包含了底层操作系统级软件,而且也有针对工业控制的各种应用组件,如:集成了工业控制所需的软PLC运行时——CoDeSys runtime;现场通信所需的工业实时以太网方案——EtherCAT和TSN等;以及包含了实时任务优先级调度和内存页锁定等方法;并且在推荐的IPC硬件平台上,进行系统的实时性能测试,可供最终用户硬件平台选型参考。因为采用了软硬件一体的设计和调优方式,可提供高效而可靠的实时性能;并且基于Intel的处理器设备具备广泛的软硬件生态伙伴,从而降低了最终用户的开发和调试周期,降低开发、维护和扩展升级成本,更好地满足现有工业开放和通用的要求。
需要注意的是,工业实时应用的成功落地是一个需要软件和硬件一体化且高度协同调优的过程,特别需要针对具体的场景和应用实例进行长时间且充分的验证和性能测试。为此,ECI还针对不同应用场景,比如:离散制造涉及的PLC控制、伺服电机的运动控制、机器人(机械臂和移动小车AMR)的控制,以及流程行业控制应用,提供了样例(sample)代码;在推荐的一系列IPC平台上进行了相关的功能和实时性能测试,并且提供了相关文档说明,以及结果评价和参考建议。由此,为工业领域的客户利用ECI平台进行产品设计和验证测试,提供参考依据和可行性方案。
5 结论与建议
一个可以落地的实时控制解决方案,在需求、设计、实现和调优的产品全生命过程中,需要注意以下三方面的影响:
(1)现场设备的实时通信方案
工业控制中的实时应用程度的性能受到外部现场设备的约束,要进行等时间隔I/O通信,如工业以太网方案中对网卡的访问。进行工业控制实时任务设计和验证时,不但要考虑占用CPU资源的计算密集型负载和也要关注对网卡等的IO密集型负载消耗的时间,对IPC上运行的实时任务,通过底层RTOS提供的机制和硬件调优的保障,可以让实时任务按规律的时间周期稳定地唤醒和睡眠具体的实时线程。
(2)控制器IPC的硬件选型与调优配置
当前主流商用工控机基础平台和环境,为多核处理器架构的计算机硬件平台,所以还要考虑实时多线程和共享资源隔离分配等方式,以提升整体并行计算能力,实现多任务的实时性调度。一个实时控制软件,其各项功能和任务,要针对具体的目标硬件平台(IPC)和应用场景,进行充分的测试和验证,才能进行应用。在通用计算机硬件平台,实时控制应用开发者,应该对计算机硬件平台有足够深度的了解,掌握CPU时钟工作频率、定时器的影响,频率变化的影响和引起频率变化的因素,以及CPU的硬件特性(features)即频率分配和管理,特别是电源和功耗管理,对共享Cache管理等在系统固件和操作系统中的配置和调试方法。
(3)参考资源
还应充分利用开源和可供借鉴的参考资源,用于实时控制软件方案设计、方向探索和具体落地实践的过程中。英特尔的ECI平台,基于主流开源Linux的实时方案,并针对具体IPC硬件选型,提供了在实时控制的系统硬件、固件、软件——三位一体式的调优;并且针对离散制造、工业机器人和流程行业等场景的典型需求,抽象出带真实负载的测试场景,进行验证,并在相关文档中推荐配置和调优方法。综上,ECI平台可供工业实时控制方案探索和落地时参考。
相关文章