齊賦寧
(中國石油集團海洋工程有限公司, 天津 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視頻監控系統軟件維護工作提供了一定參考依據。