经过多年的探索,容器化技术已经对工业自动化产生了良性的影响。据不完全统计,在2019年的汉诺威工业博览会上有750家厂商、超过2000种产品用到了容器化计算技术。应用的方面包括流程自动化的虚拟化平台、边缘计算、SCADA等等。
容器化应该是今后虚拟化的重要手段
“软件正在吞噬世界”的说法蕴含了软件在系统中发挥着“基础设施化”的作用,而云计算软件开发方法成为软件开发的主要方向。经过几年的摸索,云计算开发方法在工业自动化软件开发应用的虚拟化方向有了很大进展,实际运用的结果验证了容器化在开发工业自动化软件中所显现的优越性。
同样是虚拟化的技术,容器化较之虚拟机(VM)明显有着以下优点(见图1):
图1 容器化应用软件与虚拟机相比,APP颗粒度更小
◆APP的颗粒度更细,有利于形成轻量级的容器;
◆所需的硬件开销要小得多;
◆应用代码及其相关的软件环境打包后安排在操作系统基础架构上的容器引擎执行运行,无需其它任何支持;
◆容器中各个应用程序相互隔离,这种分割保证了信息安全;
◆应用代码的更新升级可以远程部署。
◆总之,容器是独立的,可以通过特定的平台按照需要来选择和部署,给予使用者很大的灵活性;同时一个单独而且封闭的容器又提供了原生的信息安全。
流程自动化工业对软件容器有着其特殊的需要
流程自动化需要能在很大范围容纳各种各样的应用软件,诸如先进流程控制APC、流程优化和资产管理等,同时能通过标准化的接口(如OPC UA)交换数据。另外,流程自动化的容器需要在不同的物理地点和不同的主计算机硬件中移动。另外对于大型的操作来讲,像Kubernetes这样的编排工具,可以用来维护、组织和管理容器库,按照资源的可用性自动平衡计算负载。下面列举若干容器化技术应用在不同公司的表现。
1、Honeywell运用虚拟化的实例
Honeywell在容器化技术的应用结合需求,步子稳,进展大。不但在服务器层级运用于HMI和应用程序中,而且也开始扩充到流程自动化的其它方面,如用于I/O的软组态。Honeywell Process Solution正在考虑让软件和硬件解耦的可能性,不仅仅在服务器中运用容器化技术,也包括控制器和I/O层级运用容器化技术。Honeywell开发Experion LCN(ELCN)有效地仿真了TDC 3000这样的老系统,使得公司的老客户得以将其在知识产权上的投资“无限地延寿”。它可与老系统100%的二进制兼容和互操作。2018年6月在Honeywell的用户组织的大会上向公众宣布,TDC 3000相同的代码可以不加修改运行在虚拟环境中,大大减少了可能产生技术风险。TDC环境的虚拟化带来许多附加的利益,包括使工程师具有应用Honeywell云基的虚拟工程平台(Virtual Engineering Platform)的能力去提供TDC的解决方案。自此以后,Honeywell一直在继续其虚拟化的版本,在2019年的用户大会上宣称其Experion PKS HIVE用于高度集成的虚拟环境。简言之就是具有虚拟化的特性的解决方案以及硬件与软件的解耦已经在应用程序这一级和控制器和I/O这一级实现。
2、流程工业中另一个容器化应用实例-Module Type Package(MTP)
由德国流程工业用户组织NAMUR发起的模块化类型包MTP利用现有的DCS和PLC的部件无缝集成为流程装置的自动化单元,强调在优化性价比的同时将工程量降至最低、加快工程交付进度。MTP本质上是运用容器技术创建易于集成、并运用预定义的自动化模块单元实现模块化的流程装置。这种预定义的自动化模块化单元,易于按照生产的需要添加、安排和调整。每个MTP都符合标准化的方法论和框架,包括将它整合到一个模块化的装置中所有必要的信息(如通信服务、HMI描述、维护信息等)。例如ABB的MTP提供清单中包括ABB Ability系统800xA操作流程和编排的智能模块,由一个开放架构的骨干网通过OPC UA通信将编排层与模块层链接(见图2)。
图2 ABB在流程自动化MTP运用容器化技术的框图
3、施耐德的动态
施耐德正在向越来越接近边缘的场合运用容器化技术,在预置的数据中心或云端运用容器,或者在嵌入设备中的嵌入式系统运用容器技术。施耐德已经在产品注册平台、云端的历史数据库、云端工程软件和云端分析软件中运用了容器技术。这些系统受到微软和Red Hat等公司的支持,因为它们都是原生的云基平台。
施耐德预测,基于容器的流程自动化OPA愿景的实现将始于采用像IEC 61499这样的标准,因为IEC 61499支持以应用软件为中心的自动化设计,而与其下层的硬件设备独立无关。61499围绕功能块建立事件驱动的模型,可以用来解决在不同的供应商之间确保可移植性、可组态性和可互操作性的问题,同时解决硬件与软件解耦的问题。同时,61499允许独立地开发具有跨平台功能的容器。
4、SICK公司的实例
德国SICK公司以生产传感器闻名。他们新近推出的TDC(Telematic Data Collection)网关就是运用Docker容器技术的典一个产品案例(见图3)。TDC可以在智能制造、工业物联网等场景作为边缘网关,采集来自各种传感器、PLC的数据,它支持I/O Link和其他现场总线(见图4)。
图3 SICK的TDC边缘网关
容器化技术在工业自动化工程应用的一些优点
尽管容器化技术在工业自动化领域的应用还刚刚开始,但已经显现出一些引人注目的优点:
1、过去用传统的方法做项目要花一年半的时间,现在只要先在云数据中心用虚拟化的方法进行工程设计,等完成后,只要把虚拟化的软件拷贝到物理设备中,仅交付一个带有应用程序的容器就可以了,节省了许多调试时间。而且容器技术使灵活性达到新的水平,通过构建样板库,其内存储许多事先准备好的应用程序。使用时只要进行部署就行,不用从头开发。
2、由于容器处在实际的操作系统之外,因此当操作系统升级时对容器内的应用软件不会产生显著的影响。在运用容器化技术后,原来专门设计的相互配合运行的软件和硬件表现了越来越多的独立性,以致最后导致硬件、操作系统和应用软件全都呈现相互无关的独立特性。
3、运用容器化技术,当软件和操作系统需要升级和替代时,不会产生许多难以克服的痛点。即使实现不了“无停车的替代”,运用容器化技术可以做到显著快的替代。从最终用户的角度看,这可是一件很有用的事情。
4、容器化也给予制造商对知识产权和领域知识的保护,以及在技术升级期间维持生产继续而不致停顿。由于硬件从应用软件中抽象出来,也可以想象这样的场景:把应用软件移植到更可靠的平台所需停机的时间最短。
有关容器化应用发展问题的讨论
1、随着基于Linux的开源容器和编排技术选项其实际的表现越来越引人注意,有理由提出如下问题:是否这样的技术将是促使开放流程自动化论坛OPAF迈向互操作性和即插即用的流程控制的路径?简短的回答:是的,确实如此。运用容器使得应用软件从硬件中抽象出来,或者从另一个角度说,同样的应用软件可以在不同的硬件中执行,这只取决于特定的安装方式。如果界面是适当设计的和定义的(例如基于国际标准IEC 61499),那么容器化可移植应用软件,或者不同供应商所提供的的应用软件是能够实现互操作性的。
2、当前还没有适合于确定性控制任务的实时的容器化/编排的方案。如果有更多的自动化公司一起来参与创建实时的Dockers和Kubernets的实现,这样的结果完全可以期待。
3、每个公司可以持续地开发最佳适合于其产品系列的软件包,而这些软件由于有IEC 61499的支持可不断提升其可互操作性。由此可见,容器化和编排技术一定能推进互操作性和开放性。
4、虚拟化的策略也可以以专有的方式提升和推进。美国自动化咨询集团ARC虽然认同这一正交性(orthogonality),不过他们主张:正像把知识产权从控制语言和专用语言中解放出来,容器化和编排也需要成为工业方法的一部分,而不是专为某一种机型准备具有高度的专用性。让容器和编排进行标准化,这才是走出死胡同的出路。
在下一个五年或更多一些时间内,云软件开发技术相比其它形式的软件开发,显然会成为主要的形式。而且企业软件、嵌入式软件和云软件这三种软件开发将会极大地融合汇聚。有理由期望用于云计算业务的开源软件技术将会快速发展和推广,所有软件的开发将会使用云软件开发的方法。值得关注的是,这一融合汇聚将会被迅速发展的开源软件的步伐所推动,而不是由目前工业自动化行业所采用的软件开发方法迈着缓慢的步伐在前行。