吕元 夏振华 肖一帆
摘要:站在大数据与智能一体化的发展角度分析早期工业体系,存在三个显著问题:①大量现场设备的分散管理造成了人力资源调度上的匮乏,信息交换的困难;②诸多的传感器数据及工业信息采集无法实时同步更新;③针对每个现场设备的监管存在滞后性潜在隐患,容易造成财产流损。基于此,本文围绕以PLC工业设备为例,通过将大量现场设备接入同一局域网下,利用物联网终端设备对各PLC设施进行数据采集与管理,并通过MQTT(消息队列遥测传输协议)协议上传至云平台进行数据的存储与查询,从而构建工业物联网监管平台,以此满足管理人员对于读取设备信息和监管维护设备的要求。
关键词: MQTT;物联网终端;PLC
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2022)10-0113-03
由于早期传统工业时代,互联网与科技发展缓慢,工业信息化水平落后,造成工业工厂之间被迫形成相互封闭的局面,使得在处理诸多突发问题时,工业信息存储及数据交换存在困难,对事故與问题发生无法进行及时监管与分析。工作流程的推进也完全依赖现场人员对设备近距离操作。然而伴随着互联网时代的到来,构建工业物联网监管平台成为可能。因此,该系统设计目的皆为实现远程操作下,实时准确地掌握设备的运行情况及工作进度,减少现场人员的工作量,实现跨区域的设备数据交换及物联网终端模块对PLC的管理与监控,从而改善工业生存环境。
1 系统简介
含油污泥主要来源是油田和炼油厂,产生点可能来自开采、输送、炼制和污水处理等工序[1]。本文以含油污泥处理设备为例,进行PLC远程监控系统设计。将PLC远程监控系统分为三个模块,分别是数据采集模块,数据传输模块,云平台模块。其中数据采集模块包括物联网终端模块和PLC控制器;数据传输模块为MQTT协议上传数据;云平台模块由服务器和数据库构成。
2 设计方案与设计流程
首先,PLC控制器对工业现场设备各类传感器数据进行采集。其次,物联网终端模块读取PLC控制器的运行状态,并访问其数据寄存器中的数据。再经MQTT协议上传至云平台,保存在服务器的数据库中。最终由工作人员进行增删改查等操作,实现对PLC设备的参数读写,数据采集,状态监控诊断,数据存储与转发等功能,完成对工业现场设备的远程监管与控制。
因此,本系统分别针对数据采集模块,数据传输模块,云平台模块三个模块进行设计。
2.1 数据采集模块方案
由于PLC产品的人机接口与数据处理的管理能力存在技术局限。在通常的控制系统中,以计算机或工控机为上位机,完成数据通信。以PLC为下位机完成现场数据采集和设备控制,实现管理控制一体化[2]。
本系统中,为解决PLC控制器的数据传输标准问题,将西门子Snap7通信协议和Modbus TCP通信协议移植到物联网终端模块中,实现兼容不同型号的PLC设备的同时,保证数据传输标准的统一。
2.1.1 Snap7通信协议的实现
Snap7开发支持以太网S7协议通信,针对PLC-PC通信,与Profibus,Mpi相比具有很大优势[3]。本系统中直接引用Snap7提供的动态链接库Snap7.dll中的S7Client类,即PLC作为服务器,物联网终端模块树莓派作为客户端。
Snap7应用流程如下:
API中主要应用到的操作如下:
1) Administrative functions,系统操作,包含创建、销毁客户端对象,将客户端对象连接到PLC,设置连接类型(PG/OP/S7Basic),设置连接的地址,本地和远程TSAP等。
2) Data I/O functions,数据读写,包含读写数据区域,读写DB区域,读写IPU区域,读写定时器,读写计数器等。
3) Directory functions,提供PLC块的详细信息,包含AG块数量,AG块阻止列表等。
4) Date/Time functions,读写日期时间,包含读取日期时间,设置日期时间等。
5) System info functions,系统诊断,包含读取SZL-ID和SZL-Index,读取系统状态列表,返回CPU的序列号等。
其中SSL表征系统状态列表。所有的诊断时间按出现的先后顺序登录在诊断缓冲区中,可以通过模块信息和诊断缓冲区等查看系统状态列表信息。使用Snap7调用接口即可获取SSL内容。
PLC内部的数据共享区DB中存放着采集的数据,对此进行如下定义:
物联网终端模块中安装Node.JS和Snap7库。通过运行代码实现对PLC数据寄存器中数据的读取和写入。
2.1.2 Modbus TCP通信协议的实现
物联网终端模块中安装Modbus库。PLC采集到的传感器数据都存放在Modbus的保持寄存器中,分布在不同的地址范围。通过对保持寄存器中的数据进行读/写的部分程序,运行程序从而获取PLC信息。
2.2 数据上报功能实现
传统工业生产过程中的数据通常只在局域网内传输,一般不会面临第三方的恶意嗅探或窃取。然而,随着工业物联网的发展,工业生产过程中越来越多的重要数据需要突破局域网的限制,上传至云端[4]。
本系统中数据传输采用了MQTT协议。其中,MQTT Broker的作用是对数据进行存储与转发,但不对数据进行处理。MQTT只是完成数据传输,但未对数据格式进行要求。考虑到阅读性强,编写简洁,网络传输效率高的特点,本系统采用JSON的数据格式进行数据上传。数据下发包含的信息有:设备id,设备控制,操作节点,修改数值等。
2.3 云平台
云平台以服务器为核心,以MQTT协议为基础。云平台主要由搭建的MQTT Broker服务器和MongoDB数据库组成。其中,MQTT Broker服务器用于接收物联网终端模块上传的数据并对其进行中转处理,数据库主要用来存储相关的设备信息和用户操作日志。
2.3.1 EMQ X MQTT Broker 服务器
MQTT Borker服务器采用了发布/订阅的形式实现双向通信,支持服务端反向控制设备。订阅者通过向服务器订阅它需要的主题负载,发布者发布了一系列固有主题给服务器,服务器通过筛选处理发布者发布的这些主题,选择出订阅者需要的主题,然后将这个主题的信息发给订阅者,订阅者再处理服务器发过来的消息。
此处直接利用EMQ X官网提供的库和各种插件,完成客户端的连接,主題订阅等功能,从而为物联网终端模块,作为客户端连接MQTT Broker上传设备及传感器数据并订阅下发的指令主题。
2.3.2 MongoDB 数据库
数据库存储的数据包括设备的一切信息及用户数据,本篇采用BSON结构对数据进行处理。由Node.js运行MongoDB模块,从而连接到数据库对数据进行处理。
3 测试及结果展示
物联网终端设备收到MQTT下发的消息订阅后,将PLC设备信息和传感器数据进行采集,并打印到树莓派界面中。根据测试图可知,传感器数据可以准确地上传至物联网终端。
为存储多个PLC设备数据,可以通过设置不同id,修改DB数据共享区或Modbus保持寄存器的寄存器地址来实现。
远程工作人员通过Windows连接MQTT客户端,从平台中订阅“upload”主题,物联网终端设备将采集到的PLC设备状态和传感器数据通过MQTT协议传输到云平台,调出数据显示。
由于系统前端采用的B/S架构模式,且物联网终端模块具有定位功能,登录浏览器后,可通过选中工业现场设备的具体位置,实时查看PLC数据寄存器存储的实时数据,数据可呈现成曲线或表格形式。测试图中采用曲线形式,更加直观反映数据变化。
管理员通过登录自己的账号,可远程查询实时数据或历史数据。由于MongoDB数据库能够提供大容量存储,所以可追溯一个月范围内的历史数据。管理员也可主动设置起始时间,灵活筛选显示需要的设备数据。
4 总结
测试环节中,测试了PLC控制器对工业设备及传感器数据的采集情况,并成功上传至物联网终端模块,验证了Snap7通信协议在Linux架构上的成功移植。其次,在Windows系统上通过云平台访问数据库,订阅主题,得到了工业现场的实时数据,达到了远程实时监控设备的效果。
4G技术让物联网技术有了质的飞跃,5G技术让万物互联得以更加的稳定,高效和安全,为实现物联网工业监控提供了巨大的动力和帮助。随着嵌入式领域的发展不断趋向成熟,嵌入式成本也在不断降低,这也为整个工业监控系统降低了不少成本。作为一个软硬件紧密结合的最终系统,可以提高整个系统的可靠性[5]。经由以上的测试结果分析,基于MQTT的物联网终端设备的PLC远程工业监控系统能够实际应用在工业体系中,并且有能力应对多台工业设备同时工作的情况,达到良好的监管效果。
参考文献:
[1] 李忠卫,李朝廷.含油污泥处理技术方案[J].油气田环境保护,2020,30(1):40-43,62.
[2] 凌建华.关于上位机和西门子PLC通信的研究[J].计算机光盘软件与应用,2014,17(20):305-306.
[3] 魏学舟,刘涛.基于Snap7的PLC上位机监控软件开发[J].设备管理与维修,2018(14):129-131.
[4] 牛浩男.基于MQTT的工业物联网接入平台研究与设计[D].桂林:广西师范大学,2018.
[5] 陈启军,余有灵,张伟.嵌入式系统及其应用:基于Cortex-M3内核和STM32F系列微控制器的系统设计与开发[M].2版.上海:同济大学出版社,2014.
【通联编辑:光文玲】
收稿日期:2021-05-27
作者简介:吕元(1997—) ,男,山东邹城人,在读硕士,主要研究方向为嵌入式系统与物联网技术;夏振华(1978—) ,男,湖北黄冈人,讲师,博士,主要研究方向为网络通信、智能控制、物联网技术;肖一帆(2000—) ,男,湖北黄冈人,学士。