于 堅
(陜西廣播電視臺,陜西 西安 710061)
隨著計算機通信技術(shù)的高速發(fā)展,廣播電視發(fā)射機監(jiān)控技術(shù)正朝著數(shù)字化、網(wǎng)絡(luò)化、智能化方向發(fā)展,從原先的單臺設(shè)備監(jiān)控,已發(fā)展到對整個發(fā)射臺播出設(shè)備、配電系統(tǒng)、機房環(huán)境的實時監(jiān)測和運行管理。
陜西廣播電視發(fā)射塔負責(zé)8 套調(diào)頻廣播和3 套電視節(jié)目的無線播出工作,根據(jù)廣電總局《廣播電視安全播出管理規(guī)定》中關(guān)于自臺監(jiān)控的要求,需建立一套統(tǒng)一的集中監(jiān)控系統(tǒng),以實現(xiàn)對發(fā)射臺播出系統(tǒng)的全面監(jiān)控。
SNMP(Simple Network Management Protocol)即 簡單網(wǎng)絡(luò)管理協(xié)議[1?3],為網(wǎng)絡(luò)和系統(tǒng)管理提供了底層框架,使得網(wǎng)絡(luò)和系統(tǒng)管理員能夠遠程監(jiān)測和配置管理其網(wǎng)絡(luò)設(shè)備、操作系統(tǒng)、應(yīng)用系統(tǒng)等[4],該協(xié)議目前已經(jīng)成為使用最廣泛的網(wǎng)絡(luò)管理標準協(xié)議。
SNMP 是一種應(yīng)用層的網(wǎng)絡(luò)協(xié)議,基于管理工作站(NMS)/代理模式,傳輸層使用無連接服務(wù)的用戶數(shù)據(jù)報協(xié)議UDP,實現(xiàn)了不同廠商設(shè)備與網(wǎng)絡(luò)管理系統(tǒng)的互聯(lián)互通。SNMP 共有8 個版本,在實際應(yīng)用中SNMPv1,SNMPv2,SNMPv3 這3 個版本應(yīng)用最為廣泛[5]。
SNMP 協(xié)議簇由管理信息結(jié)構(gòu)和標識(SMI)、管理信息庫(MIB)、SNMP 協(xié)議構(gòu)成[6]。SMI 定義了SNMP 框架中可用的管理信息的類型和語法;MIB 描述了代理能夠為管理工作站提供的信息,以及管理工作站對這些信息的操作權(quán)限(查詢或設(shè)置);SNMP 協(xié)議是管理工作站與代理之間的通信協(xié)議。RFC1157 中定義了SNMPv1中規(guī)定的5 種操作,每種操作對應(yīng)一個協(xié)議數(shù)據(jù)單元(PDU)類型的定義:get,get?next,set,get?response,trap。
由于SNMP 協(xié)議在工業(yè)領(lǐng)域的廣泛應(yīng)用,廣播電視發(fā)射機的遙控接口從早期的采用RS 232/RS 485 串行通信,通過串口服務(wù)器將發(fā)射機接入網(wǎng)絡(luò)[7?8],逐漸轉(zhuǎn)至采用SNMP 通過以太網(wǎng)進行遠程監(jiān)控[9?10]。利用以太網(wǎng)在組網(wǎng)方式上的便利性,使得多臺發(fā)射機、配電系統(tǒng)以及機房環(huán)境等關(guān)鍵數(shù)據(jù)的集中監(jiān)控更容易實現(xiàn)和擴展,本文將重點介紹基于SNMP 的發(fā)射臺集中監(jiān)控系統(tǒng)的開發(fā)。
目前播出使用的Harris FAX10 型調(diào)頻發(fā)射機和SIEL 電視發(fā)射機均采用SNMP 協(xié)議,這里以Harris FAX10 型發(fā)射機為例,對其SNMP 展開具體分析。
MIB 是一種“標準”,使用ASN.1 語言定義被管理對象。網(wǎng)絡(luò)管理者通過SNMP查詢設(shè)備信息時,必須查詢設(shè)備的MIB,以確定是否有對應(yīng)的被管理對象定義。MIB是以層次化的方式組織設(shè)備管理信息,樹中的每一個節(jié)點都代表著該設(shè)備的某項運行狀態(tài)數(shù)據(jù),都有其唯一的對象標識符(OID),管理工作站可以通過OID 指定要訪問的數(shù)據(jù)項。
根據(jù)Harris 公司提供的MIB,可通過MIB 瀏覽器進行調(diào)試。MIB 瀏覽器的功能是使用搜索目錄樹的方法,定位和顯示MIB 中被管理對象的值,可通過向管理對象發(fā)送操作請求,接收和顯示變量綁定表中的內(nèi)容。
這里以接收發(fā)射機基礎(chǔ)數(shù)據(jù)為例,通過MIB 瀏覽器調(diào)試結(jié)果如圖1 所示。右側(cè)即為查詢指定OID(1.3.6.1.4.1.290.9.2.1.1.5.1.9.0)的返回值,包括paVoltage(PA 平均電壓)、paCurrent(PA 總電流)、outForwardPower(整機輸出功率)、outReflectedPower(整機反射功率)等以及一些發(fā)射機狀態(tài)開關(guān)量信息。Harris 發(fā)射機采用SNMPv2,支持get?bulk 操作,即一次獲得表中多個變量值,減少了查詢大量管理信息時所進行的協(xié)議交換次數(shù),便于數(shù)據(jù)采集。
發(fā)射機的使能控制主要包括開機、關(guān)機、升功率、降功率,通過set 操作改變SetValue 的值,即可遠程控制發(fā)射機完成相應(yīng)的操作。如圖2 所示,TXBaseControl 的OID 為:1.3.6.1.4.1.290.9.2.1.1.5.3.1,set 值可以設(shè)為1(開機)、2(關(guān)機)、3(升功率)、4(降功率)。在理解了Harris發(fā)射機的MIB 庫后,便可以進行SNMP 報文分析,只有理解報文結(jié)構(gòu)才能編寫應(yīng)用程序,實現(xiàn)對發(fā)射機狀態(tài)監(jiān)測和遠程控制。
圖1 Harris MIB 調(diào)試結(jié)果
圖2 MIB 中TXBaseControl 調(diào)試結(jié)果
2.2.1 BER 編碼
SNMP 使用BER(Basic Encoding Rules)作為傳輸語法,它將數(shù)據(jù)按ASN.1 定義的數(shù)據(jù)類型格式進行二進制編解碼和傳輸。BER 的基本思想是將數(shù)據(jù)表示成標志、長度、內(nèi)容(T,L,V),即傳輸數(shù)據(jù)的類型(Tag)、大?。↙ength)和值(Value)。如圖3 所示,BER 約定字節(jié)的最高有效位在最左邊(bit7),最低有效位在最右邊(bit0)。
以對象標識符OID(1.3.6.1.4.1.290.9.2.1.1.2.2)為例,Tag 為06H,長度L 為0DH(13 個字節(jié)),V 值為2B 06 01 04 01 82 22 09 02 01 01 02 02。其中,2B 十進制為43,說明第一、第二個整數(shù)分別為1 和3。由于每個字節(jié)可以表示整數(shù)的范圍是0~127,而290 大于127,其二進制表示為1 0010 0010,因此使用2 個字節(jié)表示,第1 個字節(jié)最高位為“1”,表示有后續(xù)字節(jié),后7 位為000 0010;第2 個字節(jié)的最高位為“0”,表示本字節(jié)為最后1 個字節(jié),后7 位為010 0010,這2 個字節(jié)最終的編碼為1000 0010 0010 0010,十六進制表示為82 22。
2.2.2 SNMP 報文分析
為了理解Harris 發(fā)射機SNMP 的報文結(jié)構(gòu),這里采用抓包軟件獲取SNMP 數(shù)據(jù)包,如圖4 所示。圖4 中,陰影部分以上是IP,UDP 的相關(guān)信息,陰影區(qū)報文是一個ASN.1 序列結(jié)構(gòu),是根據(jù)BER 規(guī)則對數(shù)據(jù)進行編碼的信息,這里以框內(nèi)數(shù)據(jù)為例,具體解析如表1所示。
圖3 BER 的基本結(jié)構(gòu)和字節(jié)順序
圖4 捕獲的SNMP 數(shù)據(jù)包
表1 報文分析
從表1 的分析可知,GetResponse?PDU 返回了發(fā)射機實時參數(shù)PA 平均電壓值,以及其他一系列發(fā)射機運行參數(shù)和狀態(tài)開關(guān)量信息,因此通過對SNMP 報文PDU數(shù)據(jù)包內(nèi)容的解析即可獲得相應(yīng)的Harris 發(fā)射機運行參數(shù)。
陜西塔調(diào)頻機房共有Harris 發(fā)射機Z10CD 型4 臺,F(xiàn)AX10 型4 臺,備機2 臺。除FAX10 型發(fā)射機外,其 余均采用RS 232 通信。電視機房有6 臺發(fā)射機,其中2 臺SIEL 發(fā)射機為SNMP 通信,其他均采用RS 232/RS 485通信。當這些設(shè)備出現(xiàn)功率降低、模塊故障或駐波比增大的情況時,傳統(tǒng)的人工巡檢方式不能及時發(fā)現(xiàn)問題并處理,因此需開發(fā)一套集中數(shù)據(jù)采集和遠程監(jiān)控系統(tǒng),實現(xiàn)對全部發(fā)射機的集中監(jiān)控,并集成電力、環(huán)境監(jiān)測功能。
3.2.1 系統(tǒng)硬件結(jié)構(gòu)
調(diào)頻發(fā)射機通過2 臺倒備控制器完成底層數(shù)據(jù)采集和控制,電視發(fā)射機通過3 臺采集控制器完成數(shù)據(jù)采集和控制,機房溫濕度和煙感信息通過環(huán)境采集器進行數(shù)據(jù)采集,配電柜電壓電流參數(shù)通過電力采集器采集。這些下位機通過以太網(wǎng)交換機,將實時數(shù)據(jù)通過TCP 連接方式傳送給臺站服務(wù)器,由服務(wù)器完成采集數(shù)據(jù)的處理、存儲和控制指令的發(fā)送,并進行遠程控制,該系統(tǒng)硬件結(jié)構(gòu)圖如圖5 所示。
圖5 系統(tǒng)硬件結(jié)構(gòu)圖
3.2.2 系統(tǒng)軟件功能
在本次發(fā)射臺集中監(jiān)控系統(tǒng)的設(shè)計中,其軟件應(yīng)具備以下功能:
1)系統(tǒng)能夠采集模擬電視發(fā)射機、調(diào)頻廣播發(fā)射機等設(shè)備運行參數(shù)并實時顯示。
2)系統(tǒng)具備定時開關(guān)機、遠程遙控、啟用/禁止自動倒備機、升降功率等功能。
3)支持顯示電力、環(huán)境監(jiān)測參數(shù)并實時顯示,可設(shè)置報警門限,故障時發(fā)出告警。
4)支持實時聲光報警,并可以通過配置不同的用戶組實現(xiàn)報警發(fā)送。
5)支持通過圖形曲線和表格等顯示形式,對監(jiān)測數(shù)據(jù)、報警信息等進行分析處理,具備抄表、自動記錄和網(wǎng)絡(luò)化傳輸?shù)裙δ堋?/p>
由于本系統(tǒng)涉及的硬件設(shè)備較多,包括調(diào)頻發(fā)射機、電視發(fā)射機、溫濕度傳感器、煙感探頭、電力采集器等,軟件系統(tǒng)分為下位機軟件和上位機軟件,下位機軟件負責(zé)對管理的設(shè)備進行數(shù)據(jù)采集和控制,上位機軟件負責(zé)可視化操作、圖形界面生成、數(shù)據(jù)庫管理和軟件功能模塊的實現(xiàn),系統(tǒng)軟件結(jié)構(gòu)示意圖如圖6 所示。由于篇幅有限,本文將重點介紹數(shù)據(jù)通信核心部分,即下位機基于SNMP 的發(fā)射機數(shù)據(jù)采集和控制軟件的開發(fā),串行通信部分可參考文獻[11?12]。
圖6 系統(tǒng)軟件結(jié)構(gòu)示意圖
3.3.1 發(fā)射機結(jié)構(gòu)體
由于采集的發(fā)射機運行數(shù)據(jù)的數(shù)量較大,為了設(shè)計方便,建立數(shù)據(jù)結(jié)構(gòu)體,將從發(fā)射機上采集的數(shù)據(jù)放入結(jié)構(gòu)體中,其代碼如下:
3.3.2 SNMP 類
SNMP 通信軟件的開發(fā)主要完成以下兩個內(nèi)容:構(gòu)造正確的PDU,組成SNMP 報文;對發(fā)送或接收的SNMP報文進行BER 編解碼。為了便于程序開發(fā),可以通過編寫SNMP 類來完成SNMP 報文的封裝,SNMP 類主要完成BER 編解碼,從PDU 中獲取將Vb 對象或?qū)b 對象綁定到PDU。其中,Vb 對象是封裝了一個對象標識符和一個ASN.1 值的數(shù)據(jù)結(jié)構(gòu)。
SNMP 類的成員函數(shù)主要包括:
3.3.3 下位機主程序
下位機主程序完成采集器與發(fā)射機之間的SNMP通信,并將實時采集數(shù)據(jù)發(fā)送給上位機,同時接收上位機的控制信息,對發(fā)射機進行開關(guān)機和升降功率操作。Harris發(fā)射機每1 s采集一次數(shù)據(jù),SIEL 發(fā)射機每600 ms采集一次數(shù)據(jù)。以Harris 發(fā)射機數(shù)據(jù)采集為例,核心代碼如下:
對于接收的數(shù)據(jù)通過數(shù)據(jù)解析函數(shù)(bool DataAnaly(unsigned char*Dat,unsigned int num))處理,首先對GetResponse?PDU 或Trap?PDU 內(nèi)容進行BER 解碼,再將對應(yīng)OID 的變量值逐一取出,根據(jù)發(fā)射機實際運行數(shù)據(jù)做相應(yīng)換算得到電壓、電流、功率等實時數(shù)據(jù),并將實時采集數(shù)據(jù)和狀態(tài)開關(guān)量存入transmitter 結(jié)構(gòu)體中,最后將這些數(shù)據(jù)發(fā)送給上位機。
3.3.4 上位機系統(tǒng)界面和功能
上位機服務(wù)器端集中監(jiān)控系統(tǒng)采用B/S 架構(gòu),具有系統(tǒng)登錄、基本信息、電力監(jiān)測、環(huán)境監(jiān)測、動態(tài)瀏覽、發(fā)射機監(jiān)控、播出統(tǒng)計、報警查詢和報警分析9 個功能模塊,其主界面如圖7 所示。
主界面中上部顯示10 臺調(diào)頻發(fā)射機的實時運行參數(shù),左側(cè)為3 臺配電箱的電壓電流參數(shù),下部為調(diào)頻機房實時溫濕度和煙感信息。此外,播出統(tǒng)計、報警查詢和分析、發(fā)射機開關(guān)機和功率調(diào)整等功能也集成在系統(tǒng)子菜單中,以方便值班和技術(shù)人員查看和操作。
本系統(tǒng)開發(fā)過程中的難點是實現(xiàn)與多臺多型號發(fā)射機之間的可靠通信,由于不同發(fā)射機各自通信方式和協(xié)議上的差異,需進行大量的調(diào)試工作,因此深入理解設(shè)備的SNMP 等相關(guān)協(xié)議是系統(tǒng)實現(xiàn)的基礎(chǔ)。本系統(tǒng)后期仍需繼續(xù)開發(fā),完善N+1 切換功能模塊,集成視頻監(jiān)控模塊,開發(fā)移動終端監(jiān)控模塊,以實現(xiàn)智能手機終端隨時隨地對臺站運行情況的實時監(jiān)控,從而進一步提高發(fā)射臺站自動化監(jiān)控水平。
圖7 調(diào)頻發(fā)射機實時數(shù)據(jù)監(jiān)控界面