在自动化控制系统已国产化二三十年的今天,其底层技术中类似于“操作系统”的基础软件仍存在被国外垄断的问题,这迟迟未被攻克的关键一环卡在了IEC61131-3可编程系统的深度国产化进程上,它像珠穆朗玛峰北坡最后一处地势陡峭、难以征服的险峰,等待着意志最坚定、素质最过硬、条件最成熟的极少数攀登者向它发起最后的冲刺。
何谓IEC61131-3可编程系统
IEC61131-3可编程系统是遵循IEC61131-3国际标准的可实现完整自动化控制方案的软件开发平台,是自动化控制设计和执行的基础软件,在业界被喻为“用于自动化控制的低代码的集成开发环境”和“可编程控制器的‘操作系统’”。
属性一 它是低代码的集成开发环境
为了更形象地说明IEC61131-3可编程系统的基础作用,业内人士分别引入互联网中的“低代码”概念和计算机程序设计领域的“集成开发环境”术语来定义这款产品。“低代码”开发是指无需编码或很少量代码即可快速生成应用程序;“集成开发环境”是指用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。以上两种特性IEC61131-3可编程系统软件兼而有之,可见其产品定位——生来即是一款为自动化工程师打造的可实现快速开发并同时提供良好调试环境的工具性软件。
IEC61131-3可编程系统软件通常包括自动化控制程序的集成开发环境和运行环境,自动化控制程序设计人员可通过它编写符合现场控制要求的程序,并通过运行环境实现控制。
这种低代码集成开发环境通过封装隐藏诸如编译器、协议栈和基础控制算法等实现细节,使工艺工程师们在多数情况下仅通过可视化的“功能块”和“配置对话框”等软件功能组件,仅以拖拽“功能块”、填写“参数”等简单的操作方式,即可编写针对工艺控制的程序命令。
▎图1:控制系统示意图
属性二 它是可编程控制器的“操作系统”
业内人士还引入“操作系统”概念来说明IEC61131-3可编程系统软件的战略地位。可编程控制器是过程自动化、工厂自动化、农业自动化、楼宇自动化、能源自动化和交通自动化等领域的核心控制部件,IEC61131-3可编程系统之于可编程控制器,就相当于Windows操作系统之于电脑,Android操作系统之于手机,其所起的作用与操作系统一样,管理着可编程控制器的硬件和软件资源,并提供一个让工程师与系统交互的操作界面,使操作者能够便捷地完成自动化工艺逻辑设计。
这里所指的“可编程控制器”是包含边缘控制器、工控机、DCS控制站、PLC、运动控制器、机器人控制器、远程I/O和车辆控制器等在内的广义上的自动化控制器。
可编程控制器处于制造系统的现场控制层。工业制造系统结构一般分为五层,如图2所示,由底至上分别是:现场设备层,包含伺服、变频器、传感器等产品;现场控制层,包含工控机、PLC、运动控制器、机器人控制器、DCS控制站等可编程控制器产品;过程监控层,主要产品是SCADA系统www.cechina.cn,系统中的可编程控制器是设备或者工段的控制核心,SCADA通过采集可编程控制器的数据并向其分发控制指令,形成控制系统的数据中心;生产管理层,主要产品是MES系统,它以生产工人听得懂的语言执行任务,如下多少单,每一单需要多少料等;企业决策层,如ERP、SCM、CRM等系统。
▎图2:工业制造系统金字塔五层架构
其中www.cechina.cn,现场控制层(核心产品是可编程控制器)主要承担对现场的逻辑控制、运动控制、数据通讯和视觉分析等任务,是制造系统各层之间实现数据互联互通的重要桥梁。可编程控制器作为现场控制层的“大脑”,是通过IEC61131-3可编程系统完成各项控制工作的。所以,IEC61131-3可编程系统软件又被比作控制层“大脑”的“操作系统”,是控制领域中占绝对核心地位的基础软件。
国产化可编程系统为何会一直缺失?
当前国内的各种可编程控制器大多采用国外的IEC61131-3可编程系统软件产品,如德国3S的CODESYS和德国KW(已被菲尼克斯电气收购)的MultiProg。据估计,中国市场上有超过60%的自动化控制设备生产商都是CODESYS的用户,并且这家德企的软件业务每年仍保持高速增长。而国产的IEC61131-3可编程系统软件却凤毛麟角,鲜有商业化产品,更别提分一杯美羹。
为什么这么多年国内一直没有成功商业化的自主IEC61131-3可编程系统软件呢?究其原因,打破国外IEC61131-3可编程系统在我国垄断的局面存在以下难点:
1 技术门槛高
IEC61131-3可编程系统实质上是集成开发环境,其核心是编译器,而编译器在计算机技术领域被业界公认为是与操作系统并称难度等级极高的产品。
2 跨学科性强
IEC61131-3可编程系统软件是计算机技术中难度极高的编译器和自动化控制领域应用结合的产品,单纯从事计算机技术的企业不懂自动化控制,缺少控制领域的专业人才;而从事自动化控制的企业,计算机技术又相对较弱,缺少计算机技术专业人才。这种跨学科性导致IEC61131-3可编程系统的开发门槛很高,有能力开发计算机编译器的软件研发人员大多数不懂工业控制,工业控制领域内能够进行计算机编译器开发的工程师也少之又少。
3 队伍组建难
我国自动化控制核心技术发展较晚,直接相关的核心技术开发人员大概在2000年初才开始出现,培养和储备的相关人才几乎全部集中在一线城市。鉴于前述IEC61131-3可编程系统的技术门槛很高,需要长时间聚集这些一线城市的专业人员来进行开发,这对企业的人力投资决策也构成一定挑战,特别是业务种类繁多的企业,很难在短期绩效考核目标的体系下维养一支专攻远期战略目标的队伍。
4 市场推广难
一方面,有能力做出产品的技术型人才不一定具备开拓客户的能力,哪怕面对的是一片“蓝海”,他们也无从下手;另一方面,即使将优秀的国产产品放到用户面前,用户对未经大量应用的产品仍心存疑虑,会担心国产产品不够完善。
国内IEC61131-3可编程系统开发现状
目前,开发国产IEC61131-3可编程系统的潜在力量主要来自于三方面。“第一方面力量”是高校和研究所,国内部分高校、研究所宣称有自主开发的IEC61131-3可编程系统,并宣称在自有控制器上做了适配,但高校、研究所受自身科研定位的局限,与真正的商业应用较远,甚至是与产业脱节。
“第二方面力量”是从事可编程控制器研制的厂家,这部分厂家大致又可细分为两类,一类是自主控制技术较为领先的大厂,这类厂家已在一定程度上实现控制系统的国产化,但其为自有控制器配套的IEC61131-3可编程系统,仅本着“够用就行”“配套自有产品即可”的原则而开发,并不追求IEC61131-3可编程系统本身的功能完善,也没有向外输出自己开发能力的意愿。因此,这类大厂的IEC61131-3可编程系统无法直接用以提高整个中国IEC61131-3可编程系统软件的水平。另一类是自动化控制技术发展没那么快、更偏重现场硬件产品供应的厂商,这类厂家的小型PLC基本用上了自研的可编程系统,但其系统多采用执行效率较低的解释型技术、不够丰富灵活的编程语言和非标签化的变量组态方式,制约了其自主系统在中大型PLC产品上的应用,因此,这类厂家的中大型PLC及运动控制器产品开发仍要靠购买国外IEC61131-3可编程系统来实现。
“第三方面力量”是无控制技术基因的其他领域厂商,比如互联网和通讯行业也有想进入控制技术领域的企业,但由于这类企业不懂控制,不懂工业现场的实际需求www.cechina.cn,导致其系统软件无法适用于要求严苛、“真刀真枪”的工业现场www.cechina.cn,其产品也最终沦为脚本编程工具,根本无法做到对现场的实际控制。
行业黑马:一款商业化国产IEC61131-3可编程系统来袭
和其他高技术领域一样,再多的困难也阻挡不了国产化的进程。尽管IEC61131-3可编程系统国产化举步维艰,但一款由北京奥特思技术有限公司开发的IEC61131-3可编程系统的发布或将改变国内没有成熟商业化产品的窘况。
这款名为AnyControl的产品,是由一个有着丰富技术积累的优秀创业团队开发。该创业团队的发起人张海伟及核心成员,全部任职过国内一线控制技术公司并至少全程参与过一次类似产品的开发工作,他们不仅具备高水平技术能力,还拥有丰富的开发类似产品的直接经验控制工程网版权所有,同时深入理解产品的实际应用。而且该公司采用合伙人制度,每一位团队成员都有强烈意愿——做一件有意义且有前途的事情,这种志同道合使得少之又少的跨专业人才得以聚集。
IEC61131-3可编程系统市场被国外企业垄断已久,一些本土自动化厂商其实早已下决心发展自主可控产品,以便在任何时刻都不被国外产品的变化因素所干扰。这让该创业团队的市场推广工作不再如之前预想的那般艰难。出于共赢目的,这些客户与创业团队一起测试产品,一起规划功能,使得这款国产化IEC61131-3可编程系统一上市即实现了从开发成功到应用交付的零过渡,成为国产IEC61131-3可编程系统领域的一匹黑马。
据悉,该创业团队已经获得典型行业大客户的订单,并按计划交付了产品。截至目前,该IEC61131-3可编程系统已成功应用在中国科学院某自动化研究所的机器人控制平台产品、某央企集团在一特殊工业领域的DCS控制系统和深圳某上市公司的PLC和运动控制器产品上。
攻克工业软件一个重要的“卡脖子”点
国内广义可编程控制器的市场总量动辄几百亿,其中狭义的PLC、DCS市场分别超过了百亿,相关产品应用面极广,涉及众多关系到国计民生的关键行业,在控制领域占绝对核心 地位的IEC61131-3可编程系统的战略重要性不言而喻。对于量级如此巨大且需要稳健发展的市场,本土IEC61131-3可编程系统提供商长期缺位,势必会给整个行业埋下严重的安全隐患。
这款商业化IEC61131-3可编程系统的上市标志着本土团队成功解锁了在工业软件中占有重要地位的一个“卡脖子”点。自此之后,大部分国内自动化领域用户在采用德国CODESYS等软件之外,有了一个全新的选择——由本土专业团队开发的IEC61131-3可编程系统软件,并且该系统可以完全适配国产操作系统和处理器芯片,不惧“断供”,可控程度达到百分之百。
IEC61131-3可编程系统适用的产品范围很广,所适用的产品(广义上的可编程控制器)在计算机控制领域中起着关键作用,是系统里最核心的自动化控制部件,这些核心部件往往控制着国计民生相关的关键系统,比如对军工、能源(核电、火电)、化工、轨道交通、重型装备等系统的控制。所以,作为这些核心部件“操作系统”的IEC61131-3可编程系统应与这些核心部件本身一样实现自主开发、安全可控,其国产化进程已刻不容缓。
该创业团队开发的这款IEC61131-3可编程系统软件主要由集成开发环境(IDE)和运行时软件(Runtime)两部分组成。
从集成开发环境的开发工具链端看,该系统是基于开源工具链进行开发,开发工具链的源代码是开源的,即在开发软件工具这个环节不会出现受制于人的情况;从集成开发环境的运行端看,集成开发环境可跨操作系统和处理器平台运行,可以运行于Windows、Linux、麒麟等操作系统,支持在X86、ARM和龙芯等处理器平台上运行;从运行时软件(嵌入式软件)端看,这款IEC61131-3可编程系统的运行时软件采用标准C语言编写,可以很好地适配各种操作系统和处理器平台,也不涉及被限制的问题。
这款产品做到了系统开发工具链端、集成开发环境运行端、运行时软件端“三端”可控,除去开源部分的代码,该系统集成开发环境和运行时软件代码100%由张海伟创业团队自主编写,确保该系统的方方面面都不受制于人,且可以运行在各种操作系统和芯片处理器上,包括国产的操作系统和国产处理器芯片。
对标全球领先的IEC61131-3可编程系统
张海伟创业团队的目标是要全方位对标全球领先的IEC61131-3可编程系统,为全球用户提供先进的逻辑控制、运动控制、数据通讯及视觉分析等技术的全自动化软件解决方案。张海伟表示,“竞品有的功能我们产品要有,对手设置技术壁垒不提供的产品服务我们也会提供。我们每一位成员改变原有生活工作轨迹,挣脱曾束缚我们的条条框框,为的就是顺应我们共同的心声——开发出一款真正商业化的国产IEC61131-3可编程系统,并依托该产品发出代表国内技术水准的强音。”
奔着这个目标,张海伟创业团队开发出了系统功能完善,同时符合自动化现场控制的IEC61131-3可编程系统,作为新一代开放式控制平台,该系统具有图3所示的功能特点。
▎图3:AnyControl IEC61131-3可编程系统特点
突破点1:支持IEC61131-3国际标准描述的五种编程语言。包括:LD、FBD/CFC、ST、SFC和IL。为了兼顾用户使用习惯,其中LD语言还同时支持欧系和日系两种编程风格。编程语言丰富与否关系到控制器能否驾驭各种不同场景下的现场设备,因为自动化控制领域的需求非常多样,控制需求的异构性非常强,过去PLC未普及之时,现场多样性的需求只能靠专用控制器来满足,首先这导致为单一场景打造的控制器成本奇高,且由于高度定制化的专用控制器仅与某一类控制场景匹配,其通用化程度必然很低,日后很难量产;其次,本应专注于工艺控制的自动化工程师还要投入精力研究专用控制器的设计制造;再次,对用户而言,独有的专用控制器一旦应用于现场,后期换型将异常困难,这是各个行业都普遍存在的情况。那么为了使可编程控制器的适用范围更加广泛,其支持的编程语言就要足够丰富,以便有能力与现场“说着”不同“母语”的各种场景、各种设备实现“同频沟通”,这是IEC61131-3可编程系统支持五种标准编程语言的内在原因。
突破点2:支持高级语言C/C++扩展。不同语言在不同的应用场景各有擅长,例如,继电器逻辑控制场景一般习惯用梯形图语言,因为梯形图语言与继电器连线组网很相似;而到了编写复杂算法时,则需要高级语言。当前述五种标准编程语言在某些场景下无法扩展用户想要的功能时,该系统还支持用户编写C/C++代码集成到运行时系统,或者引入第三方成熟的C/C++语言算法(比如视觉和人工智能等算法),来扩展IEC61131-3标准编程语言的适用范围。
突破点3:支持多核与多任务调度。即支持处理器多核任务分配和基于优先级的多任务调度,多任务类型包括周期任务、自由运行任务、时间触发任务和中断任务。
突破点4:支持灵活的数据组织方式。系统支持标准的数据类型,支持用户自定义数组、结构体、枚举和功能块;另外,支持指针类型,方便工程师组态更为灵活的应用程序。
突破点5:可集成多种标准通讯协议以及遵循PLCopen标准的运动控制功能。通用总线协议包括Modbus RTU、Modbus TCP、CANopen、EtherCAT、Ethernet/IP、OPC UA等。
突破点6:采用编译型的代码生成技术。编译型技术是将用户逻辑直接编译成可执行的二进制机器码,较之解释型技术,编译型技术的用户程序执行效率更高,大约是传统解释型技术的10倍。解释型技术的劣势在逻辑简单的小型PLC应用上还体现得不明显,当应用在中大型PLC,甚至运动控制器等对计算能力要求较高的控制器上时,其劣势就非常明显了。这也是前文所述国内厂商的小型PLC尚可采用自己的系统,但开发中大型PLC及运动控制器时则别无他途,只能购买国外软件的原因。
突破点7:支持在线“无扰”修改逻辑。可以在线动态修改用户逻辑,并且对现场控制流程无扰动。
突破点8:程序编辑和调试手段丰富。支持仿真、图形及文本语言的断点调试、任务状态信息查看、调用栈查看、交叉引用查看、在线变量读写、监视列表、变量趋势查看、未定义变量自动声明、输入智能识别和日志记录等功能。
国产化担起我国工业自主可控重任
自动化控制产品(可编程控制器)是智能制造装备的重要组成部分,是发展先进制造技术和实现制造业自动化、数字化、网络化和智能化的关键支撑,是实现产业结构优化升级的重要基础。
在当前复杂严峻的国内外形势下,加快攻克重要领域“卡脖子”技术,有效突破产业瓶颈,牢牢把握创新发展主动权,是我国经济发展的一项重要政策。
在此浪潮下,作为自动化控制层“操作系统”,国产IEC61131-3可编程系统更要当仁不让,主动挑起“核心技术”和“基础软件”应有的担当,为市场上绝大多数基于IEC61131-3标准开发的自动化控制器产品,提供自主可控、便捷高效的统一软件开发平台,为促成新一代信息技术与制造业的深度融合和创新集成,以及信息技术(IT)与运营技术(OT)的真正融合贡献“一己之力”和“一技之长”。
张海伟创业团队这款IEC61131-3可编程系统的上市,让我们看到了垄断坚冰融化的曙光,但我们猜得中开始,却不一定猜得中结局。原因就在于“操作系统”平台级软件带给用户使用习惯的惯性和在役在售产品开发一致性的约束能否被创业团队与工控行业用户联手击破,唯愿在自主可控、创新引领的新时代,会有更多像AnyControl这样攻克“卡脖子”点的产品不断诞生,并通过和国外产品的激烈竞争逐渐发展壮大,成为我国工业软件领域的国产化担当。