APP下载

基于MQTT协议的城市水务物联网监控系统设计

2019-07-29刘佳

物联网技术 2019年6期
关键词:S架构

刘佳

摘 要:伴随着城市化的快速发展,当前供水监控系统已经实现了自动化,但这些供水监控系统多数成为了信息孤岛,水务部门难以进行水资源的有效调度。为此使用MQTT协议设计了一套应用于水务监管的工业物联网系统,该系统将原先不同区域内各自封闭的工业控制系统通过物联网有效融合,并开发了OPC/MQTT协议网关和物联网网关。通过软件或硬件形式的物联网网关将现场设备和仪表虚拟在工业云上,组成云上的设备池,依靠虚拟的设备池实现了基于B/S架构的云组态。系统还开发了工业APP和基于WebSocket的网页人机界面,方便高层管理人员和现场操作人员使用。为了应对日益凸显的工业信息安全问题,系统在设备入网、数据传输等方面进行了安全设计,通过使用白名单鉴权和数据AES加密校验等方式确保工业物联网系统的安全。

关键词:工业物联网;MQTT;供水监控;协议网关;B/S架构;WebSocket

中图分类号:TP39 文献标识码:A 文章编号:2095-1302(2019)06-00-03

0 引 言

“中国制造2025”计划对新时期我国工业发展的方向提出了明确规划,工业物联网系统、工业大数据平台等高端工业软件核心技术成为今后研发和投资的重点[1]。经过多年的快速发展,城市自来水设施有了长足进步,水务部门的供水监控系统基本实现了自动化。但是这些监控系统信息化程度不高,水务部门与下级水厂之间的数据集成度不够,各下级水厂和水站远程监控点大多以信息孤岛的形式存在,难于实现水资源的有效调度,导致人口密集的城区间断性停水的情况时有发生。供水工程是社会民生保障的重要一环,使用先进的工业物联网和工业云平台技术对水务部门的供水监控系统进行升级改造,对水资源高效利用和居民用水安全保障而言有着迫切的现实意义[2]。

工业物联网可以认为是企业中与生产相关的传感器、设备与互联网的连接,它实现了物与物、物与人的相连,达到企业信息和资源的高效利用,最终实现智能制造[3]。当前供水监控系统中应用最广泛的当属SCADA(数据采集与监控)系统,这是以计算机为核心的过程控制和远程监控系统。在SCADA系统中也有与物联网类似的“感知”概念,但由于其内部大多采用封闭的工业协议,造成这种“感知”仅限于控制系统内部,导致企业内部信息孤岛的形成。SCADA系统最初以主机控制系统的形式诞生,经过了基于现场总线和基于TCP/IP以太网的发展历程,业界公认SCADA系统今后的发展方向是工业物联网[4],其网络结构、数据传递方式和系统软硬件组成将发生巨大变化。为了解决水务部门面临的信息难于融合、水资源调度低效的问题,本文基于工业物联网技术设计、建设了一套面向水务监管的供水监控系统,通过应用物联网协议使得原先自成一体的封闭的工业控制系统在确保控制和数据安全的前提下具备了开放性。同时,针对水务部门资金有限的实际情况,依靠物联网协议的优势,把上层系统建立在工业云平台上,将SCADA系统中采用的基于桌面的组态变为了基于云计算的B/S云组态,实现了上层系统的公有云托管,避免了自行建设和运维数据中心的高额投入。凭借上述技术的应用,最终实现了水务部门不同层级之间的信息融合和供水资源的高效调度。

1 MQTT简介

MQTT协议的全称为消息队列遥测协议,由IBM公司于1999年提出,它是工作在TCP协议之上的基于发布/订阅模式的轻量型协议,它在设计之初就充分考虑了控制器内存有限、网络带宽低以及网络不可靠情况下的数据传输问题,是实现物联网M2M(Machine to Machine)架构的理想选择[5]。

由于采用发布/订阅模式,MQTT协议解除了通信双方应用程序间的耦合,规定了三种发布QoS(服务质量等级):“最多一次”“至少一次”“只有一次”[6],发布方可以根据发布消息的重要程度进行合理选择,以达到满足数据传输可靠性要求下的协议交换最小化,从而降低网络流量。

在MQTT协议中一次采集或控制数据的传递过程通常涉及三个对象,分别是发布者、订阅者和代理。图1所示为MQTT协议的工作原理图[7],图中客户端A作为订阅者,客户端B作为发布者。客户端A和B都需凭授权的登录信息与代理取得连接。客户端A首先向代理提出订阅特定主题的请求,在接收到代理的请求确认回复后进入订阅状态。客户端B一旦发送客户端A所请求的主题给代理后,代理会把包含这条主题的数据转发给客户端A,完成一次消息传递。客户端A和B可同时作为某个特定主题的发布者或订阅者。

2 系统设计综述

2.1 架构设计

图2为面向全流程监管的城市水务物联网监控系统架构。系统基于工业物联网形式引入了MQTT云代理、B/S云组态软件和视频云等新技术。水务集团不再建立传统意义上的监控中心,也不再作为唯一的服务端维护方和数据汇总方向用户提供数据。水务集团信息中心、企业用户群、水厂和无人值守监控点作为MQTT Client端与工业云平台上的应用软件通信,构造物与物、端与端相连的网络。在该网络中任何一方都可作为发布者向特定对象发布采集到的实时数据或命令消息,也可作为接收者接收特定对象发来的控制指令或状态数据。水厂建有独立的SCADA系统以监控厂区内抽水、加压泵站、电力系统等的工作。水厂SCADA系统的核心是部署于工控机上的SCADA软件及其数据库,通过现场的工业以太网或工业现场总线获取子站的状态数据。为实现水厂的物联网升级改造,在不改变现有控制系统结构的情况下,在水厂部署OPC/MQTT协议网关,实现工业协议与MQTT协议的双向互转,将水厂SCADA软件变为MQTT客户端与MQTT物联网云代理连接。协议网关以软件形式存在,可独立部署在硬件服务器上,也可与原SCADA软件一同安装在水厂工控机上。

对于通过控制柜控制的无人值守监控点,如水源井或二次加压泵站,由于现场没有部署工控机和SCADA软件,因此可选择在现场的控制柜内加装物联网网关,网关通过串行接口或以太网与控制柜内的控制器通信,把控制柜变为MQTT客户端与MQTT物联网云代理进行有线或包括4G/3G/GPRS在内的无线连接。当水务部门管辖的全部水厂和无人值守监控点都以MQTT客户端的形式登录工业物联网时,现场的全部控制器、设备和仪表都被加入到一个设备池,池中每一个对象的DI(开关量输入)量、DO(开关量输出)量、AI(模拟量输入)量、AO(模拟量输出)量都被虚拟为一条数据标签。在此基础上可以在工业云平台上构建基于B/S架构的数据采集與监控软件,实现云组态。云组态软件作为中间件实现数据分析、设备管理、报表管理、报警管理、历史数据存储与查询等SCADA软件应有的全部功能,并以SOA(面向服务)的形式向需求方提供。通过改造现场的摄像头为网络摄像头或改造视频服务器将视频监控系统升级为云视频系统,就可集成现场视频与云组态软件,用户将在同一个页面上集中显示,实现远程控制和调度,提高决策的现场感知效果。

企业用户群包含水务集团调度部门、水厂管理部门、现场操作员等不同层级的系统使用者,将Web网页和APP作为使用者的操作界面。对于Web网页而言,使用WebSocket技术便可实现MQTT客户端,而工业APP集成MQTT客户端则实现了用户对设备池中现场设备的直接访问,有助于实现业务管理扁平化,体现出工业物联网系统架构的优势。

2.2 身份标识与安全机制设计

一旦将包括工控机和控制器在内的现场设备接入互联网,设备就面临被网络攻击的危险[8]。为了避免上述情况的发生,系统在通信过程中对用户和设备的身份标识、权限管理和数据传输安全进行了设计。系统采用分级的方式对网络中每一个通信对象进行身份标识,例如:“部门/区域/设备编号”或“部门/类别/人员编号”,每个对象都拥有唯一的编号。MQTT消息负载的部分交由开发人员设计,本文使用JSON文本格式的形式设计了消息负载中的通信协议,规定消息发送方需要将自己的身份标识写在JSON文本中,以供接收方识别。在安全机制方面,系统设计了如下功能:

(1)OPC/MQTT协议网关和物联网网关都有鉴权功能,使用白名单机制对消息发送方的身份进行识别。接收方判断对方的身份是否在自己的白名单中,是否有足够的权限操作设备,如果消息中不包含身份信息则消息将被丢弃。

(2)消息文本不采用明文形式传递,消息文本均通过AES方式加密后发送[9-10]。接收方会对消息进行解密和校验,确保消息来源可靠,如果发现有伪造的数据,则会生成日志记录,同时把该记录发送给云组态软件,组态软件将其记录到日志数据库中,并通知相关人员处理。

3 OPC/MQTT协议网关设计

OPC(OLE for Process Control)为基于Windows的应用程序和现场过程控制应用建立了连接,其是基于桌面的组态软件的核心技术。组态软件厂商通常在组态软件中集成OPC服务器,方便其他软件获取组态软件中包含的现场过程控制中的数据。由于OPC接口的存在,就可在不改变现场控制结构的情况下通过协议翻译的方式将现场设备接入物联网系统中,为此本文以软件的形式开发了OPC/MQTT协议网关。

协议网关软件实现了OPC协议和MQTT协议的相互转化,集成了OPC客户端和MQTT客戶端。采用OPC DA规范进行实时数据的读写操作。OPC DA规范中定义了三种对象,分别为OpcServer,OpcGroup,OpcItem,即一个OpcServer可以包含多个OpcGroup,一个OpcGroup可以包含多个OpcItem。通常以OpcGroup为单位进行数据读写操作。在过程控制的实际应用中,一个OpcGroup通常为一个设备的控制器,其中OpcItem为设备的某一个特定寄存器的值。协议网关软件采用面向对象编程的方式,将OPC中的三类对象转化为虚拟设备的属性,如图3所示,根据OpcItem所代表的物理量的不同转化为DI量、DO量、AI量、AO量,并且使用JSON格式文本对现场设备的数据和属性进行描述。对设备OPC Server实时数据的每一次读写和重新使用JSON描述便实现了MQTT协议中消息负载的内容。

由图4可知,将OPC/MQTT协议网关作为MQTT Client与工业云平台上的MQTT代理连接,发布和订阅相关主题数据。用户方的浏览器和工业APP可通过WebSocket方式作为MQTT Client与MQTT的代理连接。系统通过MQTT代理的消息转发和协议网关的协议转换实现了用户对设备的监控,同时实现了对现场设备的云上虚拟,为B/S云组态软件的实现夯实了基础。

4 物联网网关设计

对于除水厂以外的远程监控站点,例如水源井监控点和二次泵站监控点等现场没有工控机和SCADA软件的监控点可以使用物联网网关进行协议转换。传统的远程监控点通常使用DTU、串口服务器、3G/4G路由器将PLC或数字仪表接入互联网。本文使用物联网网关将现场控制器接入物联网中,实现控制协议的转换,将PLC和传感器数据采用MQTT协议形式上发给工业云平台。物联网网关在现场的连接方式如图5所示,通过串口或网络、电控柜中的控制器连接。与DTU、串口服务器只透传数据的不同之处在于物联网网关采用边缘计算的概念进行设计,分担部分组态软件的功能,从而减轻云上的计算量。物联网网关功能:MQTT协议与工控协议的转换实现了Modbus RTU/TCP协议与MQTT协议的转换,同时还将作为现场总线上的一个站点和物联网中的一个节点;在物联网网关上配置监测值的上下限,发生超限时将生成的MQTT协议格式报警消息推送给相关人员;采用白名单机制对访问设备的用户进行鉴权,遇到网络攻击时生成日志并上报;使用AES加密算法对消息进行加解密和校验,确保消息真实可信。

本文开发的物联网网关处理器选用TI出品的AM3352芯片,主频为1 GHz,集成两个网络控制器。物联网网关选用Linux作为操作系统,合理对操作系统进行裁剪,以确保运算的高效性。

5 工业APP设计

工业控制系统通常选用触摸屏、工程师站作为系统的人机界面,信息局限在部分操作员手中,因此难以满足用户移动办公的需求。物联网系统具备良好的开放性,能够很好地支持远程访问。本文面向水务部门定制了工业APP,供管理人员和操作人员使用,通过MQTT协议使企业内的不同人员以各取所需的方式获取现场信息,并凭借自身权限操作现场设备。工业APP可面向管理人员提供数据汇总、分析及报表显示功能。工业APP具有人机交互界面,对于操作者而言,现场设备被组态到手机界面上,同时工业APP上集成有视频云的客户端,可将数据和图像同时显示,方便操作员了解自己所管理的设备的实际工作情况。

6 结 语

工业物联网是SCADA系统未来的发展方向,工业物联网的应用会提升工控系统的效能。本文使用MQTT协议设计开发了一套面向水务部门全流程监管的工业物联网系统,给出了在不改变原有控制系统结构的情况下实现供水监控系统的物联网化技术路径和设计方案。系统充分发挥了工业物联网的优势,做到水务部门内物与物、人与物、人与人的互联。同时依靠工业云平台降低了水务部门在建设过程中的投资。

参 考 文 献

[1]尹子航,唐磊,沈绪榜.中国工业物联网的发展研究与对策[J].机械工程与自动化,2018,8(4):217-219.

[2]孙国庆.智慧水务关键技术研究及应用[J].水利信息化,2018,2(1):46-49.

[3]王飞跃,张军,张俊,等.工业智联网:基本概念、关键技术与核心应用[J].自动化学报,2018,44(9):1606-1617.

[4]宗子轩,谌海云,吉宁,等.物联网和SCADA系统的发展、现状与展望[J].物联网技术,2014,4(12):61-64.

[5]任亨,马跃,杨海波,等.基于MQTT协议的消息推送服务器[J].计算机系统应用,2014,23(3):77-82.

[6] IBM.MQTT Protocol V3.1.1.http://mqtt.org/[Z].2018-12-16.

[7]姜妮,张宇,赵志军.基于消息队列遥测传输的推送系统[J].计算机工程,2015,41(9):1-6.

[8]武传坤.物联网安全关键技术与挑战[J].密码学报,2015,2(1):40-53.

[9]程志强,连鸿鹏.物联网通信特征数据信息加密仿真研究[J].计算机仿真,2016,33(11):324-327.

[10]仇国庆,包俊杰,曹冬梅,等.基于AES算法的ZigBee网络加密方法研究[J].电子技术应用,2014(4):56-58.

猜你喜欢

S架构
基于ASP.NET校园电子商务的系统设计
C/S架构下的中职教学辅助系统的新探索