夏 龙,郑 萍,曹 林,李 易,王红梅
(西华大学电气信息学院,四川成都610039)
石油是经济发展的血液,由于我国石油资源匮乏,建立国家原油战略储备库工程已经成为应对国际石油市场波动和石油战略储备的有效途径之一。石油具有易燃、易爆、易挥发等特点,而且储存石油的油罐体积大,储油区油罐多,必须具有多重消防措施。火灾隐患通过主动防护系统去除;明火通过消防炮系统进行强力灭火;每个罐壁发生火情通过泡沫灭火系统灭火[1]。罐区消防的监控点多,控制措施复杂,因此对消防系统的上位监控提出了新的要求。本文根据罐区消防系统上位监控必须工作可靠和监控方式灵活的要求,讨论了基于工控机、平板电脑以及Android手机监控平台分别实现的上位监控、中心手动操作盘的冗余监控和移动监控三种监控模式[2~3],以构成广覆盖、性能可靠的新型上位监控系统。
整个系统由三个底层控制系统和上位监控系统构成,如图1所示。
图1 系统结构框图
底层控制系统由主动惰化防护系统、消防炮灭火系统和泡沫灭火系统三大系统以及消防联动设备构成。底层控制系统一方面负责采集油罐数据和现场视频图像信息,出于防爆的要求,通过光纤以太网传输给上位机和存储设备,同时接受来自上位监控系统的控制命令。每个系统动作,都将触发相应的联动设备进行消防广播、打开警铃等操作。各系统的功能如下:
1)主动惰化防护系统是以预防油罐发生火灾和爆炸为出发点。系统定期检测浮顶式石油储罐内密封部位一、二次密封装置之间的混合气体浓度并进行相关数据处理后发送给上位机[4],上位机将所得到的信息解析出惰化曲线,根据不同的情况发出相关的惰化命令。
2)消防炮灭火系统主要是针对罐区内油罐周围发生火灾的情况而设计的。它由固定摄像机、炮前摄像机和数控消防炮构成,为上位机提供火灾视频信息并解析出火点坐标,同时接受来自上位机根据火点坐标计算出的运行参数控制消防炮进行灭火。
3)泡沫灭火系统是用来对石油储罐内部浮顶周围进行灭火的。通过在油罐顶部安装的防爆型紫外火焰探测器将信息送往上位机,由上位机控制泡沫混合发生器进行灭火[5]。
上位监控系统又分为基于工控机的中心计算机、基于平板电脑的中心手动操作盘和移动监控。
1)中心计算机:一般情况下,由中心计算机上位监控系统负责对下位机发送过来的数据和视频图像信息进行存储、分析和显示,以及对下位机进行控制。
2)中心手动操作盘:在中心计算机出现异常时,中心手动操作盘作为冗余设备接管中心计算机,可对底层控制系统进行一些简单的控制以应急。
图2 中心计算机上位界面框图
3)移动监控:以Android手机为载体,从监控中心和底层设备获取油罐数据和视频图像信息并显示,可以实现对罐区的监控,该功能给不在控制室的重要人员提供方便的移动监控。
监控中心的控制室里安放中心计算机和中心手动操作盘。
中心计算机上位监控系统由中心计算机、联动控制器和NVR硬盘录像机构成,要完成对三个底层控制系统的全面监控。NVR硬盘录像机用来存储下位机发送过来的视频图像。
1)中心计算机主界面设计
中心计算机上位监控主要由主界面、主动惰化防护系统界面、消防炮灭火系统界面和泡沫灭火系统界面构成,如图2所示。主界面作为门户界面,展示了这个罐区的重要数据、油罐的安全状况信息以及进入各系统界面的通道;后三者分别对应于现场的三大系统,每个界面都显示了与该系统相关的执行机构的设备状态信息、油罐的一些重要数据以及各自的操作面板。
2)中心计算机主界面程序设计
中心计算机上位监控程序的设计采用MFC来实现[6],主界面程序流程图如图3所示。
图3 主界面程序流程图
主界面利用多线程技术编程。根据它们功能的不同,可以将其分为主线程、刷新子线程和通信子线程三类。主线程继承于MFC框架类中的CWinApp类,它的功能主要是用来侦听界面按钮;刷新子线程是在主线程中利用Win32提供的API函数创建的,用来从底层读数据并更新数据库和界面关联组件;通信子线程的创建过程和刷新子线程一样,主要用来接收和处理中心手动操作盘与Android手机的数据请求。利用API函数创建刷新子线程的代码如下:主界面利用TCP/IP协议来实现数据之间的上下行交互。它包括与底层控制系统、中心手动操作盘和Android手机之间通信。利用WinSocket API函数创建Socket服务端代码如下:
主界面程序利用MySQL数据库来存放重要的油罐数据[7]。在主线程中,从数据库中读取用户信息对用户身份进行验证。在刷新子线程中,对从底层读取的数据进行存储。在通信子线程中,从数据库中读取数据予以响应。访问数据库代码如下:
主界面运行效果如图4所示。
图4 主界面程序运行效果图
主动惰化防护系统界面、消防炮灭火系统界面和泡沫灭火系统界面的编写方法与主界面类似,都采用了多线程编程技术、Socket通讯技术和数据库访问技术。其中,消防炮灭火系统界面还涉及到视频的显示。由于底层设备采用H.264格式压缩视频,RTSP协议传送视频,因此在发送请求接收到RTSP视频流之后,还需要对其进行解压缩后才能播放。
中心手动操作盘作为一种冗余的监控方式,只有在中心计算机监控系统出现异常,比如死机、故障等情况下,才能通过它对下位机进行一些简单的控制操作,因此要求中心手动操作盘接入方便、操作直接明了。这里采用了平板电脑和Android系统作为其硬件和软件平台,通过无线网络接入以太网。系统采用Java语言编写,开发环境为基于JDK、Eclipse、ADT和Android SDK共同搭建的Android虚拟机。主要使用的技术为数据库访问技术、Socket通讯技术和多线程编程技术[8]。其监控界面如图5所示。
图5 中心手动操作盘上位界面
1)手动操作盘的操作。首先从右上角的下拉列表中选择要监控的油罐号,左上角马上显示选中油罐当前的安全状况和一些重要数据,右下角显示对应于选中油罐三大系统的操作面板,左下角显示当前正在对油罐进行的操作。
2)中心计算机与手动操作盘的联动。中心计算机正常的情况下每隔固定时间给手动操作盘发送一个心跳信号和相关同步数据,此时手动操作盘被设置为点击无效模式;若未接收到心跳信号,则视中心计算机监控系统出现异常,手动操作盘接管中心计算机的部分工作,激活界面按钮,定时给底层控制系统发送读数据请求,得到新数据并解析后,更新显示模块。
基于Android智能手机而设计的移动监控系统,可为不在控制室的重要相关人员通过手机访问中心计算机中的数据库和罐区瞭望塔上的IP摄像机实现对罐区的整体监控。另外,系统还增加了快速拨号功能,紧急情况下,可以对现场工作人员进行指导。
系统是在Android虚拟机和Android NDK平台下利用Java和C++语言混合编程实现的。其程序流程图如图6所示。
图6 移动监控上位程序流程图
1)数据传送。采用TCP/IP协议来进行油罐数据的传送。
2)视频图像传送。利用RTSP协议实现视频图像传送。系统配置IP摄像机采用H.264格式压缩视频,然后通过搭建RTSP服务器进行传输。当Android手机端编写的RTSP客户端接收到RTSP视频流数据后,调用移植的FFmpeg库对获得的H.264视频进行软解码操作,最后交由画图控件SurfaceView将图像画到显示区域[9]。
手机的监控界面如图7所示。需要说明的是,移动监控模式只有相关人员才获得登陆密码,由于远离现场和控制室,为了安全考虑,主要用于监视,一般不能进行控制。但对于特殊的人员,可赋予控制权限,但需在中心计算机和中心手动操作盘放弃操作后方可获得操作权限。
图7 移动监控上位程序运行效果图
本文主要讨论了如何利用工控机、平板电脑和Android手机各自的特点来实现一个多模式的监控系统,为石油储备的罐群消防系统的上位监控提供了灵活、可靠的先进措施,有效的解决了现代罐区消防系统对上位监控的需求。这种多模式的监控方式大大提升了监控系统的功能,可变通实施在许多的控制系统中,因而具有良好的应用前景。
[1]石油化工储罐区火灾报警灭火系统设计指导书.合肥科大立安安全技术股份有限公司消防技术研究所,2012.8.
[2]彭鑫,谭彰,黄文君,等.基于Android的工业控制监控软件设计[J].计算机工程,2013,39(7):86 -89.
[3]李涛.基于Android客户端的油罐储库防灾救援系统的设计[D].宁夏:北方民族大学,2013.
[4]郎需庆,高鑫,宫宏,等.降低大型浮顶储罐密封圈内油气浓度的研究[J].石油天然气学报,2008,30(2):618-619.
[5]侯建萍.大型浮顶油罐泡沫灭火系统设置的探讨[J].炼油技术与工程,2010,40(9):62 -64.
[6]任哲.MFC Windows应用程序设计(第3版)[M].北京:清华大学出版社,2013.
[7]王雨竹,高飞.MySQL入门经典[M].北京:机械工业出版社,2013.
[8]赵启朋.Android典型技术模块开发详解[M].北京:中国铁道出版社,2012.
[9]任克强,曹宏强.基于Android和 H.264的实时视频监控系统[J].计算机测量与控制,2013,21(9):2448-2450.