工业自动化编程言语演化的方向!

工业。工业主动。自动操控体系。化编化所选用的语演。编程。工业言语不或许原封不动,自动总是化编化环绕着服务方针的需求和运用场景的改变在演进。从上世纪的语演90年代至今,IEC 61131-3作为。工业PLC。自动、化编化。语演DC。工业S和软PLC事实上的自动世界工控编程言语标准,已是化编化不争的实践;IEC 61499作为IEC 61131-3的重要弥补,特别是作为分布式操控体系的建模言语标准,正在紧锣密鼓地进入工控范畴。

不过面临。智能。制作、工业互联网和工业。物联网。的火急需求,以及IT/OT交融、工业大数据剖析、。人工智能。等技能办法的深化落地,选用什么编程言语这一。论题。的评论,近两年来在海外特别北美主动化专业网站和杂志中层出不穷。归结起来中心的两个问题是:(1)IT范畴的编程言语和OT范畴的编程言语在。工业主动化。范畴中怎样表现交融;(2)IT范畴的编程言语是否或许代替OT范畴的编程言语。

问题从何而来?

咱们先看问题是怎样提出的:

(1)最近在美国的一次技能会议上,ISA部属automa。ti。on.com网站的资深修改与Arlen Nipper(Cirrus Link Solutions的首席技能官和MQTT的一同发明者)攀谈时,问及主动操控中编程言语的演化,请他对主动化和。操控工程。师现在运用的编程言语进行排序。他指出。Python。、。Java。和C系列言语(C、。C++。和。C#。)是前三名。但他又弄清说,它们的盛行并不以任何办法排挤其他编程言语。因为语法类似,Python和Java被认为是。C言语。宗族的一部分, C言语宗族还包含Julia、Perl和许多其他言语。

(2)艾默生的Darrell Hal。te。rman在上一年6月的《InTech》杂志上宣布了一篇题为《面向边际的未来操控编程》的文章,指出:虽然可编程主动化。操控器。(PAC)的专用实时操作体系。RTOS。存在一些束缚,不过也开端承当了与边际相关的使命。在许多状况下,用户有必要创立杂乱的。算法。,比方。机器学习。战略等,运用现代IT类型的言语如C++和Python在PC机或工业 PC机上运转,与PAC一同作业。Halterman表明,用户应该尽或许寻觅包含敞开编程、软件和。通讯。标准的。产品。组合。关于边际操控器需求它们可以运用C/ C++、Python和其他适用于机器学习和人工智能等运用的现代言语。

(3)在2022年10月美国《。机器人。和主动化新闻》网站注销一篇题为《最盛行的主动化编程言语》的文章。作者Mark Allinson指出,依据上一年进行的查询,Python是开发主动化体系最受欢迎的言语。它的首要长处是开源和自在,其高可读性使得它相对简单上手。作者激烈鼓舞任何新企业运用Python作为其首要编程言语。文章中还提到了JavaScript、Java和C#在主动化和企业环境中也是很盛行的编程言语。

(4)Python的抢先地位在IEEE Spectrum最近发布的第十届年度尖端编程言语排名中进一步得到印证。本年Python不只在其排名中坚持榜首,并且还扩展了抢先优势。Python日益增长的主导地位好像首要是以献身更小、更专业的言语为价值的。它现已成为一门全能的言语,乃至是某些范畴(比方人工智能)中的言语大师,强壮而广泛的。AI。库使它无处不在。

IEC 61131-3/IEC 61499处于何种地步?2019年PLCopen世界安排和美国automation.com网站联合进行了PLC用户编程偏好的查询。总数为200个呼应者绝大部分来自北美和欧洲。查询的效果反映了。PLC编程。的趋势,以及用户对PLC编程软件供货商的一些主意和定见。用户喜爱用哪些编程言语的查询效果是:用得最多的是结构化文本言语,其次是梯形图,再次是功用块图,第四是次序功用图,其它编程言语位居终究,在其它编程言语顶用的最多的是C/C++言语。从用户这些言语偏好可以得出以下定论: (1)各种编程言语运用的距离并不大,没有特别多的,即便居榜首的结构化文本也不过比居于第五的其它言语多的有限。 (2)显着可见,用户关于面向方针的言语如结构化文本言语和C/C++言语更为喜爱。这反映了在智能制作和工业互联网的运用中面向方针的编程言语更能满意用户编程的需求。 (3)许多PLC的编程环境支撑用C/C++言语编写功用块。 从2019年到2023年,在这不算太长的四年中,主动化和操控的编程言语却有了显着的改变,这反映出敞开的、可互操作的编程标准正在OT中鼓起,这些标准企图取代与特定工业。硬件。绑定的专有编程言语。在automation.com网站中从前刊登过一篇文章《缺失的工业4.0/数字化链接——敞开编程标准一致性与。认证。》中,作者Bill Lydon写道:“IEC 61131-3的根本原理已被世界各地的主动化供货商广泛选用。IEC 61131-3由PLCopen安排支撑,经过特别兴趣小组、标准和认证扩展了标准。这些标准和认证包含运动操控、。机械。安全、OPC UA、XML数据交流和可重用性。因为IEC 61131可完结完好的使命结构,事情驱动和循环编程都可以完结。” 文章还指出,不管选用何种编程办法,“制作商和进程出产公司有必要数字化,不然他们将与竞赛对手构成战略距离,使他们陷于巨大的竞赛下风中。”完结数字化首要需求一个标准化的公益安排以敞开标准的方法来运用工业4.0和物联网(。IoT。)的概念、技能和架构,供货商对敞开互操作编程标准的遵照和认证将加快制作职业的数字化。但是因为缺少对IEC 61131-3这样的工业主动化编程标准的强一致性认证,然后导致工业主动化职业留下商场空白,“这块空白很有或许会被外部抢占先机“。这是否意味着以IT为。中心。的言语(如Python)便是来自工业主动化范畴的外部? 在这个范畴内的人们也忧虑这些IT式的解决方案永久无法在工业主动化中发挥纲举目张的效果,因为在这一重要关头,需求的不只仅是某种可以表达人工智能和。深度学习。的短小精悍的编程言语,而是一种沿用工业主动化范畴数十年堆集的底层逻辑和职业一同遵从的规约习气,并可以进行体系建模和按需主动结构运用的编程言语体系。在这个意义上,IT和OT体系的交融意味着不再有所谓的派系。从梯形逻辑到Python,以及IEC 61131-3以及IEC 61499等其他版别的演化,仅仅说明晰职业的开展需求和开展方向。只要将面向PLC、DCS、SCADA的工控编程言语和依据 PC的IT类型言语彼此弥补和交融,才可以一同促进工业数字化转型。

敞开主动化体系对编程言语的要求 上海交大的戴文斌教授在介绍新一代工业敞开主动化体系的界说时是这样打开的:体系由敞开的硬件、敞开的软件和敞开的。网络。三部分构成。敞开的硬件便是可选用恣意设备,并恣意布置。我了解恣意设备便是在软件与硬件完全解耦的前提下,恣意满意运用要求、具有必定算力的硬件都在选用之列。敞开的网络便是点对点确实定性通讯,设备可灵敏介入,可用零装备办法进行异构,确保最长推迟满意体系要求。敞开的软件便是要完结按需主动构建运用的方针,详细地说便是面向工艺的规划,主动生成代码,动态运用搬迁晋级等。这儿只评论敞开的软件及其可选用的编程言语的问题。敞开的软件是在能应对工艺改变而主动生成代码的软件开发环境中开发的运用软件。其软件形状表现为面向工艺改变进行生成式结构,这有别于依据已知工艺的动态结构。敞开主动化体系在其软件的规划阶段从可复用的模块库中选用模块或自行开发可复用的模块,将这些模块连接成适用于一类工艺的工艺包,设置模块。参数。后进行实例化。软件主动结构的实质是将模块化代码依照架构安排成运用逻辑来提高软件的复用性。为此需求运用一种建模言语来描绘IT与OT交融的工艺流程,依照现在可以运用且现已老练的工业标准来看,选用IEC 61499是一种适宜的挑选,堪当按需主动结构运用的重担。敞开主动操控体系的运用软件呈现出高度的模块化,其间包含数据收集处理、实时操控、运动操控、人机界面、。机器视觉。以及出产调度办理等功用块(见图1),不同功用块的代码可以选用最适合的常用于OT范畴和IT范畴的恣意编程言语来编写(见图2)。IEC 61499因为具有笼统化的功用块规划、软件硬件解耦的结构、事情触发的机制等特色,作为一种统管体系的建模言语足可以和谐各种体系功用的履行。

57264356-aba2-11ee-8b88-92fbcf53809c.png

图1 IEC 61499堪当主动结构运用的重责 图源:戴文斌《新一代工业敞开主动化体系》。

573a4cc0-aba2-11ee-8b88-92fbcf53809c.png

图2 在IEC 61499统管下运用OT/IT范畴中最适宜的编程言语编写功用块 图源:戴文斌《新一代工业敞开主动化体系》。

还有一种可选的技能道路是运用OPC UA和IEC 61131-3完结一套分布式的编程体系。用OPC UA的同伴配套。信息。模型来描绘工艺方针结构工艺模型,用IEC 61131-3的4种编程言语和C/C++来结构完结工艺操控的运用逻辑和设备间的通讯。现已获得成功运用的比便利是PackML,一种为包装工艺而开发的集成开发环境。它完全可以无障碍地推行到以次序操控为根底的各种机械加工工艺的操控体系中,也在必定程度上契合敞开主动化体系的敞开硬件、敞开软件和敞开网络的要求。相关于IEC 61499来说,这条技能道路更契合工业主动化范畴现已树立并且多年来卓有成效的办法论。

关于工业边际核算的编程言语评论。

工业边际核算设备的终极功用是感知和操控物理进程,运转本地程序,并与。工业操控。器、工厂运营体系、企业事务办理体系和云运用程序通讯。其首要价值是就近在实践出产的地址捕获实时数据,履行包含数据剖析等在内的运用程序,以极低的推迟完结快速呼应,和以低成本通讯的办法传递很多制作根底信息。明显,这个人物在分布式制作架构中起着IT/OT交融的效果。为此加强和推动工业边际核算的设备和才能首要要从工业边际核算的编程言语来考虑。总的来讲,其编程言语和东西需求:

(1)确定性操控引擎有必要支撑IEC 61131-3标准和C言语,这是体系安稳运转的根本确保。 (2)编程言语和东西灵敏多样,可以依据要求不同而改变,也便是不遵循单一的编程言语,而选用多样化的编程标准,以及用户界说的数据类型。包含运用C/ C++、Python和其他适用于机器学习和人工智能等运用程序的现代言语编程。 (3)相同,功用块也可以选用多样化的编程言语标准,并可由用户界说。 (4)可以运转开源运用程序,如图形化编程东西Node-RED和数据可视化东西Grafana,以及商业和定制运用程序。

工业边际操控体系应该支撑面向方针的通讯协议(如OPC UA),以完结在确定性操控程序和剖析/决议计划运用程序之间无缝传输数据;支撑以OT为中心的通讯协议,即IEC 1158所标准的通讯协议,比方Modbus、Profibus和Profinet等;还需求支撑以IT为中心的通讯协议,如MQTT和HTTPS。

此外,边际操控器的通用核算部分选用依据。Linux。操作体系。,便于边际操控器可以运转各式各样的非实时核算和剖析运用程序,还可以独立于确定性操控部分发动和晋级。Linux是轻量级的高功能OS,与其它操作体系渠道比较需求更少的。CPU。和。RAM。的资源。用户还可以运用预装的工业边际渠道软件加载数字化转型项目所需的运用。

总归,具有这些特性的边际操控器是完结传统确定性操控的一起充分运用现在和未来边际核算开展效果的最佳挑选。图3是艾默生边际操控器Control。Logic。的软件框图。

57537ab0-aba2-11ee-8b88-92fbcf53809c.png

图3 艾默生边际操控器ControlLogic的软件框图。

进一步评论OT/IT的编程及其联系 面向OT的编程是面向事务的编程,需求深化、体系地了解事务及其需求、特征、要求和束缚。工业主动化编程的中心和立足点是工业主动化,其编程言语需求契合工业职业范畴的了解和习气。 IT编程言语开展很快,言语繁复,且各有特色和优缺点。因为工业主动化依然需在核算机底层硬件上运转并完结事务操控与方针,所以除了需求首要考虑工业主动化职业及详细场景的要求与特色而外,依然需求面向核算机及IT的编程言语为工业主动化的事务方针完结供给支撑与开展。 OT/工业主动化职业、范畴及场景,有主动化人的一整套的职业体系、架构、要求(比方确定性、对延时的要求与束缚等等都是由事务的功能所决议)、习气以及职业言语,构成了一种体系化的职业生态与配套东西及其完结机制,在这儿IT中的编程言语、完结机制、协议等用来支撑对OT/工业主动化职业/范畴的方针与要求,便利其开发和完结。对OT/工业主动操控这样的职业、范畴,由其本身的职业言语、习气,需有职业本身的语义、信息模型,这样的语义模型及语义界说、数据字典、状态机、信息模型结构及其意义,是以OT/工业主动化职业视角下的笼统、规划并界说的,它不同于IT视角下的状况。虽然OT/工业主动化视角下的这些语义、信息模型,终究的完结依然需求凭借IT的编程言语与机制、东西来作为根底支撑与完结,但它的首要特色和特点归属于OT/工业主动化的职业范畴,依据但又差异于IT职业的状况。 OT/工业主动化职业/范畴有本身的特定标准、标准,这些标准、标准的规划、体系及配套东西,都是环绕OT/工业主动化的职业要求来打开,这一整套的OT/工业主动化的各式各样,相同需求一个“工业主动化操作体系OS”,这个OS不同于IT视角下的面向核算机底层硬件资源办理与调度的OS,而是针对并满意服务于OT/工业主动化范畴的职业操作体系,它以满意OT/工业主动化本身的职业要求和服务为着眼点和立足点,也是成体系化的。IT视角下的面向核算机硬件资源办理与调度操控的OS,是为OT/工业主动化职业职业OS供给办理与调度核算机硬件资源的底层运转环境。 工业主动化的开展进程告知咱们,IT范畴的编程言语难以全面代替OT范畴的编程言语。IT/OT交融的趋势应该表现为由OT范畴中的一种建模言语来构筑结构,以便于掌管其它编程言语在最适宜的场合发挥其所长,而不是用某一种编程言语来排挤其它的编程言语。详细地说,在编程言语这一根底范畴,要表现IT/OT交融的趋势,仍是应该由OT范畴的组织来主导。

结语和感谢。

依据上述评论可以得到两个定论: (1)新一代的操控体系需求一种集成的归纳开发环境,让实时的和确定性的操控程序可以与非实时的数据剖析、AI运用程序按需交流数据,并和谐运转于同一体系。因而OT范畴的编程言语和IT范畴的编程言语应该在编程运用中各司其职,各尽所长。但真实能进入确定性操控中心的编程言语依然有必要是OT范畴的编程言语。 (2)虽然可以选用OT/IT范畴中各种不同的编程言语为敞开主动化体系编写功用块代码,依然需求一种体系建模言语或归纳开发环境将这些功用块按工艺运用要求连接起来并能主动履行,这不是恣意一种编程言语可以独自承当的使命。