經玉健
(南京國電南自軌道交通工程有限公司,江蘇 南京 210032)
地鐵綜合監控系統(Integrated Supervisory Control System,ISCS)作為一個高度集成的綜合自動化監控系統,主要是通過集成地鐵多個主要弱電系統,形成統一的工業級監控層軟硬件平臺。 該系統采用穩定、可靠的工業級網絡架構為載體,在其上搭建模塊式、類似積木結構的多層軟件開發平臺定制應用軟件,采用通用開放的硬件接口及軟件通信協議,與各接入子系統實現信息交換,最終實現對相關機電設備的集中監控功能和各系統之間的信息互通、信息共享和協調互動功能[1]。
目前,綜合監控系統與其集成/互聯的子系統數據交互,其數據接口大多使用可靠、穩定的工業規約,唯有視頻監控系統(Closed Circuit Television,CCTV)例外。 CCTV 系統通常在各車站站臺、站廳、出入口、換乘通道等地點設置攝像頭,對采集的視頻數據進行存儲,響應操作員的命令,提供視頻服務和云臺控制等功能,擔負著地鐵運營管理中的安防重任。
視頻監控系統的數據內容包括工業監控常見的視頻設備狀態的實時數據更新、用戶對某個攝像設備(球機、云臺攝像機)控制需求,更多的是某種壓縮格式多媒體視頻數據。 眾所周知,工業監控網絡最基本的要求就是可靠性和實時性[2],監控集成平臺的集成商也是根據這樣要求來選取骨干網節點交換設備的,一旦海量的視頻數據涌進綜合監控網絡,不僅不能保證CCTV 視頻畫面的播放,更危險的是可能會影響其他眾多子系統的正常工業監控功能,這就需要綜合監控系統以一種更巧妙的方式接入視頻監控子系統。
目前,各地綜合監控系統接入CCTV 系統的方式大都是由綜合監控軟件平臺廠商封裝CCTV 系統供應商提供的SDK 開發包,調用各種SDK 接口功能函數來完成與CCTV 子系統的數據交互。 開發包為視頻監控提供的商業軟件,多數只能在Windows 下使用,而綜合監控系統更多使用Unix/Linux 服務器,即使使用Windows,也容易被系統庫的版本問題所困擾。 視頻碼流的解碼播放工作也會給非視頻專業的綜合監控平臺軟件帶來相當的開發成本。 更關鍵的問題是隨著攝像數據采集技術的飛速發展,視頻畫面分辨率越來越高,數據量越來越大,其接入綜合監控系統一方面占用了大量網絡帶寬,嚴重影響其他系統的數據通信,另一方面大量視頻壓縮數據的解碼計算也給系統服務器帶來了非常大的負擔[3]。 同時,筆者所在的公司系統平臺客戶端瀏覽器推薦使用的是Chrome,幾乎沒有CCTV系統供應商能提供基于Chrome 的CCTV 系統插件,這就給封裝帶來了更大的困難。
為了克服上述問題,文章設計了本方案,利用視頻監控的數據特點將CCTV 數據平衡分成兩路通道來交互,所有實時控制數據流都與綜合監控其他子系統一樣,直接與其服務器模塊交互,進入綜合監控系統網絡;而工作站可以獨立使用專用通道(如增配專用網卡)來實現多媒體流實時播放。
前文提到,視頻監控系統按數據格式分有兩種數據與綜合監控交互往來。 一種是系統設備實時狀態數據和用戶的控制命令,這類數據其實與其他工業自動控制系統并無不同,要求實時更新、可靠性高;而另一類則是高清視頻數據,這類數據體量大,對網絡設備數據處理能力要求極高,但對實時性和數據包的可靠性要求不高,更像是商業軟件數據,這其實與工業監控系統的特點是矛盾的。
為了解決這個矛盾,本研究設計了SVC 三角平衡結構來實現地鐵綜合監控系統對于CCTV 視頻監控系統的集成。 綜合監控系統提供兩個數據端口分別接入CCTV 系統的兩種類型數據。 兩個數據端口分別位于系統服務器和系統工作站。 服務器端接口與CCTV 通信用于交互實時性、可靠性要求較高的實時設備狀態以及用戶控制命令數據,這個通道的數據是雙向的。 另一個接口位于綜合監控系統工作站上,專門用于接收處理高清視頻數據。 其工作原理如圖1 所示。

圖1 SVC 平衡架構
CCTV 子系統單純地擔當起視頻數據采集、控制終端以及數據存儲的角色,它需要同時維護與綜合監控服務器的控制流數據通道以及與綜合架空客戶端的多媒體流數據通道。 服務器端模塊使用跟其余工業監控子系統相同的通信模塊(通信模式和原理相同,僅項目具體數據點不同),實時更新視頻設備狀態,實時下發用戶請求,并準確記錄操作日志和歷史數據。
大數據量的數據解碼計算以及顯示任務由綜合監控客戶端(調度工作站)完成。 隨著瀏覽器性能的提高,前端腳本畫面的豐富,越來越多的綜合監控系統使用了Browser-Server(瀏覽器-服務器)架構,這就給本研究設計SVC 框架提供了技術便利。 瀏覽器腳本如Javascript 語言等可靈活地兼容各種瀏覽器視頻插件以實現所有包括對多媒體服務的請求以及對視頻格式數據的處理計算等復雜的計算工作。 而綜合監控服務器與客戶端之間的數據交流則通過系統內部數據傳輸機制來保證。
SVC 即dataSource (數據源) - View (畫面) -Controller(控制器)。
dataSource 即CCTV 子系統,它被單純地當做視頻數據源以及控制命令執行終端。
View 即綜合監控系統客戶端(客戶端瀏覽器+視頻播放器插件無疑是最通用、最合適的視頻顯示客戶端),它承擔著視頻數據的接收、解碼計算、視頻數據顯示以及控制命令的輸入、接收等任務。
綜合監控系統的服務器群組毋庸置疑是整個框架的Controller 角色,為了實現各子系統之間的數據共享和互動,重要的控制信息和命令下達必須由綜合監控系統這個心臟來完成。
用戶通過ISCS 客戶端用戶界面使用CCTV 子系統,相應的視頻請求或操控命令由ISCS 客戶端發送給ISCS 服務器,ISCS 記錄請求或命令,同時將該請求或命令通過ISCS?CCTV 之間的自定義工業規約發送給CCTV,由CCTV 返回結果。
這里結果分為兩類。 一類是視頻信息請求:CCTV向ISCS Server 返回相應的實時流媒體服務地址(其服務協議取決于CCTV 內部提供視頻服務的方式如RTSP,RTP 等,此內容非本文討論核心),ISCS 客戶端從ISCS Server 端獲得該服務地址,憑借此地址信息,ISCS 客戶端可直接向CCTV 子系統請求多媒體服務。ISCS 服務器端不僅記錄了用戶請求和命令信息,而且規避了海量的視頻格式數據。 另一類是ISCS 向CCTV 實時請求設備信息或下達控制命令,CCTV 向ISCS Server 返回所請求的設備實時狀態信息或命令執行結果,再由ISCS 收到后,客戶端負責展示給終端用戶,此類信息數據量小但對于系統運行管理來說非常重要,不管是數值還是操作日志都需在系統中妥善保存。
為了實現綜合監控系統的高度集成化,各子系統能夠進行聯動和數據共享,CCTV 子系統必須要有足夠的信息映射到綜合監控系統ISCS 中,本研究在ISCS 中為CCTV 子系統設計了一系列專有對象來實現CCTV的系統功能。
CCTVController 對象用于對應CCTV 子系統的接口/視頻服務器。 一方面用于記錄ISCS 與之接口的通信信息和監視子系統的通信狀態;另一方面則用于邏輯管理,作為下文要提到的Camera 對象的父對象(所有通過該接口被實現監控的Camera 都按其子對象管單。
Camera 對象對應每一個CCTV 系統的攝像頭終端,它是CCTV 最基礎最重要的對象,所有的視頻畫面、設備信息請求以及控制命令下達最終都會尋址到具體Camera 對象。 其重要屬性包括攝像頭名稱或編號、設備信息描述、設備類型、設備地址、用于實時PTZ控制的各種參數(移動速度、調節速度、移動方向、縮放、焦距、光圈等)、設備工作狀態、設備通信狀態、預置位編號等。
User 對象用于記錄當前通過ISCS 登錄CCTV 子系統的用戶信息,包括用戶名、操作員權限、用戶工作工作狀態等重要信息。
綜合監控系統ISCS 客戶終端,直接面向用戶,其軟件功能通常由客戶端瀏覽器+瀏覽器視頻播放插件實現,本設計以Google Chrome + VLC Media Player(基于GPL 的多媒體播放器)為例來說明。
用戶選擇視頻設備,發出播放請求后,Controller(ISCS Server)獲得所選擇的設備編號,向dataSource(CCTV)發出請求視頻指令,CCTV 根據編號查找到對應的視頻服務地址信息,將之返回給Controller。Controller 通過綜合監控系統內部通道將地址傳遞給View(ISCS Client)。 其余的工作完全由Chrome 視頻播放插件來完成。 至此,View?dataSource 之間就變成了單純的多媒體流服務,而兩者之間的數據通道則是工作站增配的專用網卡,這樣多媒體數據完全不會影響原有的綜合監控系統網絡。
本設計中處于數據源角色的CCTV 系統在本分流平衡架構中提供雙通道接口服務,一路是對ISCS Server 提供控制流數據的處理響應服務,其通信數據流遵循本設計自定義的接口通信規約;另一路是對ISCS Client 提供視頻數據的多媒體視頻服務。 ISCS Client提供通用的多媒體客戶端可支持目前常用的多媒體數據流格式。
本設計的目的就是使ISCS 服務器規避數據量巨大、數據復雜的多媒體數據流,僅需處理量小關鍵的實時控制流數據。 控制流數據通信雙方遵循自定義的ISCS-CCTV control-interface 1.0 規約。 該規約與普通工業規約類似,定義嚴謹規范。
隨著視頻監控功能被越來越多地集成到綜合監控系統中,最為困擾綜合監控設計師的是高清視頻數據對工業監控網絡的沖擊以及專業的視頻解碼渲染帶來的額外開發成本。 本設計利用視頻監控的數據特點和交互需求對其進行邏輯分流,使用巧妙的三角平衡架構幫助高清視頻數據避開了綜合監控主干網絡,而攝像頭畫面播放則交給成熟的瀏覽器視頻解碼插件解決。 當然,隨著國內地鐵建設的蓬勃發展,各地項目規劃各有特色,綜合監控集成平臺對各子系統的數據接入方式還需具體情況具體分析,只要能以用戶需求為本,理清軟件數據的脈絡,最后一定能找到高效的系統設計方案。