工业自动化开源平台的现状和发展!
了解开源运动推进工业自动化发展比较有说服力的办法,莫过于认识那些通过运用开源软件和开放标准而风生水起,在工业领域获得巨大进步、引领趋向,并为广大用户所接受和拥戴的公司,以及为推动开源软件在工业应用倾注全力的基金会组织。当然还应该了解围绕工业自动化技术栈,有哪些相关的主流开源项目。成立于2005年的Inductive Automation公司主打工业软件中的SCADA软件系统,被誉为世上成长最快的SCADA公司。公司开发和管理的Ignition社群在美国和在全世界工控界赫赫有名。通用的工业自动化平台Ignition只需一个服务器许可证的低成本,就可以无缝连接所有数据,轻松设计任何类型的工业应用,并立即将不受限制的工业和移动客户端部署到任何需要的人员和任何地方。平台提供SCADA、IIoT、MES、HMI、报警、报表生成、边缘计算、移动通信和企业应用等功能,Ignition平台服务器可以通过多种通信方式(如MQTT服务器和MQTT传输模块、具备MQTT通信功能的设备以及边缘网关等)与PLC、RTU远程终端单元、边缘计算装置、业务应用程序LOB(ERP、大数据、客户关系管理CRM等)通信,还可通过专用网络与基于网络工程设计终端、由网络推动的客户端、图形显示HMI以及移动终端等通信。
提起开源软件对Inductive Automation的重要性,公司的创建人毫不隐讳地表白:“我们之所以存在,是因为我们可以在开放标准的基础上进行开发。它帮助我们以最快的速度取得了今天的成就。”公司还十分重视引导最终用户认识开放软件运动对工业软件技术的影响。譬如在2018年Inductive Automation的Ignition社群大会上就请了IBM在英国和爱尔兰的首席技术官、MQTT的共同发明人Andy Stanford-Clark、Cirrus Link总裁兼首席技术官、MQTT联合发明人Arlen Nipper、Eclipse基金会执行董事Mike Milinkovich,以及InductiveAutomation公司软件工程联合总监Colby Clegg专门讨论这个问题。
自2019年之后,为实现“让整合集成变得简单、有趣还负担得起”的目标,并继续本着“梦想家和实干家”服务的努力,Inductive Automation推出建立在四个支柱之上的新SCADA,专注于减少不同行业解决方案所带来的阻碍和冲突,构建领先的解决方案的平台。这四个支柱分别是:新技术模式、新授权模式、新业务模式和新道德模式。新技术模式构建在利用开源,符合物联网和工业标准,以及开放接口,并且可以在几乎任何操作系统的环境下可靠运行。新授权模式是一种零麻烦的授权模式,随Ignition服务器出售的授权是一种对客户端或数据标签不加限制的授权,而且价格合理。新业务模式平衡了开发(新的创新)、质量保证、市场营销、销售、支持、财务、培训和专门用于交付新用户体验的其他20个功能,形成了一个运作良好的管道。新道德模式的核心是热爱公司所从事的事业和创立的软件,热爱Ignition社群,持续地为用户群服务,不以牺牲用户群的利益而牟利,更不会因为成功而将公司出售。建立在这四个支柱基础上的Ignition是世界上第一个真正的通用工业应用平台,可以连接整个企业的所有数据,快速开发任何类型的工业自动化系统,并不加限制地扩展系统。通用工业应用平台的特性有:不加限制的许可证模式,以服务器为中心的互联网部署,模块化的组态,跨平台的兼容性,强大的可视化性能,采用开放标准化的技术(如SQL、OPC UA、MQTT、Python),为在IT和OT间建立沟通的桥梁可与大型数据库和PLC连接,在一个通用的集成开发环境IDE中构建HMI、SCADA、MES、IIo T、报警、报表生成等应用,实现快速开发和部署。
受到树莓派和其他开放架构社群的启发,德国的菲尼克斯在2017年11月正式推出了PLCnext,一种实时控制和非实时任务一体化执行的PLC系统架构。作为在工业自动化领域引领趋势的开源控制系统,很快就被倡导开放流程自动化OPA的埃克森美孚的工程师们慧眼识珠,将它引入了实验基地,用于提供基本的计算和可配置的I/O。除了具有传统PLC的本色,PLCnext也是一个支持Linux的设备,它允许使用传统的IEC61131-3语言以及诸如C++、C语言和Python等编程语言,还可以在Eclipse 4DIAC(基于IEC61499的开源开发平台)、Visual Studio、Matlab等几乎任何IDE(集成开发环境)编译器上运行。这恰恰符合埃克森美孚追求的开放自动化的概念,有助于实现不依赖一家供应商,而是将多家软硬件的供应商按照O-PAS的系列标准构建开放型控制系统的目标,为确保可互操作、组态可移植、应用程序可移植和可互换打下基础。
开放架构的控制系统PLCnext为OT与IT融合给出了一种解决方案。通过建立四大开放平台,即开放式实时操作系统、开放式编程环境、开放式通信接口和开放式用户界面,将传统且稳定的PLC与现代的软件工程的灵活性与开放性结合起来,以满足智能制造的日常要求。在一个系统中实现传统PLC的实时控制的同时,引入基于互联网的非实时任务或其它非实时处理任务,依赖全局数据空间中间件GDS,为不同的实时数据处理方式和非实时数据的处理方式提供了数据交换的途径。
PLCnext的系统架构是一个执行于Linux操作系统(带有OSADL实时修补程序)的开放的固件平台。在实时Linux操作系统的大环境下,所有PLCnext控制器都包含一个可供传统PLC的IEC61131-3运行环境。各种以固件形式出现的部件构建其核心的功能性,这些核心部件包括系统部件、服务部件、I/O部件以及中间件。中间件起着将PLCnext固件平台与操作系统隔离的作用。用一个公用类的集合为用户提供调用系统的功能性(例如文件操作、套接字服务或线程服务)的可能性。包含在中间件中的全局数据空间GDS是PLCnext技术中一个特殊的部件,通过所谓的“数据端口”保证单个部件实时数据交换的一致性。
PLCnext技术所有的基本功能性都由系统部件实现。系统部件包括:系统管理程序和PLC管理程序(由这两个部件启动所有的其它部件,并监控系统的稳定性);用户管理程序建立在标准Linux的用户管理的基础上,由它提供PLCnext技术内不同任务执行的保证。每个PLCnext的技术过程都以实现用户定义的任务启动,这样每个部件仅取得所要求的存取权;eCLR—菲尼克斯IEC61131-3的程序Runtime;执行和同步管理程序ESM使PLCnext技术能以实时的方式执行IEC61131-3、C++和Matlab SimuLink的程序,其独特的性能使程序员可以用上述编程语言的组合创建应用程序而无需进行任何折衷。
随着PLCnext AppStore的创建,新的商业模式正在为集成商、最终用户,甚至为希望基于PLCnext技术营销其组件的第三方供应商所接受。通过PLCnext AppStore,功能甚至完整的应用程序都可以购买、授权并下载到控制器上。此外,系统更新和其他内容也将通过这个渠道提供,这使得终端用户下载它们就像获取和安装手机应用程序一样容易。
实际上PLCnext技术超越了程序员、用户和制造商几十年来建立的思维模式。过去很长的一段时间,用户只能被硬件和软件强制捆绑的系统、内部运行时环境和许多专有特性被绑定到某个特定的公司,PLCnext技术冲破了这个壁垒,迈入了开放自动化的领域,让每一个用户都可以扩展和定制以满足其个人需求。
如今,在美国德克萨斯州南部的油区,水力压裂和水平钻井并不是唯一能带来利润的技术。开源软件已经稳步渗透到工业自动化领域,并为系统集成公司提供了机会。例如netDNA服务公司依靠开源软件实现拖车式移动抽油机的自动化,抽油机可以通过移动设备直接控制水泵,实施远程管理压裂用水,还可以自动监测流量和水位。它们使用的开源技术内置在OPTO 22开发的边缘可编程工业控制器groov EPIC中。其中一个控制器安装在移动抽油机上,为监控抽油机的柴油发电机组的控制器(配有Modbus/TCP接口)增添了通信、可视化和安全性等功能。groov EPIC控制器和I/O模块不仅可以监测排放水平、吸力和流量,还可以向发电机组控制器发送信号,以便进行大功率水泵的启停。它还可以从发电机组控制器中提取泵的转速和相关的远程数据。每个控制器运用完全可独立运行的SignalFire网关通过Modbus/TCP接收来自无线传感器的数据。groov EPIC控制器使用两种内置的开放技术将数据发布到数据中心的服务器:来自OpenJS基金会的Node-RED编程工具和来自Cirrus Link的MQTT Sparkplug发布-订阅通信协议。由于控制器通过每辆拖车上的无线互联网协议设备连接到蜂窝广域网,现场的技术人员还可以通过平板电脑连接到网络,进行远程操作。上面描述的不过是边缘可编程工业控制器的一种SCADA应用场景。
如今,在美国德克萨斯州南部的油区,水力压裂和水平钻井并不是唯一能带来利润的技术。开源软件已经稳步渗透到工业自动化领域,并为系统集成公司提供了机会。例如netDNA服务公司依靠开源软件实现拖车式移动抽油机的自动化,抽油机可以通过移动设备直接控制水泵,实施远程管理压裂用水,还可以自动监测流量和水位。它们使用的开源技术内置在OPTO 22开发的边缘可编程工业控制器groov EPIC中。其中一个控制器安装在移动抽油机上,为监控抽油机的柴油发电机组的控制器(配有Modbus/TCP接口)增添了通信、可视化和安全性等功能。groov EPIC控制器和I/O模块不仅可以监测排放水平、吸力和流量,还可以向发电机组控制器发送信号,以便进行大功率水泵的启停。它还可以从发电机组控制器中提取泵的转速和相关的远程数据。每个控制器运用完全可独立运行的SignalFire网关通过Modbus/TCP接收来自无线传感器的数据。groov EPIC控制器使用两种内置的开放技术将数据发布到数据中心的服务器:来自OpenJS基金会的Node-RED编程工具和来自Cirrus Link的MQTT Sparkplug发布-订阅通信协议。由于控制器通过每辆拖车上的无线互联网协议设备连接到蜂窝广域网,现场的技术人员还可以通过平板电脑连接到网络,进行远程操作。上面描述的不过是边缘可编程工业控制器的一种SCADA应用场景。
OPTO 22的边缘可编程工业控制器groov的软件架构分为云端和边缘两层,上层有OT数据中心内装SQL Server、OPC UA、MariaDB数据库;在云端可以根据需要选择亚马逊的AWS、Google云、IBM的Bluemix或微软的Azure。而在边缘控制器内装有CodeSys,PAC Control,Node-RED可编程视觉设备的开发工具,美国Inductive Automation公司的基于互联网的工业自动化软件Ignition以及Ignition edge,OPC UA,MQTT/Sparkplug,OPTO 22自行开发的groov view和groov manager,还有ssh(密码网络协议,专对不安全网络进行安全操作服务)。将这么多外购或开源软件集成在一个集成开发环境中能顺利运行,得益于Linux的开放环境,也得益于多核的硬件架构。
“软件正在吞噬世界”这句话来自马克·安德森(Mark Andreessen)几年前的一篇博客文章,他指出:基本上所有的投资都流向了软件,软件正在颠覆传统行业,在某种程度上看整个数字化转型正在发生在人们能想到的几乎每个垂直行业,这是“软件正在吞噬世界”的反映。但是如果再看看软件行业,那些在软件之旅中走得最远的人或组织,他们都掌握了使用和参与开源和开源社群的艺术。原因在于,即使像微软那样巨大的公司,也没有可能建立一个完整的端到端解决方案并且快速创新,只有开源才可能解决问题。因而这些年来频频创建了大大小小的开源项目及其社群,而支撑这些项目的往往是一些著名的开源基金会,如Linux、Eclipse、Apache、Mozilla等。这些基金会绝大多数都集中在美国加州,除了Eclipse注册在特拉华州。多年以来Eclipse基金会发现,70%的付费会员和70%参与该基金会项目的提交者都在欧洲。所以随着时间的推移,这个基金会基本上变成了一个欧洲组织。与此同时,欧盟和欧洲各国政府有许多不同的策略,考虑到数字主权、公民隐私、道德AI等等,因此欧洲将不可避免地创建一个杰出的开源基金会,并获得国际影响力和声誉。这就是Eclipse基金会这个国际非营利组织将法定注册地从美国转移到比利时的理由。以下着重叙述几个工业自动化开源软件的重要推手,如Linux基金会,ECLIPSE基金会。
Linux被认为是现代控制系统和物联网设备最常见的操作系统。运用开放操作系统,用户可以使用经典的IEC61131-3库以及集成开源包,或直接使用C/c++编程来实现控制任务。由于开放源码的概念,现在几乎任何任务或功能都可以使用现成的个性化程序和源代码。通过Linux社群,程序、库和源代码不断得到进一步的开发,并以新的变体形式在免费访问的存储库中(例如在平台GitHub上)提供。开源社群帮助解决问题,但也希望有更多的人参与解决问题。这也是自动化工程师越来越多地进行反思的主要原因之一。与来自制造商的专有和封闭软件相比,通过免费获取源代码,开源程序通常能接触到更多的开发人员。因此,开源程序的质量和运行时稳定性通常高于商业软件。而正是这些因素在工业应用中具有决定性的重要性。对于开发者和公司来说,积极参与到社群中都是值得的。如果在工作中感觉有帮助,应该将发现的问题、扩展报告和反馈发到正在使用的开源项目的存储库中,使更多的人受益;同时也让这些组件变得更加安全,定期更新并提供更高的质量。
Linux基金会正在致力于贡献、赞助和管理支持工业物联网和边缘计算等技术的几十个项目。例如EdgeX Foundry是一个中立的、开源的项目,为物联网边缘计算和可互操作组件的生态系统提供一个通用的开放框架,希望能在统一市场并加速企业和工业物联网发挥作用。该项目围绕简化和标准化工业物联网边缘计算的共同目标,同时允许生态系统增加显著的价值。EdgeX Foundry利用了云原生原则,包括微服务和平台独立性,但其架构是为了满足物联网优势的特定需求,其中包括适应IP的连接协议,也有可用于非基于IP的连接协议,为广泛分布的计算节点提供安全性和系统管理,并可延伸到受高度约束的设备。EdgeX Foundry已经经历了快速的改进,从最初的2.5GB内存减少到128MB内存,适合嵌入传感器和控制设备。
Eclipse基金会是一个总部设在比利时的国际非盈利协会,由300多名成员支持,于2004年1月正式组建。如今它是Eclipse IDE、Jakarta EE和350多个开源项目的总部,项目涵盖广泛的技术领域(如物联网、汽车、地理空间、系统工程等)的运行时、工具和框架。它为全球的个人和组织社群提供了一个成熟的、可伸缩的、对业务友好的开放源码软件协同和创新环境。在Eclipse基金会的众多的项目中有多个与工业制造数字化相关的开源项目,例如基于IEC61499的分布式控制系统的开发平台4diac,基于JVM项目中实现OPC UA客户端和/或服务器端功能所需的所有工具Milo,提供工业4.0解决方案的下一代自动化的开源平台BaSyx,为MQTT提供客户端无缝集成框架的软件规范Sparkplug,以及工业4.0资产管理壳开发平台软件AAS等。
Eclipse基金会与其研究和工业合作伙伴一起,正在推动创建一个专注于开放工业自动化的工作组,目标是将工业级的开源软件引入车间,通过提供可靠的开源技术,满足工业和中小型企业向数字工厂发展的需求。工作组为创新公司提供了一个机会:分担开发可靠的开源软件的工作和成本;根据他们的需求积极塑造软件开发,以避免供应商锁定的专有解决方案,并加快上市时间。这建立在基金会认定“封闭和专有系统限制工业自动化发展”的共识。自从上个世纪计算机首次进入车间以来,工业自动化中使用的基本概念和计算范式并没有太大变化。大多数创新都局限于特定的供应商专有生态系统。随着互联网和随之而来的数字经济的出现,供应链和市场确实发生了变化。但是,工业自动化并不能充分发挥其潜力。在封闭和专有的环境中使用的过时的计算概念限制了新的生产能力和业务模型,只有在开放和高度互连的系统中才可能成为现实。显然只有那些最先克服这些障碍的企业将获得竞争优势,而这来源于易于理解、网络化和适应性强的开源开发流程带来的灵活性。
基金会的开放工业自动化工作组(Open industrial automation Working Group)提供了一个与供应商无关的治理结构,允许组织在新技术开发上自由协作。其核心原则有助于确保开发一个可靠的、开放的平台,这个平台可以自由使用、调整和重新发布,并且与用户的需求和战略目标同步。工作组还明确关注代码——这些代码是开源的,能够解决实际问题,并且能够在生产环境中可靠地运行。开源软件已经成为工业自动化软件和企业IT软件值得信赖的技术来源。特别是涉及实现工业4.0和智能制造至关重要的软件需求(譬如数据聚合、安全、设备管理、事件管理和数据分析,以及数字孪生管理等)。
一般来讲,开源软件技术栈包含基础软件、可嵌入到其他软件项目中的代码库和各类应用软件。
开源基础软件主要是指开源的操作系统。Linux首当其冲,因为现代的控制系统和大多数的边缘计算设备都选择Linux用作开源操作系统。RT-Linux要求在Linux基础上进行实时扩充或实时修补。目前主流的实时扩充和实时修补有Preempt-RT、Xenomai,OSADL(开源自动化开发实验室)的the Realtime-Preempt Kernel Patch、等等。
有许多开放源码项目提供了特别适合工业4.0应用程序的技术。Eclipse物联网工作组有28个项目,目标是通用物联网的解决方案,其中一些适用于工业4.0。还有一些开源社区如Apache软件基金会和Linux基金会等,也有与工业4.0相关的技术。
工业4.0的开放标准允许解决方案具有互操作性、模块化和不依赖供应商等特点。不同的开放源码项目支持下列相关标准:
OPC UA——Eclipse Milo是OPC UA的完整实现,它用Java编写,提供了客户端和服务器的标准实现。
MQTT/Sparkplug——Eclipse Paho和Eclipse mosquito提供MQTT消息传递原型的客户端和代理实现。mosquito使用C语言实现MQTT服务器,Paho使用多种语言实现MQTT客户端,包括C、c++、Java、JavaScript、Python等。Sparkplug是一个开源软件规范,它为MQTT客户端提供框架,以便在MQTT基础结构中无缝地集成来自其应用程序、传感器、设备和网关的数据。
PPMP——生产性能管理协议(PPMP)是一种用于获取生产设施性能分析所需数据的有效载荷规范。Eclipse Unide是一个开源项目,它遵行PPMP规范,并为PPMP提供SDK软件开发工具包。
oneM2M——oneM2M是一个服务层标准,定义了可被应用程序、网关和设备共享的通用业务功能。oneM2M中的行业域启用工作项(industry domain enablement work item)定义了使用oneM2M资源结构来满足行业需求的方法。oneM2M还定义了与OSGi、DDS、OPC UA和Modbus等标准的互操作,从而可以将工业数据统一地聚合并提供给应用程序。Eclipse OM2M提供了oneM2M IN(基础架构节点-平台)、MN(中间节点-网关)、ASN(应用服务节点-设备)和IPE(跨工作代理实体)的实现,可用于异构协议的互连。
物联网网关——Eclipse Kura提供了一个可移植的Java/OSGi边缘计算框架——用于构建可部署到工业4.0解决方案中的物联网网关。Kura支持多种现场总线协议,如OPC UA, Siemens S7和Modbus,简化了与PLC和传感器交互所需的步骤。用于蓝牙2.1、BLE、GPS、串行通信和GPIO/SPI/I2C交互的Java API,为传感器和终端设备集成能力完备了一套开箱即用的特性。
Eclipse 4diac是一个开源项目,促进了IEC61499在分布式工业过程测量和控制系统(IPMCS)中的进一步开发,并分发来自原始贡献者的研究结果。从一开始,它就提供了编写和执行分布式IPMCS所需的开发工具和运行时,还将OPC UA和MQTT集成到控制系统中,方便系统的连接。4diac已成为基于IEC61499的研究和开发的主要来源之一。它已成功应用于多个工业系统,包括制造系统、物流、电力和能源应用、机器人和楼宇自动化。
Eclipse Kura支持将签名代码远程部署到物联网网关。这确保了完整性,并确保在工厂层进行代码部署的来源无误。
Eclipse Leshan是LWM2M设备管理协议的实现。LWM2M支持设备认证和授权。
OMA LWM2M——轻量级M2M(LWM2M)是来自OMA的设备管理协议。Eclipse Leshan是LWM2M的Java实现,Eclipse Wakaama是C实现。
Eclipse hawkBit提供后端框架,用于向受约束的边缘设备进行滚动软件更新,以及连接到基于IP的网络基础设施的更强大的控制器和的网关。
Eclipse Hono提供远程服务接口,用于将大量物联网设备连接到后端,并以统一的方式与它们交互,而无需考虑设备通信协议。Hono提供可伸缩且安全的传感器数据采集,并将数据转换为可集成到企业IT系统的一致性事件。
Eclipse Kapua提供了一个模块化的物联网平台,用于管理和集成物联网数据和事件。Kapua通过消息路由服务和REST API实现了更容易的IT集成。这提供了一组一致性的API来支持OT和IT集成。
Apache Spark是一个快速、通用的数据处理框架,对物联网系统具有高度的可扩展性。在Spark上运行的应用程序可以用Java、Scala、Python和R编写。
Eclipse Ditto是一个创建和管理数字孪生的框架。Ditto公开显现一个统一的基于资源的API,可以用于与设备交互,而设备是从不同设备类型的复杂性以及它们如何连接中抽象出来的。这有助于将设备组织成不同的功能性方面,并且可以根据正式的设备元模型(基于Eclipse Vorto)选择性地实施数据类型分类和数据验证。
Eclipse Kura提供了REST和Java中的开放API,以及一个基于MQTT的通信层,可以利用该层与现场设备和资产进行交互。Kura驱动程序提供了一个硬件抽象层,降低了设备交互的复杂性,简化了与网关连接的设备的通信。Kura为与网关连接的每个设备显现MQTT和REST API,允许执行按需的读写操作和远程读写操作,并为这些设备提供数字孪生接口。
Eclipse BaSyx项目是德国研究项目BaSys 4.0的开源成果,为加速工业4.0解决方案的开发而设置的下一代自动化开源平台,提供通用工业4.0组件和一个可扩展的软件开发工具包(SDK)。Eclipse BaSyx平台着重于解决各种挑战,诸如可变生产、实现个性化商产品生产、利用大数据分析、连接异构设备和系统,以及使停机时间最小化和其他相关成本最小化等。
开源软件及其社群为工业企业的数字化转型提供了开放创新和开放合作的强有力手段。在这个意义上讲,企业只有掌握了开源的艺术,才可能在数字化转型的过程中更有活力和效率,才可能是持续的。数字化基本上意味着企业的生产、管理、经营和服务等所有环节都应该有统筹而且相互关联的数字化表达和运行,因而企业必定成为一个以软件为中心的组织,开源几乎是达到这一目的关键手段。数字化转型需要由开源驱动,而开源驱动保证了企业能实施开放创新和开放协同合作。
页:
[1]