马松波
(平顶山中选自控系统有限公司,河南 平顶山 467000)
近年来,许多选煤厂为了提高安全生产水平,都在重要的生产厂区安装监控系统,实现了对现场的实时录像,并能够进行网络传输和远程监视,从而可以及时发现并处理现场异常工作状况,尽早消除隐患。但在实际使用过程中,这种视频监控只能简单地进行远程录像,且需要有专职人员值守,监视生产现场的状况,根据监控对现场状况进行人为判定。这种长时间监视工作很容易使工作人员忽视现场工况,从而容易导致事故的发生。由于现场设备、摄像机较多,给人工监视造成了更大的困难,因此,设计一种能够自动判别工作现场状况的智能监控系统是非常必要的。本文以某煤矿选煤厂为实际应用背景,对选煤厂现有的视频监控系统进行改造,设计了一套选煤厂智能视频监控系统。该系统通过引入机器视觉智能技术,可自主对人员进入不安全区域等事故进行报警,停止区域内设备运行,保证人员安全,并将视频画面切换至大屏幕,从而实现智能监控的目的[1-3]。
该系统部署框图如图1所示,主要由视频服务器、视频矩阵、摄像头、大屏显示器、PLC控制器等组成。各设备的主要功能如下:
图1 系统部署框图
(1)视频服务器是智能视频监控程序运行的载体,其性能决定了智能视频应用程序处理数据的快慢。服务器中的智能视频监控程序实时监听视频矩阵,并通过视频矩阵获取摄像机的分析结果,对分析结果进行评估,从而形成决策,并将其传送给PLC控制器,由PLC控制器执行。
(2)视频矩阵是将视频图像从任意一个输入通道切换到任意一个输出通道显示。一般来讲,一个M×N矩阵表示可以同时支持M路图像输入和N路图像输出,即任意一个输入和输出。在该系统中,视频矩阵主要功能:获取摄像机的分析结果,并将结果传送给服务器;切换报警画面。
(3)摄像头的主要功能是对指定区间进行实时监控,实时对图像内容进行分析,并将结果传送给视频矩阵。
(4)大屏显示器的主要功能是显示报警画面。
(5)PLC控制器的主要功能是执行智能视频监控程序传送的决策。
该系统主要实现摄像机的智能分析与PLC控制器的联动功能。通过摄像机对选煤厂大型设备进行布防,当设备处于运行状态时,摄像机捕捉到有人或物跨入危险区域时,摄像机将分析结果传送给视频矩阵,视频矩阵将结果传送给智能视频监控系统,智能视频监控程序对传送过来的结果进行评估,形成决策,并将该决策通过KEPServer传送给PLC控制器,由PLC控制器执行该决策,同时智能视频监控摄像机监控程序控制视频矩阵将该画面切到大屏显示器上。
该方案中,使用的摄像机为海康摄像机,PLC控制器程序使用的是罗克韦尔自动化有限公司的logix5000[4]开发平台。该智能视频监控程序是在.net框架下,使用C#语言进行开发的,开发工具使用Visual Studio。在开发中,采用海康的SDK开发包及OPC的动态链接库。
软件架构如图2所示。整套系统分为两部分:智能视频监控程序与PLC控制程序。智能视频监控程序底层为SDK开发包、OPC动态链接库;中间层为行为智能识别模块、视频上墙模块、OPC通信模块,智能识别模块、视频上墙模块是基于海康SDK开发包开发的,OPC通信模块是基于OPC动态链接库开发的;上层为人机交互层,用来展示视频分析结果及视频画面。PLC控制程序由PLC变量及程序组成,智能视频监控程序通过改变PLC变量来控制设备。智能视频监控程序与PLC控制程序之间通过KEPServer进行通信。KEPServer是一个OPC服务程序,内含多种通信协议,可实现OPC到PLC控制程序的通信。
图2 软件架构示意
2.2.1 行为识别模块设计
行为智能识别模块的主要功能是获取视频监控中的行为特征,对这些行为特征进行评估,形成决策,并将决策通过OPC通信模块发送到PLC控制器。在这个过程需要创建一个回调函数[5],即通过函数指针调用的函数。需要把函数的指针(地址)作为参数传递给调用者,而这个指针所指向的函数,即为回调函数。回调函数不是由调用者直接调用,而是在特定的事件或条件发生时,由另外的一方调用,用于对该事件或条件进行响应。在该系统中,只有在行为识别模块识别到特定的人员行为时(例如越界行为)才会调用回掉函数。
在行为智能识别模块设计中,访问视频矩阵、安全边界设置、监听视频矩阵、获取图像分析结果并触发回调等功能都封装在海康SDK二次开发包中,只需要在程序中调用即可。而回调函数则需要自己设计编写。回调函数包含视频分析结果评估功能、形成决策以及将决策传送给PLC控制器等功能。当有人跨过安全边界时,视频矩阵会收到摄像机发出的越界入侵的报警信号,触发回调函数,回调函数会获取产生报警的摄像机信息,进而获取该摄像机监视的设备信息,然后对设备对人身的危害性进行一个评估。如果危险性较小,则在人机交互界面弹出越界入侵画面,由集控操作人员确定是否对该设备停机;如果危险性较大,则通过PLC控制器直接关停该设备,从而保护人身安全。
获取行为分析流程如图3。NET_DVR_SetDVRMessageCallBack_V30为回调函数的入口,将回调函数的地址作为参数传入该函数中,当摄像机启动行为分析,并捕捉到已定义的行为时,会通过NET_DVR_SetDVRMessageCallBack_V30调用回调函数,执行回调函数中定义的对策。
因为海康SDK开发包由非托管代码生成,要使用上述海康SDK中的函数,需要在程序中对这些函数进行声明[6]。声明格式如下:
图3 获取行为分析结果及执行对策流程示意
[DllImport(“HCNetSDK.dll”)]
public static extern bool NET_DVR_SetDVRMessageCallBack_V30(MSG Call Backf Message Call Back,Int Ptrp User);
通过这个过程,实现了在人员跨入危险区域时,产生越界入侵信号,对越界入侵的危险性进行评估,并生成决策。
2.2.2 监控画面上墙
在选煤厂中,摄像头的数量远远大于集控室中电视屏的数量,因此,不是所有的摄像头传来的图像都能显示在电视屏上。当摄像头分析出现人员的不安全行为时,为了使集控操作员更清楚了解现场情况,将人员不安全行为的画面投放到大屏显示器上,可更好地帮助监控人员进行决策。该功能也是在回调函数中实现的,通过程序控制视频矩阵,将越界入侵画面投放到大屏上。监控画面上墙流程如图4所示,其中,NET_DVR_RemoteControl函数用来实现将越界入侵画图投放到大屏上。
图4 监控画面上墙流程示意
2.2.3 视频分析与PLC通信
OPC全称是Object Linking and Embedding(OLE) for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。OPC标准以微软公司的OLE技术为基础,通过提供一套标准的OLE/COM接口实现,从而使得支持OPC协议的设备之间可以进行数据交换。通过OPC技术,应用程序可与OPC服务器软件之间进行通信[7]。
KEPServer是一款OPC服务器软件,实现了OPC标准接口,应用程序可以通过KEPServer和PLC控制设备进行通讯,从而实现应用程序与控制设备间的通信[8]。
(1)通过配置KEPServer,实现KEPServer到PLC控制器之间的通信。主要的配置项如下:① 选择通信协议;② 设置要进行通信的PLC控制器IP地址;③ 建立KEPServer变量与PLC地址的映射关系。
(2)开发OPC通信模块,实现与KEPServer的通信。过程如下:① 声明对象;② 创建OPC Server的连接;③ 创建OPC组对象并初始化设置;④ 获取组的OPCItems对象,为读取数据做准备;⑤ OPCItem的操作;⑥ 退出程序的资源释放。
OPC通信模块工作流程如图5所示。
在开发OPC通信模块时,使用了OPC动态链接库OPCDAAuto.dll[9],该动态链接库是基于委托代码生成,只需要将其添加到项目引用中,而不需要单独进行声明。
2.2.4 视频智能分析与PLC控制器联动
在PLC控制程序[10]中,用到“常开点”、“常闭点”、“线圈”等功能块。“常开点”含义为初始状态为“开路”,“常闭点”初始状态为“闭路”,当一条线上的点的状态都为闭合时,“线圈”则控制接触器吸合,从而启动设备。图5中,“单起”、“正转运行信号”是“常开点”,“入侵报警”是“常闭点”,“起车”是“线圈”。PLC控制程序控制设备起车过程如图6所示。
图5 OPC通信模块示意
图6 PLC控制程序示意
当按下起车按钮时,“单起”由初始状态的“开路”变为“闭路”,线1上点的状态都为闭合,“起车”控制接触器吸合,设备启车。启车后设备产生一个运行信号,“正转运行信号”由初始状态的“开路”变为“闭路”。松开起车按钮,“单起”由“闭路”变为“开路”,但这时的“正转运行信号”为“闭路”,“入侵报警”未接到报警,所以“入侵报警”仍然维持初始状态“闭路”,因此线2上点的状态都为闭合,“起车”仍然控制接触器吸合,设备处在运行状态。当PLC控制程序收到入侵报警后,“入侵报警”由初始状态“闭路”变为“开路”,此时线1和线2的点都处在非全部闭合,“起车”使接触器断开,设备停车,“正转运行信号”恢复初始状态“开路”,从而实现“视频智能入侵分析”与“设备停车”联动。当入侵报警解除后,需重新按下“起车”按钮,设备才能启动。该程序编译好后,需要写入PLC控制器中。
该系统在某煤矿选煤厂进行了试运行,当工人从生产设备安全边界跨过去时,摄像机会对人员的行为进行分析,当结果为越界入侵危险区域时,程序会向PLC控制器发送设备停机信号,并在人机交互界面右上角显示出越界入侵的报警信息,并将越界入侵的视频画面显示到大屏上。在试运行中,人一旦跨过安全边界,设备即停止运行。智能视频监控系统弥补了传统视频监控只监视不控制的缺点,而且相比操作人员通过视频画面分析员工的不安全行为,智能视频在分析员工不安全行为的准确率方面更高、用时更短。在试运行时,为了安全,设置的安全边界线距离胶带较远,在实际应用中,安全边界应根据实际情况设置,距离设备较远时,会造成过多的误报警。
图7 应用效果示意
随着视频分析技术的飞速发展,选煤厂利用摄像机自动图形分析功能,结合OPC通信技术,实现了监控系统智能判断与控制系统联动的功能。监控系统的智能判断准确率较高,且监控系统智能判断与控制系统联动将会大大提高选煤厂的生产安全性。