开放自动化成为未来自动化控制系统的发展潮流,同时它也成为一个口号,频繁出现在各大自动控制厂商的宣传文案中。那么,开放自动化到底指的是什么?什么样的系统才是一个理想的开放自动化系统?笔者谈谈自己的看法。
何为开放系统?
我们首先来看看什么是开放性系统?目前还没有必要去给它一个确切的定义,笔者认为一个彻底的开放性系统应该具有下面几个特征:
连接任何事物( Connect to anything )
不同厂商的软件,硬件都能够方便的接入开放性系统 . 显然,目前最好的开放性系统就是互联网。几乎快实现万物互联的理想目标了。要知道,计算机网络并不是一开始就采用开发性协议的,以前各大公司的计算机网络都是个搞一套,比如 IBM 公司的 SNA 网络, DEC 公司的 DECNET ,都是当时十分流行的计算机网络产品。它们之间难以互联互通。后来美国建设 DARPA 网络过程中,设计了简单的 TCP/IP 协议。逐步使计算机网路成为互联网现在这个样子。而 ISO 标准化委员会著名的 OSI 七层模型就称之为“开放系统互联参考模型”。
现代 自动控制系统 大多数是基于网络实现的。在网络中接入了大量的 传感器 , PLC ,计算机, 人机交互屏幕 等设备和软件。一个开放自动化系统,首先要做到不同厂商的设备能够互联互通。自动化领域已经开放了各种现场总线,比如大家耳熟能详的 现场总线 有 modbus , fieldbus , CANOpen , EtherCAT 等等。
目前,不同厂商的设备之间互联还比较困难,有时需要各种各样奇奇怪怪的网关产品。
要实现设备真正意义上的互联互通,仅仅依靠协议是不够的,还需要语义的标准化。只有互相采用熟悉的语义,沟通才能进行。语义标准化的难度和工作量更大。在自动化工程的具体实践中,我们经常会发现;世界上最长的距离是两个带有 Ethernet 接口的设备却无法交换数据。
设备无法互联互通的另一个后果是协议和软件系统成为了国际大厂市场的护城河。其它中小型企业的创新产品无法接入以国际大厂自动控制系统为主的自动化系统中。这也是我们自动化领域国产化产品水平不高的一个主要原因。
任何数据可以被访问( access any data )
系统中的大多数数据可以通过标准化的协议和信息模型被外部系统访问。标准化的协议和信息模型可能包括 OPC UA , MQTT 等等。
AI 和大数据在工业自动化领域的应用将会在未来越来越普及。目前大数据公司面临的最大困惑是,工业大数据被传统封闭的自动化系统困死在信息孤岛中,业主不敢动,系统集成公司不愿意开放给第三方,大数据公司难以获取现场数据,大数据面临着没有数据的尴尬局面。大多数工业云平台还只是停留在 PLC+ 网关的方式获取数据,或者与控制系统建立并行的数据采集终端。
理想的开放自动化系统因该在保证系统安全的前提下,向第三方提供各种数据。是大数据分析, AI 训练,数字孪生系统能够获取足够的数据。
在任何地方运行( Running on anywhere )
软件在自动控制系统中的作用越来越大,开发自动控制系统的软件的效率至关重要。不过到目前为止,自动控制领域基本上和早期的计算机行业类似,软件严重地依赖所运行的设备。不同厂商的 PLC 采样不同的编程工具软件,开发的程序基本上无法在其它 PLC 厂商的产品上运行。软件的重用性极低,更换厂商的学习曲线陡峭。
一个开放自动化系统,应该实现 “一次编程,任何地方运行” 的理想。 IEC61131-3 /IEC61499 标准都在努力地实现 PLC 编程语言的标准化,加上 Soft PC 技术,部分实现软件的可移植性,可重用性的目标。
任何东西都可以被替换( Anything can be replaced )
一个大型的工业自动化系统往往要运行十几年,甚至几十年。对于一个封闭式系统而言,设备的维修,升级和替换就是一个很大的问题,比如在太阳能行业,硅片切割设备上千万元一台,设备早过了保修期,甚至当年开发这个设备的工程师都已经退休了。内部控制器还是 Intel 的 386 CPU ,国内维修人员也难以找到配件,目前只能拆东墙补西墙。
如果是一个开放自动化系统,我们完全可以使用现在的控制平台替代老旧的控制器,延长设备的使用寿命。
一个理想的开放自动化系统,应该能够将旧设备上的应用程序移植到新的设备上,软件资产的生命周期和硬件控制器的生命周期分离。既可以独立地更新软件,也可以独立地更新硬件。
共同参与开发( Development By everyone )
一个开放的系统其实是一个生态系统,能够由许多人参与其中,他们可能是重要的自动化厂商,也可以是系统集成商,用户和第三方增值开发商。众人添柴火焰高,社会化开发的生态系统才富有活力。
在传统的自动化系统中所有的 PLC 功能块库, SCADA 组件几乎都是由公司自己开发的。第三方难以涉足其中,而用户几乎只有组态的权利。
而在一个理想的开发自动化生态中,开发工具,运行时等技术也许是核心厂商开发的。但是其它的开发厂商能够参与开发功能块库,应用程序。他们可以采样类似手机 App 市场那样推广,并获得应有的商业利益。富有创新的技术能够迅速地导入。
如何构建开放自动化系统?
如何构建开放自动化的生态系统?笔者认为至少要在下面几个方面做出努力。
开放通信协议和信息模型
基础物理通信技术:以太网, TSN 以太网, CAN , 5G 等技术将成为开放自动化的主流通信方式。其上的通信协议包括 TCP/IP , HTTP , modbusTCP , websocket , MQTT 等等。
信息模型主要解决语义的问题。为了使系统中的个部分能够充分地互联,实现所谓的 “插入即生产” 等工业数字化目标,各种资产的数字化信息模型的标准化和工业界达成广泛共识就非常重要。目前 OPC UA 主要的一种信息模型。
采用统一的信息模型姑且重要,而为自动控制领域的各种资产建立数字化信息模型更为重要。要对成千上万的传感器,设备建模。这是一个巨量的工程,而且需要业界达成共识。
作为一个开放自动化系统,需要能够为建立信息模型提供有效工具。
标准化的设计语言及其运行环境
开放自动化系统普遍采用标准化的编程语言,比如目前流行的 IEC61131-3 PLC 语言和未来的 IEC61499 功能块。然而,仅仅采纳了标准化语言还是不够的。我们知道,无论是 IEC61131-3 的梯形图, ST 和功能块,还是 IEC61499 的功能块应用。它们都还只是“高级语言”,最终需要转变成为“机器代码”或者“中间代码”, 最终下载到 PLC 中的运行,它们或者是特殊 CPU 的机器代码,或者是厂商自定义的中间代码。这些技术都是严重依赖厂商的。而标准没有对“机器代码”或者“中间代码”,的格式提出格式规范。这导致了 PLC 程序无法直接在不同厂商硬件上运行。开放自动化系统将公开目标代码的格式,并且采样类似 XML 这样的语言来描述。
PLC 的程序下载,更新,运行监控称为管理协议,它们同样需要标准化和开放协议。这样才可能实现“一次编程,到处运行“的梦想。
另一个十分重要的方面,就是要规范和开放功能块库的开发技术。 对于 IEC61499 而言,用户可以使用 ST 语言,来构建基本功能块和复合功能块。有些开发工具可以使用 Lua , java 来编写功能块库。如果要开发涉及通信,硬件的服务功能块,使用 C++ 更加合适。开发环境如何向用户开放运行时的功能块接口,使用户,第三方开发者开放功能块库对于构建开放自动化生态同样十分重要。只有丰富的功能块库出现,才会带来开发自动化的繁荣。功能块库对于开放自动化而言,就相当于 App 和智能手机的关系。
软硬件解耦
人们会问,为什么许多公司都声称采用 IEC61131-3 标准,但是它们的软件为什么仍然没有办法相互兼容呢?这主要由于像 PLC 这样的控制设备的程序是严重依赖硬件的。尽管控制语言和信息模型标准化了。但是大量与硬件有关的程序库,功能块是厂商依赖型的。
理想的开放自动化系统,应该允许开放第三方硬件以及相关的功能块库。
与 IT 技术充分融合
TCP/UDP , MQTT , HTTPS , Web API 等 IT 领域的通信协议成为开放自动化系统的接口。 这些都是 IT 领域常用的通信协议
IT 领域和自动控制 OT 技术的界线越来越模糊,自动化会不断地导入 IT 领域的新技术,比如 AI ,大数据,时间序列数据库,云平台,容器技术等等。一个好的开放自动化系统将促进 IT 和 OT 技术的相互融合。
跨平台 HMI
长期以来,自动控制领域的人机交互接口设备大多数是基于 Windows OS 实现。而且 HMI 的接口协议和信息模型各不相同。许多 HMI 使用 C# 或者 C++ 实现。近年来也有基于 Linux/ QT , android 或者 NodeJS 。 UI 设计采样 HTML5/CSS/JavaScript 这样的跨平台,开放性技术。
理想的开放自动化的 HMI 应该是跨平台的, HMI 可以允许运行在基于 windows , Linux , android 工业屏上,也能够运行在 Web ,手机和平板电脑上。实现多屏融合。要实现这一点,使用 HTML5/CSS/JavaScript 可能更加合适。
开放自动化系统会成功么?
也有人担心,开放自动化时代是否真的会到来,毕竟它动了某些大佬们的 “奶酪“,原来自动化领域的大公司可能会失去一部分原有的优势。对于这一点,我还是比较乐观的。开放自动化会被一批富有情怀和创新精神的企业和个体不断地推动,为自动化带来繁荣和创新。大公司也会积极参与开放自动化的潮流中来,开放使自动化市场的蛋糕更大了。也会为它们带来新的发展机会。 例如施耐德公司最近就发布了基于 IEC61499 的 EcoStruxure ™ Automation Expert ( EAE ),融入了他们早先收购的 nxtControl 公司的技术。
推动开放自动化发展的另一个重要力量将是开源项目,它们会起到鲶鱼效应。给这整个市场带来活力。要不然,开放自动化会被人玩坏来了。人们的担心并不是空穴来风。历史上有过这样的事情发生 。