山东中烟工业有限责任公司青岛卷烟厂 山东青岛 266100
摘 要:面向智能制造应用、边缘计算平台、机器学习平台和大数据平台,基于OPCUA、MQTT通讯协议设计了一套物联网系统。IoT Hub是承接设备数据采集和控制软件和智能制造的桥梁,提供稳定、实时、高效的双向数据传递能力。作为OPCUA客户端,从各个应用场景接收控制指令,应用OPCUA协议实现控制命令的下发;作为MQTT Server接收物联网感知层采集过来的数据,为各个应用场景提供数据支撑。
关键词:工业物联网;OPCUA;MQTT;IoT Hub
Abstract:For intelligent manufacturing applications, edge computing platforms, machine learning platforms and big data platforms, an Internet of things system is designed based on OPCUA and MQTT communication protocols. IOT hub is a bridge to undertake equipment data acquisition and control software and intelligent manufacturing, providing stable, real-time and efficient two-way data transmission capability. As an OPCUA client, it receives control commands from various application scenarios and applies OPCUA protocol to realize the issuance of control commands; As an mqtt server, it receives the data collected by the perception layer of the Internet of things and provides data support for various application scenarios.
随着“工业4.0”、“智能制造”、“智慧工厂”时代的到来,云计算、智能装备、大数据、机器视觉等信息技术在工业领域中的使用程度日益加深。以私有云技术搭建的工业云提供了面向工业范围的,支撑生产制造过程、设备状态监控和管理运营等环节的应用服务。而物联网作为工业云的支撑环节,起到极其重要的作用。基于IOT,智能制造能够实现对烟草加工流程的实时监控,对生产设备运行状态的记录和跟踪,为优化加工流程、提高烟丝生产质量提供技术支撑。同时,IOT为机器学习和大数据提供所需的实时性好、准确性高的有效数据,保障他们服务功能正常、精准的运行。
本系统是基于OPCUA、MQTT通讯协议开发设计的。MQTT是一种基于发布/订阅模式的“轻量级”通讯协议。其最大优点在于,可以用极少的程序代码和有限的通讯带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网建设中具有强大的优势。而采用OPCUA协议将生产现场的实时数据(DA),历史数据(HDA)还有事故报警数据(A&E),在同一平台进行管理,形成统一架构,使物联网的监视与控制简洁流畅。同时又有了强大的安全性为其保驾护航[1]。
1 系统架构设计
在系统中,硬件PLC驱动层的数据采集和设备控制由专门的设备数据采集和控制软件完成,数据的处理和应用构造由智能制造平台负责,IoT Hub是承接设备数据采集和控制软件和智能制造的中间环节,具有为各个应用服务提供稳定、实时、高效的双向数据的传递能力[2]。系统概览图如下图所示:
图1 IoT Hub系统概览图
IoT Hub主要包含三个主要的功能:
(1)作为MQTT Server接收从底层设备数据采集和下行控制软件发送过来的全部数据信息,并将数据信息转发给大数据平台的Kafka组件,供机器学习和相关业务服务使用。
(2)根据大数据平台应用服务的控制流程,从大数据平台的应用接收相关底层设备的控制命令,并作为OPCUA客户端通过OPCUA协议将下行控制命令发送给设备数据采集和控制软件,由设备数据采集和控制软件通过PLC进行控制指令的执行工作,并且根据需要将PLC命令执行结果同步返回,最终汇聚到大数据平台上。
(3)根据智能制造生产控制流程,接收过程相关设备控制命令,并作为OPCUA客户端通过OPCUA协议将控制命令发送给设备数据采集和控制软件,由设备数据采集和控制软件通过PLC进行设备的控制,并且PLC需要同步返回命令执行的结果,汇聚到智能制造平台
[3]。
IoT Hub系统结构如下图所:
图2 IoT Hub系统结构
2 IoT Hub接口设计
2.1外部底层接口
外部底层接口分为两部分:一部分是外部底层数据采集接口;另一部分是外部底层命令接口
外部底层数据采集的接口通信采用的是MQTT协议。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一种即时通讯协议,由于其规范很简单,非常适合需要低功耗和网络带宽有限的IoT的应用场景。MQTT 是基于发布/订阅模式运行的, MQTT服务器负责发布,而MQTT客户端负责订阅,所有的客户端均与服务端保持连接状态。外部底层接口设计开发框架选择github开源项目MQTTnet。MQTTnet 是一个基于 MQTT 通信的高性能 .NET 开源库,它同时支持 MQTT 服务器端和客户端[4]。
2.2外部上层接口设计
系统外部上层接口主要包含两部分功能:一个是负责向上层服务应用推送所需数据,具体由IoT Hub中数据推送模块来负责;另一个是提供Web API接口,用来接收智能制造平台或者大数据计算平台发来的PLC设备控制命令。
系统外部上层接口定义包括如下接口:
(1)所有数据推送到上层进行数据存储(大数据平台Kafka);
(2)接收大数据计算平台发送过来的相关设备控制命令;
(3)接收智能制造平台发送过来的相关设备控制命令。
2.3内部接口设计
系统内部接口主要描述了IoT Hub内部各个功能组件之间的交互,主要包括如下几块:
(1)MQTT服务器推送数据信息到IoT Hub内部队列;
(2)数据推送模块读取内部队列;
(3)数据推送模块推送数据到数据存储区;
(4)MQTT服务器记录操作日志;
(5)MQTT服务器发送设备控制命令到OPC UA客户端。
3设备控制接口设计
3.1概述
系统设备控制接口是独立于IoT Hub的动态库接口,封装了PLC设备点位控制的流程,通过调用IoT Hub的REST API实现对底层PLC设备的控制。设备控制接口动态库由C#和Python语言编写,支持Windows和Linux平台,可以作为单独的模块方便被其它程序调用。
3.2设备控制角色
设备控制接口主要提供给智能制造应用和仿真模型控制使用,这些应用服务通过调用设备控制接口动态库中的封装好的接口函数实现对目标设备的控制。设备控制接口用例如下图所示:
图8 设备控制接口用例
3.3功能模块
从功能上进行划分,设备控制接口动态库主要由以下几个模块构成:
(1)设备操作模块:负责将设备定义成对应的代码编号,提供查询和控制设备的方法;
(2)设备控制流程处理模块:负责将多个设备控制流程转换为控制函数;
(3)HTTP推送模块:调用IoT Hub的REST API接口,将控制命令推送给IoT Hub;
(4)日志模块:记录接口调用的异常信息和调试信息。
4总结
基于OPCUA、MQTT通讯协议设计一套物联网系统,用于支撑智能制造应用、边缘计算平台、机器学习平台和大数据平台。其中,将IoT Hub作为承接设备数据采集和控制软件和智能制造的桥梁,为其提供稳定、实时、高效的双向数据传递能力。通过OPCUA服务器可以实现现场设备的组网,为采用不同通讯协议和数据格式的设备的互联互通提供统一的接口方案。
参考文献
[1]王静,李通. 智能物联网技术应用及发展研究[J]. 现代工业经济和信息化, 2021, 11(08):156-157.
[2]封帅博. 智能物联网技术应用及发展[J]. 信息记录材料, 2021, 22(11): 115-116.
[3]于旭冉. 基于OPCUA的工控信息化数据网关关键技术的研究与实现[D]. 北京邮电大学, 2019.
[4]陈文艺,伊伟,杨辉. 基于MQTT协议的Mosqutto数据订阅机制优化与性能分析[J]. 物联网技术, 2021, 11(11): 29-32.