1
关注中国自动化产业发展的先行者!
2024
2024中国自动化产业年会
2023年工业安全大会
OICT公益讲堂
当前位置:首页 >> 资讯 >> 行业资讯

资讯频道

工业边缘计算软件低代码设计方法
  • 点击数:1005     发布时间:2023-04-03 16:12:45
  • 分享到:
一方面,边缘计算所带来的性能提升给工业现场设备提供了巨大的潜力; 另一方面,工业现场应用软件的复杂程度也在不断提升,对自动化工程师提出了 巨大的挑战。因此,低代码开发已经受到工业界越来越多的关注与研发的投入。 本文介绍了适用于工业控制系统的低代码设计方法以及常用建模范式。低代码设 计已经在工业多个场景中取得了良好的效益,在提升了代码质量的同时,也为工 程开发节省了大量的成本。在边缘计算更加普及的未来,低代码设计方法将在工 业各个行业中拥有更加广阔的应用前景。

★上海交通大学戴文斌,张瀛月,康嘉乐

★北京广利核系统工程有限公司吴彬,李刚,任宝华

★华为技术有限公司孔令波,黄还青

摘要:一方面,边缘计算所带来的性能提升给工业现场设备提供了巨大的潜力;另一方面,工业现场应用软件的复杂程度也在不断提升,对自动化工程师提出了巨大的挑战。因此,低代码开发已经受到工业界越来越多的关注与研发的投入。本文介绍了适用于工业控制系统的低代码设计方法以及常用建模范式。低代码设计已经在工业多个场景中取得了良好的效益,在提升了代码质量的同时,也为工程开发节省了大量的成本。在边缘计算更加普及的未来,低代码设计方法将在工业各个行业中拥有更加广阔的应用前景。

关键词:边缘计算;工业控制软件;IEC61499;低代码设计;软件自动生成

1引言

近年来,边缘计算给工业现场带来了许多新的变化。由于计算、储存能力的大幅提升,边缘计算时代的新设备往往能够胜任多个复杂任务。另外,随着网络能力的提升,边缘设备与设备之间、边缘设备与工业互联网云平台之间的通讯延迟与带宽都不再受限。但随着工业边缘应用设计复杂程度的不断提升,也对自动化工程师提出了新的挑战。在项目推进的过程中,自动化工程师除了需要根据设计图纸与功能规格说明来完成代码编写与测试之外,还需要对SCADA/HMI、外部设备等通讯接口进行组态配置,最后对部署的完整系统进行测试。而新型边缘计算应用的出现,给传统自动化工程师带来了全新的要求。自动化工程师除了完成原本控制功能的设计、开发与测试之外,可能还需要面对机器视觉、运动控制、数据处理分析等复杂任务的挑战。而同时具备所有这些能力的复合型工程师却是少之又少,即使有,高额的经济代价也是绝大多数工业企业所无法承受的。因此,低代码开发,甚至是无代码开发,受到工业界的广泛关注。

image.png

图1复杂工业边缘计算应用

2工业控制系统低代码设计

低代码开发本质上是以一种抽象的方式来描述复杂逻辑,以降低开发者的编程能力要求。近年来,低代码开发已经在IT领域得到了广泛的应用,其平台如雨后春笋般遍地开花,国内外微软、谷歌、阿里、腾讯、百度等巨头纷纷入局,并且已在流程应用、移动应用、数据应用等领域取得了不俗的成绩。例如,浪潮推出的iGix平台基于云原生、微服务架构以及弹性计算,实现了面向智能物联、企业财务管理等领域的低代码开发;微软开发的PowerApps为企业提供了应用软件的低代码开发平台,基于模型驱动工程以及所见即所得的方式,无需专业开发人员也能快速搭建基于Web或者移动端的应用软件。在OT领域,低代码设计也已经在工业界取得了较好的效果。例如,自动化巨头西门子于2018年收购了Mendix低代码构造平台,并将其与工业互联网平台MindSphere结合,基于低代码方式实现了个性化SCADA、MES或者ERP应用组件的开发与配置[1]。

低代码设计方法主要可以归为两类,如图2所示,分别是基于模型驱动工程(Model-Driven),以及基于数据驱动(Data-Driven)的设计方法,其中基于模型驱动工程的设计方法已经在工业中得到了广泛的应用。模型驱动,顾名思义,即通过建立模型来描述、模拟系统属性,并通常使用这些模型来自动生成代码。由于工业各种行业特征大相径庭,为了准确描述行业特性,通常会使用特定的领域模型来描述这些行业的特征与细节,而这些领域模型往往需要经验丰富的工程师来设计。工艺工程师通常并不具备较强的代码编写能力,而模型驱动工程将工艺与代码分离,可以让工程师将更多的精力用在工艺设计上,而无需从事繁重且重复的代码编写,从而真正将工程师解放出来专注于工艺创新。

image.png

图2工业低代码设计方法分类

近年来,边缘计算的兴起使得大量产生的现场数据能够实时被采集与分析,也为数据驱动低代码设计方式的兴起提供了坚实的基础。对于高炉反应等复杂流程工艺,单单依靠人工经验无法准确描述其运行机理。如何有效地利用大量边缘产生的数据来描述复杂流程工艺机理,从而替代建模方法,也是近年来一个热门的研究方向。近几个月以来,以大模型为基础的ChatGPT[2]等通用人工智能在代码自动生成方面取得了不俗的进步,然而通用人工智能要在工业落地却有着许多困难。首先,工业领域并没有大量的线程代码可以作为训练数据集,多数代码中由于包含工艺,通常也是各个系统集成商或者生产厂商的机密而无法获取。其次,工业行业众多且工艺完全不同,即使是相同行业,由于每条产线都存在特殊的定制化需求,因此很难通过收集大量产线数据来建立通用模型。最后,生产过程往往存在很多动态变化,例如产线中的设备随着时间的推移老化甚至损坏,或者在生产过程中出现的随机质量问题等等,如果不实时对代码进行修正会影响产品质量,严重的情况还会发生安全事故。如果用来训练的数据集中未包含这些故障数据(正常运行下也无法获得这些数据),当问题发生时,生成的代码自然也无法做出正确的应对措施。

因此,无论是模型驱动还是数据驱动的方法,都无法完全满足工业边缘计算的低代码设计需求,我们需要将这两种方法结合起来以实现工业边缘计算应用的低代码设计与开发。

3面向工业边缘计算应用的低代码设计方法

工业互联网中OT与IT的融合一直是一项艰巨的挑战,主要原因是OT与IT系统特性存在较大的差异。在自动化系统设计过程中,提高可靠性与降低成本永远是企业追求的目标。对一条产线来说,至少需要达到五个九的可靠性,在核电、钢铁等行业则需要达到10[6]的可靠性。而代码生成的质量则直接影响了系统的可靠性,同时反复测试与修改同样也会大幅度增加成本。基于可靠性与成本的考量,现有的工业控制软件低代码设计方法基本以模型驱动为主,通过对功能的拆解,使模块化的代码能够被复用,从而减少开发、测试与部署所需的时间,提升软件设计的效率。

模块化设计方法的核心思想是将复杂逻辑通过功能模块封装,通过标准化的接口来调用。软件工程师即使对逻辑一无所知,也能快速使用这些抽象化的模块来构建应用程序。模块化设计主要有面向对象(Object-OrientedProgramming,OOP)、模型视图-控制(Model-View-Controller,MVC)、微服务(Microservices)等几种范式。

其中,面向对象的编程方法是最常见的设计范式,即将系统按照实际物理设备进行建模,为每台目标设备创建一个实例化的模块并以设备名称命名。如图3所示,在物流系统中,我们可以为输送机、转弯机、转台等设备单独创建基于IEC61499标准[3]的功能模块类型并实例化,然后按照实际工厂中的上下游关系进行连接,从而使得功能块网络与系统布局图一一对应,帮助维护工程师快速定位代码。当需要对设备功能升级时,只需更新模块类型即可,而无需对接口做出改动。

image.png

图3面向对象的设计范式示例

在MVC设计范式中,我们将一个设备的实时控制、仿真模型与人机界面(HMI)三个部分分别使用模块封装,如图4所示。在调试阶段,我们可以将控制部分与仿真模型进行连接,从而形成闭环。进一步地,我们可以将HMI模块连接到控制或者模型上来实现对设备内部状态的监控。当设备投入实际运行时,我们可以将仿真模块替换为I/O接口模块,直接连接设备,从而保证代码在仿真与实际环境的一致性。MVC设计方式也可以与面向对象模块进行融合,如图4所示,将对象类型模块作为容器(IEC61499复合功能块),将基于MVC范式的功能块网络封装在对象模块类型内,使系统集成商能够快速集成、调试各种不同的设备,同时也大幅度减少了监控画面的设计时间。

image.png

图4MVC设计范式示例

近几年来,微服务架构也开始在自动化系统中崭露头角。与面向对象的设计范式不同,其更加适用于离散制造系统。在批量控制与过程自动化中,一方面,连续的生产过程需要所有设备协同运作,例如当我们向罐中加料时,需要管道、阀门与泵同时运作。基于面向对象的设计方法会造成大量模块间的通讯,从而使得功能块网络拥挤不堪。另一方面,设备之间并无明显上下游关系,使得我们无法将工艺流程直观且抽象地展现出来。因此,对于此类系统,如图5所示,我们通常是以模块来描述生产流程中的最小单元,即微服务,进一步将这些微服务模块按照实际生产步骤进行连接,就形成了完整的工艺流程。

image.png

图5微服务设计范式示例

基于以上几种设计范式,我们可以将不同类型的工业生产系统进行抽象建模,但是应该选择何种建模语言呢?在工业4.0体系架构中,AutomationML[4]、SysML(基于UML)[5]都能提供完整的系统建模描述语言。在上述示例中,我们使用了基于IEC61499标准的功能块网络来建模。相对于AutomationML与IEC61131-3标准[6]的组合,IEC61499标准中的功能块模型可以直接部署到设备上执行,从而避免了从AutomationML到IEC61131-3功能块的模型转换过程。IEC61499功能块中的逻辑算法可以使用任意编程语言来实现,因此除了支持使用IEC61131-3中定义的5种编程语言外,它还可以使用高级编程语言(例如C/C++、Java、Python等)来实现复杂逻辑,同时HMI也可以使用模块描述,更加符合工业边缘计算场景中多种设备异构场景的需求。而IEC61499统一的功能块接口封装保证了复用性,无论是面向对象、MVC或是微服务范式,都可以复用现有模块。另外,IEC61499标准使用软硬件解耦的设计概念,如图6所示,当需要将应用部署到多个边缘节点中时,只需要创建相应的部署模型,将功能块映射到目标资源上,即可完成分布式一键部署。每个IEC61499设备中的资源都是独立运行的,保证了边缘设备中不同实时性任务的资源隔离。当工艺流程设计完成时,只需要为功能块网络中的每个模块设置部署资源即可完成部署,所有跨资源跨设备的连接通讯,IEC61499会在运行时自动插入订阅/发布模块,而无需用户手动设计接口,从而大幅度提升了部署的效率。

image.png

图6基于IEC61499的低代码部署

此外,基于IEC61499的低代码开发同样也可以引入数据驱动的设计方法。在工业边缘计算应用开发中,由于仿真环境无法100%还原现场所有情况,即使通过了仿真测试,在实际系统调试中,也需要按照现场实际情况对参数进行调整,这也是一项非常耗时且成本巨大的支出。如图7所示,我们可以对采集的数据进行训练,之后将模型插入功能块网络中,与需要调整的参数进行闭环,从而在运行的过程中,根据实际结果来实时调整参数。

image.png

图7数据驱动的参数寻优方法

4低代码设计的工业应用前景

市场上,所有主要PLC/DCS厂商都已在各自的集成开发环境中提供了模块化设计方法。例如西门子的TIAPortal中,所有的代码都必须封装在模块中,并且可以使用TecnomatixPlantSimulation建立系统仿真模型并生成相应的PLC代码;3SCodeSys公司则与慕尼黑工业大学合作[7],推出基于UML的系统建模方法,可以将UML模型自动转换成PLC代码;施耐德电气推出的EcoStruxureAutomationExpert[8]则基于IEC61499标准,为分布式控制系统提供了完整的模块化设计软件;北京广利核系统工程有限公司、上海交通大学和华为技术有限公司一起设计了全新一代虚拟化核电DCS系统原型机,如图8所示,通过华为欧拉操作系统、FusionCube超融合服务器和确定性IP网络,配合基于IEC61499标准的分布式功能块网络封装核电控制工艺,实现了低代码构造,从而无需先分站再下装,大量节省了开发、部署与调试时间。同时,通过华为确定性IP网络保证了数据传递的实时性与可靠性,并且使用IEC61499的动态重构功能设计了低成本高可靠的热备方案,当单个虚拟设备出现故障时,系统会自动将模块化的代码迁移到全新的虚拟资源。

image.png

图8基于低代码开发的新一代核电DCS控制系统

仅仅几年的时间,模块化低代码设计已经在工业多个场景中取得了良好的效益,在提升了代码质量的同时也为企业节省了大量的成本。在边缘计算更加普及的未来,我们相信低代码设计方法将在工业各个行业中拥有更加广阔的应用前景。

作者简介:

戴文斌,上海交通大学电子信息与电气工程学院教授、院长助理、国家优青,兼任上海市自动化学会秘书长、IEEEP2805边缘计算系列标准工作组主席。主要从事下一代分布式工业控制软件、工业信息化、工业互联网边缘计算等方向的研究工作。

参考文献:

[1]王戈,杨楠,崔粲,等.国际工业互联网新进展及分析,信息通信技术与政策[J].2018,44(10):6.

[2]Avila-ChauvetL,MejíaD,AcostaQuirozCO.ChatgptasaSupportToolforOnlineBehavioralTaskProgramming[J].AvailableatSSRN4329020,2023.

[3]IEC61499,FunctionBlocks,InternationalStandard,SecondEdition[S].2012.

[4]DrathR,LuderA,PeschkeJ,etal.AutomationML-theglueforseamlessautomationengineering[C].2008IEEEInternationalConferenceonEmergingTechnologiesandFactoryAutomation,IEEE,2008:616-623.

[5]HauseM.TheSysMLmodellinglanguage[C].FifteenthEuropeanSystemsEngineeringConference,2006,9:1-12.

[6]IEC61131-3,Programmablecontrollers-Part3:Programminglanguages,InternationalStandard,ThirdEdition,2013.

[7]WitschD,Vogel-HeuserB.CloseintegrationbetweenUMLandIEC61131-3:Newpossibilitiesthroughobjectorientedextensions[C].2009IEEEConferenceonEmergingTechnologies&FactoryAutomation,IEEE,2009:1-6.

[8]PelliccioneA.SpotlightonInnovation:Bestautomation,controlandinstrumentationproductsin19categories[J].ControlEngineering,2022,69(1):47-56.

摘自《自动化博览》2023年第2期暨《边缘计算2023专辑》

热点新闻

推荐产品

x
  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: