齐赋宁
(中国石油集团海洋工程有限公司, 天津 300451)
随着石油石化行业装备自动化技术的发展,CCTV视频监控系统在石油石化行业生产过程中的重要性逐渐凸显。如何保证它的正常工作,在出现问题时快速有效地解决问题并做好预防性维护工作显得更加重要。JU2000E型石油平台配有2套HERNIS品牌的CCTV视频监控系统,用于平台不同区域的现场情况及关键设备运行情况监测。
前期,CCTV系统出现NVR和MVD无法联机故障,送到新加坡进行维修。修理完成送达平台,经现场连机测试,客户端联机正常,但无法显示画面,系统提示:connecting to 10.100.100.62,curent state=3(closed for exception)。
经与国外服务商沟通,检查网络设备、加密狗状态、硬件连接情况等均未能解决此故障,国内服务商多精通硬件,软件故障仍无法解决。
无线电间CCTV监控系统主要由基于TPC/IP协议的HERNIS System Server(控制和通信的核心设备)、HERNIS 500NVR(视频存储设备)、MVD(视频转换和输出设备)、2UPC(EB访问的服务端)及HSS05 Multicom(云台控制和IO接口模块)等组成。
根据CCTV视频监控系统的控制原理和组件功能来分析,PC客户端能够通过授权验证加载PC端配置文件也显示正常,并成功连接服务器,说明PC客户端与服务器通信正常。
图1 客户端无图像显示故障
摄像头云台控制是通过HSS05模块来实现,摄像头的视频信号通过同轴信号线连接到NVR视频采集卡,可见NVR负责着摄像头视频信号的采集与传输功能。通过PC客户端在视频显示故障的情况下,能正常控制云台动作,说明与System Server通信正常。那么视频信号显示不正常,可以推断可能有以下几种情况:
(1) NVR视频信号采集卡硬件损坏,导致信号输入故障。
(2) NVR视频信号采集卡软件驱动问题,导致信号采集故障。
(3) NVR与服务器通信问题,导致与System Server通信故障。
(4) NVR系统与System Server之间软件及参数配置不当,导致视频信号不能被服务器调用。
图2 CCTV控制系统网络拓扑图
图3 PC客户端连接服务器状态信息
对于(1)、(2)、(3)种情况,通过设备管理器运行情况、网络进行测试等手段较容易进行现场的排查。通过测试,前3种情况运行正常[1]。
对于第4种情况,经过进一步分析并与NOV钻井CCTV系统进行仔细对比,发现维修服务商修复回来的NVR和MVD与Server的Licensekey均不相同,而NOV的NVR与Server的Licensekey一致,推断可能维修服务商Licensekey未进行一致化配置所致,重新进行设置与System Server一致,但问题依旧,此推断只能作为可能性暂且保留。
图4 视频采集卡硬件及驱动情况
图5 NVR、MVD与Server之间网络通信情况
经过逐一排查,剩下的问题就是软件问题,也是最棘手的问题,咨询国内多个服务商均无解决办法,故障是NVR的视频信号与Server之间的问题。通过仔细观察发现NVR系统中的HERNIS Module Watchdog软件状态异常,不能显示图片图标,其他系统正常。HERNIS Module Watchdog软件运行时显示DVR Module和Server Info Module均为Penging Status。
图6 无线电间NVR、MVD与Server之间Licensekey各不相同
图7 NOV钻井CCTV系统NVR与Server之间Licensekey相同
图8 NVR系统中HERNIS Module Watchdog显示状态异常
问题很可能出在HERNIS Module Watchdog 这个程序的运行上,那么从NVR在HERNIS Module Watchdog 软件作为切入点,分析其软件构成。利用HERNIS Module Watchdog中核心的dll动态链接库文件,借助其他反编译软件,分析HERNIS Module Watchdog软件程序通信及运行的相互关系,从而通过对NOV钻井CCTV中的NVR系统制作镜像,还原到无线电间CCTV中NVR中。通过对核心的dll动态链接库文件的分析,将原来系统程序中必需的配置文件复制到还原的NVR系统中,再结合通过修改注册表,将软件版本修改成原来系统的软件版本,运行测试效果[2-3]。
(1) 将NOV钻井CCTV中NVR系统HERNIS Module Watchdog中的HERNIS Watchdog Controller.dll动态链接库文件,运行Reflector反编译软件,分析HERNIS Module Watchdog软件程序通信及运行的相互关系。
通过以上程序段可以分析到HERNIS Module Watchdog软件运行时,这个动态链接库文件HERNIS Watchdog Controller.dll将会被调用。从dll文件中的函数程序段可以看出,当程序调用这个dll时看门狗程序段将首先进行校验,若不对将关闭,然后校对已安装的模块程序段,若检查通过进行启动相应module,再进行module状态的检测,若有问题返回相应状态字。从此逻辑过程可以看出,看门狗校验通不过、已安装程序缺失文件、module的类型不正确都会导致运行状态异常,发生closed for exception。
(2) 看门狗的校验依据Licensekey,从反编译程序段分析Server和NVR的Licensekey应该一致,返修回来的NVR的Licensekey设置错误,通过修改NVR的Licensekey与Server一致,解决看门狗验证通不过问题。
(3) 通过将NOV钻井CCTV的NVR系统进行镜像,并还原到无线电间CCTV的NVR中来解决安装HERNIS Module Watchdog软件中相关配置文件缺失的问题。
(4) 由于2个CCTV的NVR系统HERNIS Module Watchdog软件的module的版本不同,在调用HERNIS Watchdog Controller.dll动态链接库文件时,就会检验module版本信息,不同版本类型也会出现closed for exception运行异常的信息。为了避免这一问题出现,将原来无线电间CCTV中NVR系统程序中相关版本的DVR Moudle和Server Info Module配置文件复制到还原后的NVR系统中,将4.6.1的版本替代为4.5.3的版本。(因为系统的运行即启动HERNIS Module Watchdog,加载DVR Moudle和Server Info Module,建议在WinPE系统下进行替换)。
图10 重新配置 NVR系统中Licensekey
图11 2套NVR系统中HERNIS Module Watchdog运行的相关module版本不同
图12 匹配无线电间NVR系统中HERNIS Module Watchdog运行的相关module版本
(5) 为了使重组的软件版本稳定运行,结合通过修改注册表,将软件版本4.6.1修改成4.5.3。运行regedit,搜索HERNIS,找到版本信息,将4.6.1.0修改成4.5.3.0[4-5]。
图13 通过注册表修改改无线电间还原后的NVR系统中运行的相关module版本
(6) 重启NVR系统,连接好硬件进行测试,程序及状态运行正常,画面显示正常。
图14 重组后无线电间的NVR系统运行的相关module版本已和服务器匹配完成
图15 画面显示正常系统运行正常
这次CCTV视频监控系统返修回来无视频画面故障,直接原因有2个:第一,未正确配置NVR与MVD的Licensekey,导致加密狗验证不能通过;第二,NVR系统HERNIS Module Watchdog软件组件安装不完整,系统检测故障,导致相关module运行状态异常。这2个原因中,Licensekey配置错误的问题能够通过NOV钻井CCTV系统的对比推断出来,软件运行异常,由于技术问题,国外服务商提供相关软件和安装说明,经国外服务商返修回来无法使用,国内服务商多数也只是能排查硬件故障,现场也无相关维修资料可以参考,对此维护经验很不足。这次通过对HERNIS Module Watchdog软件调用的HERNIS Watchdog Controller.dll动态链接库文件进行反编译,通过分析研究,找到运行出现closed for exception的可能报错原因,进一步解决相关软件问题,使系统软件得以正常运行,为后续HERNIS CCTV视频监控系统软件维护工作提供了一定参考依据。