工业物联网对制造企业的改变
“工业4.0”所构建出的“高效生产”、“高柔性定制”的美好愿景,吸引了众多制造企业的目光,同时也对制造企业的信息化系统提出了更高的要求和挑战。目前,一般制造企业的信息化架构还存在很大的不足:1)收集的信息类型很单一,比如,在设备端,可编程逻辑控制器、SCADA系统(Supervisory control and data acquisition)仍然主导着数据的收集、处理和控制过程。还不能做到对“人、机、料、法、环”的全要素连接。2)信息网络的流动不充分,各个部门的信息分离、孤立。数据的利用率低,分析手段单一。信息最多也只能在单个企业的局域网内部流转,无法汇总得到行业级别的数据。
工业物联网的目标是将“数以亿计”的“设备状态”、“传感器数据”、“在制品信息”及“业务信息”都能高效地汇聚到云端,进行存储、排序、分组和分析,最终转换为对设备、工艺的改进指令,从而驱动业务的优化决策,让制造企业能充分享受“数字技术红利”。因而,制造企业的生产设备、控制系统、工厂网络、企业运营都将发生重大变化。
阿里云IoT为此打造了“云、管、边、端”一体化的物联网技术能力,来打通和融合制造型企业的IT(Information technology)和OT(Operation technology)这两条路径,实现制造的数字化和智能化。其中,“云”提供了PaaS级的行业服务能力。“边”的内容指“智能网关或是服务器”上搭建一个软件框架,承载应用能力和连接能力。“端”指的是“设备侧”,如:远程仪表、智能传感器等。在“设备端”,阿里云IoT提供了AliOS Things产品。阿里云IoT体系希望通过IoT的技术路线,
工业控制器的云端显示实验
本文聚焦一个很小的工业领域场景,解释如何通过阿里云IoT Link Kit套件和DataV,针对一种工控设备,即“可编程逻辑控制器(Programmable Logic Controller) ”,简单快速的云化实验。即,如何进行简单的云端数据展示实验。实验主要有三个主要步骤:
- 数据读取——通过OPC协议来读取设备数据;
- 数据发送——通过Link Kits将数据发送到OTS存储;
- 数据显示——通过DataV对数据进行显示。
实验中的各个模块的关系如下图所示:
实验系统简介
首先,对实验系统的硬件进行一个简单的说明。按照设备的功能来划分,硬件实验台所包含的模块如下:
- 工业控制器及界面——控制器为Siemens S7-200 PLC,人机界面为Siemens Smart Line,人机界面为控制器提供了交互和界面展示的能力。
- 执行装置:步进电机、位置编码器、热电偶及可控硅加热器等;
- 开关和输出设备:一组触点开关、LED灯、及蜂鸣器等;
在完成实验台硬件的介绍后,下面就对实现的三个步骤展开说明。
OPC协议来读取设备数据
OPCUA协议的介绍
和PC的操作系统软件不同,在工业终端中的软件中,没有像Windows和iOS垄断性的产品,而是各个工业自动化设备公司提供自用的系统软件,如Siemens的SIMATICS,GE的iFIX,National Instrument的LabVIEW等等。
所以就造成了不同工业设备之间的专属软件和专用协议的壁垒。1996年,OPC基金会提出了一种解决方案——OPC协议 (Open Process Control Protocol)[2]。它实现了设备信息交换,而不再受制于设备供应商的通讯兼容性限制。在2006年,随着OPC-UA (Unified Architect)的提出,有更多的设备模型和数据模型的内容被加入到OPC协议中。
在经典OPC的技术架构中,OPC的结构是Client/Server模型。物理设备的原始数据或经物理接口和驱动直接发送给服务器,或通过SCADA发送给服务器。然后,服务器和客户端进行数据交换。所以,在我们的实验中,我们要首先实现一个OPC Server来收集工业控制器的设备数据。可供选择的OPC Server软件有:Kepware的KEPServerEX, Siemens的PC Access,GE的Industrial Gateway Server (IGS)等等。 在本次实验中,我们采用了KEPServerEX来作为OPC Server来读取设备数据。关于OPC Server的配置和使用,可以参考Kepware的教程,这里就不做展开。
OPCUA Client SDK 的数据通信实现
当OPC Server可以运行后,我们需要实现一个OPCUA Client来订阅Server上的数据。Client实现的方法比较多,考虑在后面的步骤中,我们需要使用IoT Link Kits的Java SDK,这里就使用OPC Foundation在github上提供OPCUA的JAVA SDK[3]。关于OPC JAVA SDK的工程配置,就不在这里展开。只简单说明两点:1) OPC Server的URL要选择“opc.tcp”声明,而不是http的方式;2) 设备数据的tag层级需要由符号“.”来隔开。
…
Link Kits的数据发送及OTS存储
当我们得到OPC数据后,就可以通过IoT Link Kits的JAVA SDK,经由MQTT协议将数据内容上云。然后借助IoT Link Kits的“规则引擎”就可以将OPC数据转存到OTS (Table Store)中,实现了数据的存储工作。
OTS创建操作和Link Kit的规则配置步骤如下:
- 在OTS控制台,创建一个OTS的数据表,数据表的内容需要同设备的上报内容一致,同时也要和数据的显示内容相一致。
-
- 在IoT控制台,建立一条规则(如下的toTableStore),其功能是将收到的MQTT数据转发到上一步骤提到的OTS表格数据。
DataV的数据显示
显示界面设计和数据源配置
在DataV的显示设计中,设计了三个区域,它们分别对应到了实验台的外部设备中的“触点开关”、“热电偶”及“电机编码器”的三种物理设备。
当显示画面控件放置完成后,接着就可以绑定“DataV控件”的数据源,也就是将上面提到的Table Store的数据表格和显示控件关联起来。首先进入到“数据”界面,显示如下:
然后,选择“数据源类型”及“操作”,DataV已经提供了对OTS很好的操作支持。这里,我们选择“getRow”,参数格式如下。
同步显示的界面结果
启动控制器后,就可以观察“本地的HMI显示”和 “DataV的云端显示”的同步效果。同步的显示结果如下视频所示。
[1] https://www.isa.org/
[2] https://opcfoundation.org/
[3] https://github.com/OPCFoundation/UA-Java