基于GPRS的设备状态实时监测系统设计
2019-05-24朱付保李晓楠刘艳云高政源
朱付保 李晓楠 刘艳云 高政源
摘 要:在监控的很多特殊情况中,由于受到现场条件的种种限制,监测人员很难直接进入监控点进行观测,这就需要借助能够适应各种复杂环境的电子设备进行监测工作。针对以上问题,文章设计开发了基于GPRS的设备状态实时监测系统,通过现场采集设备实时采集设备运行数据,并由网络传输至监测管理中心,经过软件对数据进行分析处理,实现对设备运行情况实时远程监测、维护管理、统计分析、故障诊断(预警和报警)、评估等功能。建立了一个集数据采集、数据接收、数据传输、数据存储、后台定位监测的智能远程实时监测设备状态系统。该系统以最少的人力资源配备来加强对设备控制系统的管理,提供较为直观、清晰、准确、稳定的设备运行状态监视,充分提高设备控制系统的工作效率和安全性能。
关键词:设备实时监测;数据存储;地图数据显示;后台管理
“互联网+”将云计算、大数据和物联网相结合,利用信息通信技术以及互联网平台,让互联网与传统的行业进行深度的融合,创造出新的发展生态。在这样的背景下,远程监控技术的研究面临着新的机遇和挑战[1-5]。在一些监控条件受限的情况中,监测人员无法对设备进行实地查看,对于一些需要实时监测的设备,由于设备在实际运行过程中会产生大量、高并发、实时的数据,传统的设备监测系统无法满足实时性的要求[6-7]。基于GPRS的设备状态实时监测系统具有快速高效的数据获取能力、强大的并发实时数据处理分析能力和直观生动的地图数据显示能力,在大量高并发实时状态信息采集、处理和应用中具有较大的优势,被广泛应用于设备的普查、可视化管理、实时定位查询与分析。
1 系统设计
基于GPRS的设备状态实时监测系统平台,首先经由数据采集系统,实时采集设备运行数据,通过GPRS通信将数据传输到监测管理中心,通过基于GPRS的设备状态实时监测系统对数据进行分析处理,实现对设备运行情况实时远程监测。整体拓扑图如图1所示。
1.1 系统设计模块
基于GPRS的设备状态实时监测系统分为设备实时监测和设备后台管理两大子系统。通过对两个子系统进行详细的模块设计,使得两个子系统间可以直接通过接口进行数据的交换。该系统的整体设计大致分为5步:(1)数据采集,该部分由采集器完成。(2)数据传输,采集器将采集好的数据通过用户数据报协议(User Datagram Protocol,UDP)进行传输。(3)数据接收,数据解析程序通过不停地监听端口,将传输过来的数据进行接收并处理。(4)数据存储,数据解析程序将接收过来的数据进行解析,在解析过程中,如果发现有故障设备,则将故障信息及时通知相关人员,并将数据存储至MySQL数据库中;如果设备正常,则将解析好的数据存储至NoSQL数据库中,利用Redis(Redis即为上边所提到的NoSQL数据库)读取的高效性及时缓存接收存储这些数据。存储在NoSQL数据库中的数据,按照存储时间先后,不断地将早期存储的数据移存至MySQL数据中,NoSQL数据库中只保留最新、最及时的数据。(5)后台管理,分为两部分,一部分为满足设备的实时监测,通过Socket.IO将NoSQL数据库中的数据实时读取并显示到实时监测页面中,另一部分,在MySQL数据库中存有大量后台管理的数据,以满足工作人员的使用和操作,那些从NoSQL数据库中转储并保存至MySQL数据库中数据提供设备的历史查询,首页地图定位显示可以实现设备实时与历史查询。
1.1.1 设备实时监测
设备实时监测包括数据接收、数据处理、数据调用3个部分。通过和设备厂商提供的转接板进行通信(按照特定的通信协议),采用GPRS技术并配合传感器来构建一个无线传感器网络,采集设备实时运行数据和故障信息。将采集的数据通过网络实时传输到监测管理中心。基于GPRS的设备状态实时监测系统,通过Socket编程实现对数据接收,按照Socket编程模型,先建立套接字,然后绑定端口号,开辟一个接收线程,专门接收数据。当接收线程读取有效数据后,发送一个显示更新消息,然后刷新接收区窗口,更新接收数据。
通过模拟实际应用场景中设备数据传送与接收的大量测试分析,UDP协议在数据传输过程中节约了大量的网络状态确认和数据确认的系统资源消耗,更好地满足了实时接收海量并发数据传输的需求。虽然在传输过程中存在少量丢包的情况,但相较于实际应用中的需求影响不是很大。因此,本项目最终采用UDP协议进行数据传输。结合实际应用中的具体需求,规定了UDP协议格式(见表1)中的具体内容如下:
字节格式,每字节含8位二进制码,传输时加上一个起始位[0],一個校验位[1]和一个停止位[1],共11位。采用小端模式进行传输:先传低位,后传高位。
帧格式=前导字节[4]+起始符[1]+数据域长度[1]+品牌代码[1]+设备地址[12]+命令码[1]+数据 DATA[n]+状态 DS[2]+校验和[2]+结束符[1]。
采用UDP协议发送数据,并且发送到IP为192.168.0.11、端口号为8000,则要发送的命令为:“CONFUDP:”+IP地址(C0A8000B)+端口号(1F40)数据串,将数据串翻译成16进制为:43 4F 4E 46 55 44 50 3A C0 A8 00 0B 1F 40。如果设置成功则返回数据串{‘S,‘E,‘T,‘S,‘B,‘E,‘O,‘K,0x0d,0x0a},当串口接收到这个数据串时,开始发送数据包,当采集设备得到数据后按照申请到的目标IP和端口发送此数据包。基于GPRS的设备状态实时监测系统利用UDP协议接收采集器发送的数据,然后利用多线程将数据进行同步解析。其结构如图3所示。
1.1.2 设备后台管理
设备后台管理模块分为地图监测、注册信息、状态监测、故障信息、远程控制、历史数据6个大模块,其功能模块划分如图4所示。
1.2 数据存储
基于GPRS的设备状态实时监测系统对接收和多线程解析的数据进行存储,采用NoSQL数据库和MySQL数据库完成数据存储,在多线程数据解析过程中,如果设备运行状态正常,则将解析好的数据存储至NoSQL数据库中,利用Redis将设备运行状态数据实时存储在所述NoSQL数据库中,并将NoSQL数据库中的数据周期性地保存到MySQL数据库中,如果发现设备有故障,将故障设备的信息存储至MySQL数据库中,MySQL数据库用于永久化存储设备运行状态数据。
利用Socket编程开启UDP数据接收,实时监听指定端口,接收到数据后,开启多线程解析数据,而主线程则继续接收数据。将接收到的数据进行解析,解析数据后保存至map集合中,之后JedisPoolUtil类(此类为Redis连接池)中取出Redis连接,准备保存数据。解析后判断数据类型为定时心跳还是实时心跳,若为实时心跳,则需要将数据以kv键值对形式保存數据至Redis中,其中,k为设备编号,v为解析后的值,若Redis原已保存数据则进行数据更新;若为定时心跳,除需要以kv形式保存数据外,还需要以链表形式保存数据作为缓存数据,以便将定时心跳更新至MySQL数据库,进行历史数据查询。将数据保存后判断接收到的数据类型,以此判断设备是否有故障,若有故障则开启处理故障线程,解析数据后的map集合中ecode字段为故障字段,若不为00说明有故障发生,调用Error()方法,开启新线程处理故障代码。故障处理:根据设备编号先查找故障设备具体信息,向有关人员发送短信,同时将故障信息保存至故障表fault中,完成故障处理。以上为数据接收并将数据保存至Redis缓存中内容,接下来NoSQL数据库向MySQL数据库中移存,在Socket编程模型实时监听UDP协议传输数据的端口时,开启监听Redis中链表中的数据,当等待10 s或链表数满足100条数据,则将存储在NoSQL数据库中的数据移存至MySQL数据库中,以实现数据永久化的保存。
1.3 数据库设计
基于GPRS的设备状态实时监测系统根据需求分析设计了多张数据库表,下面重点介绍一下设备信息表与工地信息表。
2 功能实现
基于GPRS的设备状态实时监测系统的主要有以下功能。
(1)首页可以实现地图的定位监测,在地图上单击对应项目图标和在导航中点击项目名称都可进入该项目对应的设备的状态监测界面,鼠标放在地图对应项目的图标中,显示出设备的基本信息和实时状态。
(2)设备信息数据采集、分析、传输模块。通过配合各类传感器的使用,可将设备运行的信息和数据实时获取,并可以分析判断设备的运行状况,从而对设备的常见故障进行预警、报警,同时将上述信息通过网络上传至网络中心服务器。
(3)显示单台设备实时运行详细情况。
(4)同时显示多台设备实时运行情况。
(5)多样、灵活的设备信息查询方式。
(6)实现用户角色以及权限的分配,同时具有增、删、改、查的功能。
(7)实现设备基本信息的录入,同时具有增、删、改、查的功能。
2.1 系统登录与注册
用户进入登录页面后,输入账号、登录密码,经由系统验证若全部输入正确则进入系统,若输入错误,则会提示输入错误的信息,并返回登录界面。为保证用户权限和设备信息的私密与安全,防止设备信息泄露,基于GPRS的设备状态实时监测系统加入了登录权限控制与数据库密码加密技术。用户根据账号登录后可查看属于本账户下的设备信息,其中管理员可查看本单位下所有设备信息,管理员可将本单位的设备分配给此单位下普通人员,普通人员只能查看管理员分配的设备信息。用户在执行登录操作期间,每次访问,系统会自动判断用户身份是否过期,若过期则自动跳转回登录界面。
用户注册时,首先要填写账号中的一些基本信息,在填写过程中要确认该用户是否为管理员,若为管理员,则要重新添加所在单位的相关信息,同时注册单位与用户,并将该用户设置为此单位的管理员;若不为管理员,则选择其所在单位,注册为该单位的普通用户。然后判断该用户所在单位是否为使用单位,若为使用单位,则需填写相关的位置类型信息,随后完成注册;若不是使用单位,则完成注册。系统注册的流程如图6所示。
图6 系统注册流程
2.2 设备采集信息
设备在添加采集信息时,首先需要判断所选设备是否已经存在,若存在,则可以进行采集信息的添加,若不存在,则退回选择界面,无法进行采集信息的添加。其具体流程如图7所示。
2.3 设备监测
2.3.1 地图定位显示
首页可以实现地图的定位监测,在地图上单击对应项目图标和在导航中点击项目名称都进入到该项目对应的设备的状态监测界面,鼠标放在地图对应项目的图标中,显示出设备的基本信息和实时状态。如图8所示。
2.3.2 远程指令
远程控制的前提是设备必须在线右击设备才会有远程控制这一功能项,远程控制指令,包括置零、标定、一键还原、最大量程指令。如图9所示。
3 测试与结果
基于GPRS的设备状态实时监测系统,可以通过监测页面的刷新来实现对设备运行状态的实时监测。在本例中,单台设备监测页面打开是发送开启监测实时心跳指令,页面关闭是发送关闭心跳指令。打开单台设备监测界面,会获取到设备当前最新信息,17 s定时刷新一次(定时心跳是15 s发送一次),有实时采集数据信息过来的设备进行信息实时更新,没有实时采集数据信息设备信息不进行更新。通过服务器时间与心跳时间的差与45 s比较来定时判断设备网络的在线状态,若服务器时间-心跳时间≤45 s,则判断为在线;若服务器时间-心跳时间>45 s,则判断为离线。
4 结语
基于GPRS的设备状态实时监测系统具有十分重要的现实意义。设备监控的目的是为了以最少的人力资源配备来加强对设备控制系统的管理,提供较为直观、清晰、准确、稳定的设备运行状态监视,充分提高设备控制系统的工作效率。
[参考文献]
[1]凌维业,贾民平,许飞云,等.设备状态远程实时监测系统的开发[J].计算机应用研究,2002(6):101-102.
[2]高立龙,陈欣鹏,陈斌,等.基于ARM和GPRS的PLC远程监控系统设计[J].自动化与仪器仪表,2015(10):137-139.
[3]李伟.基于PLC控制的火电厂化学水处理系统除盐水泵变频自动控制的实现[J].自动化与仪器仪表,2013(5):147-149.
[4]朱洪波,杨龙祥,于全.物联网的技术思想与应用策略研究[J].通信学报,2010(11):1-8.
[5]牛广文.基于GPRS通信的远程土壤墒情自动监测系统设计[J].自动化与仪器仪表,2015(2):36-37.
[6]王言庄.基于GPRS的机车状态远程实时监测系统的设计[D].成都:西南交通大学,2010.
[7]万剑.基于GPRS的远程状态监测技术研究[D].天津:天津大学,2011.