王 龍
(作者單位:國(guó)家廣播電視總局722 臺(tái))
短波廣播在播音過(guò)程中需要隨時(shí)切換播音天線,天線交換控制系統(tǒng)可以根據(jù)運(yùn)行圖或調(diào)度指令實(shí)現(xiàn)天饋線等相關(guān)設(shè)備自動(dòng)化運(yùn)行控制,完成發(fā)射機(jī)與天線之間的切換,是廣播發(fā)射機(jī)自動(dòng)化控制系統(tǒng)的重要組成部分。一套穩(wěn)定、高效的天線交換控制系統(tǒng)不僅可以在自動(dòng)模式下按照運(yùn)行圖自動(dòng)為每部發(fā)射機(jī)匹配指定天饋線,而且可以在發(fā)射機(jī)故障情況下,方便、快捷地手動(dòng)將需要播音的天線切換至代播機(jī)。但是,目前所運(yùn)行的天線交換開(kāi)關(guān)控制系統(tǒng)開(kāi)發(fā)時(shí)間早,技術(shù)和架構(gòu)都比較老舊,自動(dòng)化程度落后,運(yùn)行多年來(lái)逐漸暴露出諸多問(wèn)題。第一、軟件設(shè)計(jì)得不全面,天控系統(tǒng)是基于程序設(shè)計(jì)語(yǔ)言(Visual Basic,VB)開(kāi)發(fā)的,開(kāi)發(fā)技術(shù)相對(duì)老舊,且使用單線程技術(shù),一處發(fā)生故障或操作緩慢,就會(huì)導(dǎo)致整個(gè)程序宕機(jī)或卡頓。第二、運(yùn)行圖解析不完善,只能解析24 小時(shí)之內(nèi)的任務(wù),不會(huì)判斷第二天的任務(wù),即如果當(dāng)天后續(xù)沒(méi)有任務(wù),則系統(tǒng)判斷下一任務(wù)時(shí)解析的為當(dāng)天第一個(gè)任務(wù),而不是第二天的第一個(gè)任務(wù),從而出現(xiàn)用錯(cuò)天線或正確天線誤報(bào)的問(wèn)題。第三、運(yùn)行圖接收處理過(guò)程慢,天控系統(tǒng)接收機(jī)房平臺(tái)下發(fā)的運(yùn)行圖時(shí)需要等運(yùn)行圖同步到可編程邏輯控制器(Programmable Logic Controller,PLC)后才能接收信息,該過(guò)程比較緩慢,容易導(dǎo)致接收消息滯后,引起機(jī)房平臺(tái)運(yùn)行圖重發(fā)或判定下發(fā)接收失敗。多部發(fā)射機(jī)的運(yùn)行圖一起下發(fā)天控系統(tǒng)時(shí),天控系統(tǒng)容易死機(jī),從而影響節(jié)目的安全播出。另外,天線交換開(kāi)關(guān)控制系統(tǒng)還存在數(shù)據(jù)傳輸不規(guī)范、系統(tǒng)功能不足等問(wèn)題。
為了解決原有系統(tǒng)存在的不足,增強(qiáng)系統(tǒng)運(yùn)行的穩(wěn)定性、安全性,就需要技術(shù)人員應(yīng)用當(dāng)前先進(jìn)技術(shù),結(jié)合實(shí)際使用需求,設(shè)計(jì)開(kāi)發(fā)出新的天線交換控制系統(tǒng)。
鑒于之前系統(tǒng)面臨的問(wèn)題,本文以保證廣播節(jié)目安全播出為目的,從實(shí)際使用需求出發(fā),設(shè)計(jì)開(kāi)發(fā)了新型的天線交換控制系統(tǒng),該系統(tǒng)應(yīng)具備的性能和實(shí)現(xiàn)的目標(biāo)如下:第一,系統(tǒng)穩(wěn)定,能夠24 小時(shí)不間斷可靠運(yùn)行。拓展性強(qiáng),適用于多個(gè)操作系統(tǒng)平臺(tái),包括win7 和win10 等,并且兼容32 位和64 位的操作系統(tǒng)。第二,響應(yīng)快速,系統(tǒng)在接收發(fā)運(yùn)行圖時(shí),不接收滯后或消失。同時(shí),系統(tǒng)在接收多部發(fā)射機(jī)調(diào)度指令時(shí),既能保證快速、準(zhǔn)確,又不會(huì)發(fā)生宕機(jī)現(xiàn)象。第三、優(yōu)化每部發(fā)射機(jī)上任一天線的通道路徑,給信號(hào)傳輸提供最優(yōu)通道。第四、具有記錄功能,在系統(tǒng)發(fā)生軟件崩潰時(shí),可記錄崩潰前每個(gè)天線通路的情況,并有專(zhuān)門(mén)的文件夾進(jìn)行記錄。第五,使用直觀的圖形化模式,便于校對(duì)。系統(tǒng)還要具有日志查詢(xún)、存儲(chǔ)、導(dǎo)出功能,導(dǎo)出后為Excel 文件格式。第六,保證系統(tǒng)的穩(wěn)定性,同時(shí)具有良好的可拓展性。按照無(wú)線局規(guī)范要求進(jìn)行數(shù)據(jù)接口開(kāi)發(fā),保證數(shù)據(jù)傳輸格式規(guī)范、數(shù)據(jù)正確;完善運(yùn)行圖接收和解析過(guò)程,確保發(fā)射機(jī)連接正確 天線。
為優(yōu)化該系統(tǒng)的性能,技術(shù)人員在設(shè)計(jì)該系統(tǒng)時(shí),會(huì)使用目前成熟的技術(shù)和先進(jìn)的軟件體系架構(gòu),根據(jù)面向?qū)ο蟮南到y(tǒng)建設(shè)和開(kāi)發(fā)理念,更好完成系統(tǒng)的指標(biāo)要求。
系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)基于Microsoft.Net,.Net 是微軟公司新推出的軟件開(kāi)發(fā)平臺(tái),它是系統(tǒng)開(kāi)發(fā)的平臺(tái),也是系統(tǒng)的整體框架,同時(shí).NET 也是一個(gè)軟件開(kāi)發(fā)集合,包含軟件開(kāi)發(fā)過(guò)程中頻繁使用的中間代碼、數(shù)據(jù)訪問(wèn)、編程工具和XML 組件等。.NET 平臺(tái)可以實(shí)現(xiàn)跨設(shè)備、跨平臺(tái)、跨語(yǔ)言開(kāi)發(fā),使開(kāi)發(fā)和應(yīng)用效率得以大幅度提高[1]。
系統(tǒng)開(kāi)發(fā)使用C#語(yǔ)言、客戶(hù)端/服務(wù)器(Client/Server,C/S 架構(gòu)),使用特殊的設(shè)計(jì)方法。技術(shù)人員在開(kāi)發(fā)系統(tǒng)時(shí)應(yīng)用多線程技術(shù),不僅可以提高程序的響應(yīng)速度,而且在部分線程發(fā)生短時(shí)間阻塞時(shí),系統(tǒng)依然能夠繼續(xù)運(yùn)行,響應(yīng)其他線程的操作,這有效解決了單線程系統(tǒng)因線程阻塞造成系統(tǒng)崩潰的問(wèn)題。
系統(tǒng)運(yùn)行基于Windows 平臺(tái),運(yùn)行在微軟的.Net Framework4.5.2 框架下,操作系統(tǒng)要求是Windows7 或以上。
天線交換控制系統(tǒng)的硬件主要由上位機(jī)用戶(hù)操作界面系統(tǒng)(客戶(hù)端)和下位機(jī)邏輯控制系統(tǒng)組成。上、下位機(jī)通過(guò)網(wǎng)絡(luò)交換機(jī)與機(jī)房運(yùn)行監(jiān)控平臺(tái)連接,組成天線交換開(kāi)關(guān)控制系統(tǒng)網(wǎng)。
上位機(jī)由工控機(jī)、數(shù)據(jù)庫(kù)服務(wù)器和觸摸顯示屏組成,觸摸顯示屏設(shè)置在發(fā)射機(jī)房控制室內(nèi),屏上顯示交換開(kāi)關(guān)控制系統(tǒng)的用戶(hù)操作界面,是整個(gè)系統(tǒng)的操作臺(tái),主要負(fù)責(zé)人機(jī)交互和顯示各交換開(kāi)關(guān)、天線(假負(fù)載)和發(fā)射機(jī)的實(shí)時(shí)狀態(tài)和工況。值班人員可以在客戶(hù)端上完成對(duì)天線交換開(kāi)關(guān)的所有遠(yuǎn)程操作,系統(tǒng)設(shè)置、日志查詢(xún)和系統(tǒng)信息查詢(xún)等都在上位機(jī)上完成。系統(tǒng)通過(guò)上位機(jī)與機(jī)房運(yùn)行監(jiān)控平臺(tái)通訊,可以接收機(jī)房運(yùn)行監(jiān)控平臺(tái)下發(fā)的運(yùn)行圖和調(diào)度指令。
下位機(jī)設(shè)置在天線交換開(kāi)關(guān)室的控制柜內(nèi),界面是本地操作界面,當(dāng)上位機(jī)出現(xiàn)故障或遠(yuǎn)程通訊發(fā)生異常時(shí),值班人員可以在本地操作交換開(kāi)關(guān),完成天線倒換。下位機(jī)的主要功能是與上位機(jī)通訊,接收上位機(jī)的操作指令,按照操作指令,通過(guò)系統(tǒng)內(nèi)規(guī)定好的控制邏輯生成對(duì)各個(gè)交換開(kāi)關(guān)的控制信號(hào),包括定時(shí)信號(hào)和正反轉(zhuǎn)信號(hào),并將信號(hào)發(fā)送至PLC 控制組件,同時(shí)接收PLC 控制組件反饋回來(lái)的交換開(kāi)關(guān)狀態(tài)信息和交換開(kāi)關(guān)操作完成后的轉(zhuǎn)換到位信號(hào)。每次操作完成后,都要將接收到的狀態(tài)信息和到位信號(hào)上行至上位機(jī)。
PLC 控制組件是天線交換控制系統(tǒng)的執(zhí)行單元,PLC 負(fù)責(zé)接收下位機(jī)的控制指令,按照指令在交換開(kāi)關(guān)矩陣中選擇所需動(dòng)作的交換開(kāi)關(guān),控制所選擇天線交換通路上的三相異步電動(dòng)機(jī),電動(dòng)機(jī)向指定方向轉(zhuǎn)動(dòng),帶動(dòng)刀閘轉(zhuǎn)向,形成運(yùn)行圖所指定的發(fā)射機(jī)與天線間的射頻通路,實(shí)現(xiàn)天線的選擇[2]。另外,PLC 控制組件還要將通過(guò)微動(dòng)開(kāi)關(guān)采集的所有交換開(kāi)關(guān)的到位信息和狀態(tài)信息反饋至系統(tǒng)的下位機(jī)。
上位機(jī)與下位機(jī)分別設(shè)置在發(fā)射機(jī)房控制室和天線交換開(kāi)關(guān)室,二者距離較遠(yuǎn),加之發(fā)射機(jī)房電磁環(huán)境復(fù)雜,為確保通訊通暢,防止電磁干擾,二者之間的通訊信息要通過(guò)光電轉(zhuǎn)換后由光纖通路完成。
軟件采用插件式框架設(shè)計(jì),整個(gè)軟件由主程序和各個(gè)插件模塊組成,天線交換開(kāi)關(guān)控制系統(tǒng)的軟件體系結(jié)構(gòu)如圖1 所示。
系統(tǒng)的主程序?yàn)橄到y(tǒng)的主體框架,是整個(gè)軟件系統(tǒng)的神經(jīng)中樞,負(fù)責(zé)配置整個(gè)系統(tǒng),組織和管理系統(tǒng)插件的裝載、組合和有序運(yùn)轉(zhuǎn),為各個(gè)插件提供插件契約,插件契約就是插件之間的服務(wù)接口,系統(tǒng)內(nèi)所有插件間的數(shù)據(jù)傳遞全部通過(guò)系統(tǒng)框架統(tǒng)一的契約規(guī)范實(shí)現(xiàn),便于有效地組織和管理插件。
系統(tǒng)中包含有網(wǎng)絡(luò)通訊接口、運(yùn)行圖解析、交換開(kāi)關(guān)控制、數(shù)據(jù)庫(kù)存儲(chǔ)、監(jiān)測(cè)告警和狀態(tài)顯示,共六個(gè)插件模塊。網(wǎng)絡(luò)通訊接口模塊配置和初始化系統(tǒng)與機(jī)房運(yùn)行監(jiān)控平臺(tái)和PLC 控制組件間的通訊協(xié)議,負(fù)責(zé)完成機(jī)房運(yùn)行監(jiān)控平臺(tái)、天線交換開(kāi)關(guān)控制系統(tǒng)和PLC 控制組件間的數(shù)據(jù)通訊。運(yùn)行圖解析模塊負(fù)責(zé)解析從機(jī)房運(yùn)行監(jiān)控平臺(tái)接收到的運(yùn)行圖,生成運(yùn)行時(shí)間表,并將生成的運(yùn)行時(shí)間表存儲(chǔ)到數(shù)據(jù)庫(kù)存儲(chǔ)模塊中,運(yùn)行時(shí)間表中有當(dāng)天該發(fā)射機(jī)房需要執(zhí)行的所有任務(wù),是天線交換開(kāi)關(guān)控制系統(tǒng)的控制依據(jù)。交換開(kāi)關(guān)控制模塊訪問(wèn)數(shù)據(jù)庫(kù)中運(yùn)行時(shí)間表的播音任務(wù)和所有交換開(kāi)關(guān)的狀態(tài)信息,通過(guò)使用提前規(guī)定好的控制原則,生成控制交換開(kāi)關(guān)的控制指令。數(shù)據(jù)庫(kù)存儲(chǔ)模塊負(fù)責(zé)存儲(chǔ)系統(tǒng)中的各類(lèi)數(shù)據(jù)信息,包括運(yùn)行時(shí)間表、交換開(kāi)關(guān)狀態(tài)、系統(tǒng)運(yùn)行日志和故障報(bào)警信息等。監(jiān)測(cè)告警模塊負(fù)責(zé)監(jiān)測(cè)發(fā)射機(jī)、交換開(kāi)關(guān)和天線的運(yùn)行工況,與運(yùn)行時(shí)間表中的任務(wù)進(jìn)行比對(duì),出現(xiàn)異常時(shí)會(huì)及時(shí)發(fā)出聲光告警。狀態(tài)顯示模塊可以直觀地將發(fā)射機(jī)、交換開(kāi)關(guān)和天線的連接路徑以圖形樣式顯示出來(lái),并通過(guò)顏色區(qū)分設(shè)備的工作狀態(tài);同時(shí),狀態(tài)顯示模塊具備截屏功能,每次交換開(kāi)關(guān)運(yùn)行狀態(tài)改變后,其就會(huì)對(duì)交換開(kāi)關(guān)和天線的連接路徑圖進(jìn)行截屏,并將這些圖片保存在指定的文件夾,用來(lái)記錄系統(tǒng)意外崩潰前所有交換開(kāi)關(guān)和通路的狀態(tài)。插件模塊就是整個(gè)系統(tǒng)的各個(gè)器官,各個(gè)模塊之間獨(dú)立運(yùn)行,分別發(fā)揮自身的功能;模塊之間又相互聯(lián)系,互相訪問(wèn)數(shù)據(jù),提供系統(tǒng)的運(yùn)行條件。
筆者在設(shè)計(jì)與開(kāi)發(fā)該系統(tǒng)的過(guò)程中,使用的數(shù)據(jù)格式有VARCHAR(M)和NUMBER(M,N)兩種。VARCHAR(M) 用于表示長(zhǎng)度可變的字符數(shù)據(jù),M 表示該數(shù)據(jù)類(lèi)型所保存的字符串的最大長(zhǎng)度。NUMBER(M,N)為數(shù)字?jǐn)?shù)據(jù),若該數(shù)字是整數(shù)時(shí),用NUMBER(M)表示,M 表示該數(shù)字最大可設(shè)置為M 位;若該數(shù)字有小數(shù)部分,則用NUMBER(M,N)表示,其中M 和N 分別指數(shù)字最大是M 位長(zhǎng),其中包含N 位小數(shù)。系統(tǒng)的插件契約采用統(tǒng)一的數(shù)據(jù)格式,不僅有利于系統(tǒng)的維護(hù),而且可以增強(qiáng)系統(tǒng)的拓展性,便于系統(tǒng)日后更新、擴(kuò)容和升級(jí)。
天線交換開(kāi)關(guān)控制系統(tǒng)通過(guò)套接字(Socket)與機(jī)房平臺(tái)進(jìn)行通訊和數(shù)據(jù)交互。上行和下行的數(shù)據(jù)都按照協(xié)議中定義好的標(biāo)識(shí)位識(shí)別數(shù)據(jù)類(lèi)型,通訊協(xié)議還規(guī)定了每種數(shù)據(jù)類(lèi)型傳輸?shù)姆绞?。天線交換開(kāi)關(guān)控制系統(tǒng)與機(jī)房平臺(tái)間數(shù)據(jù)交互的明細(xì)表如表1 所示。
表1 天線交換開(kāi)關(guān)控制系統(tǒng)與機(jī)房平臺(tái)之間數(shù)據(jù)交互的明細(xì)表
天線交換開(kāi)關(guān)控制系統(tǒng)采用插件式模塊化結(jié)構(gòu)構(gòu)成,各模塊之間獨(dú)立運(yùn)行,只需經(jīng)過(guò)適當(dāng)?shù)慕M合配置,即可實(shí)現(xiàn)系統(tǒng)的總體功能。系統(tǒng)的幾個(gè)重要功能的實(shí)現(xiàn)方案如下:
短波廣播發(fā)射機(jī)房一般有多個(gè)發(fā)射機(jī),其同時(shí)對(duì)應(yīng)多個(gè)不同頻段,不同服務(wù)方向的天線交換開(kāi)關(guān)控制系統(tǒng)需要根據(jù)運(yùn)行圖規(guī)定的播音任務(wù),在每一播音時(shí)段,自動(dòng)為每個(gè)發(fā)射機(jī)準(zhǔn)確配備天線。某發(fā)射機(jī)的播音任務(wù)結(jié)束后,系統(tǒng)會(huì)通過(guò)訪問(wèn)運(yùn)行時(shí)間表明確該發(fā)射機(jī)下一播音任務(wù)的時(shí)間和所需要的天線,再通過(guò)查詢(xún)其他發(fā)射機(jī)和交換開(kāi)關(guān)的運(yùn)行狀態(tài),通過(guò)控制邏輯運(yùn)算得出該發(fā)射機(jī)天線倒換的時(shí)間[3]。控制邏輯如圖2所示。
由控制邏輯圖可以看出,發(fā)射機(jī)在完成一個(gè)播音任務(wù)后,首先會(huì)判斷距離下一播音任務(wù)是否有時(shí)間間隙,如果沒(méi)有則直接倒換天線開(kāi)始下一任務(wù)的播音;如果有時(shí)間間隙,且播音間隙內(nèi)有其他發(fā)射機(jī)需要倒換天線,則需要判斷此次天線倒換是否會(huì)對(duì)其他設(shè)備造成影響,若兩臺(tái)發(fā)射機(jī)的天線路由互不影響,則在播音結(jié)束后立即倒換至下一任務(wù)的天線準(zhǔn)備執(zhí)行下一任務(wù);若此次天線倒換會(huì)對(duì)其他發(fā)射機(jī)的天線倒換造成影響,且其他發(fā)射機(jī)的播音任務(wù)先于該發(fā)射機(jī),則需要將此發(fā)射機(jī)空置,等待其他發(fā)射機(jī)天線倒換完成后,再尋找其他路由為該發(fā)射機(jī)倒換天線。
天線交換開(kāi)關(guān)的基本控制原理是控制三相異步電機(jī),通過(guò)電機(jī)的正反轉(zhuǎn)帶動(dòng)開(kāi)關(guān)刀體轉(zhuǎn)動(dòng),刀體轉(zhuǎn)向可以連接饋管內(nèi)不同的觸點(diǎn),使高頻信號(hào)通過(guò)不同路徑去往不同的天線。當(dāng)多個(gè)天線交換開(kāi)關(guān)同時(shí)使用時(shí),信號(hào)通過(guò)的路徑就非常多。在設(shè)計(jì)和開(kāi)發(fā)系統(tǒng)時(shí),相關(guān)人員就需要對(duì)路徑進(jìn)行優(yōu)化,選擇出方便、快捷及不同發(fā)射機(jī)之間相互干擾小的路徑。最常用的天線交換開(kāi)關(guān)路徑選擇方法是枚舉法,在開(kāi)發(fā)系統(tǒng)時(shí),相關(guān)人員需要提前列舉出全部通路,并根據(jù)便利程度和對(duì)其他設(shè)備的影響程度,為每條通路設(shè)置優(yōu)先級(jí)。系統(tǒng)會(huì)自動(dòng)按照優(yōu)先級(jí)從高到低查詢(xún),選出該發(fā)射機(jī)使用某副天線當(dāng)前條件下優(yōu)先級(jí)最高的路徑,并按時(shí)完成倒換。例如,A01 機(jī)上3#天線通過(guò)不同交換開(kāi)關(guān)的動(dòng)作有多條路徑,按照優(yōu)先級(jí)的高低排列為A、B、C 等。當(dāng)需要完成A01 機(jī)上3#天線倒換時(shí),系統(tǒng)首先查詢(xún)A 路徑是否滿(mǎn)足條件,如果滿(mǎn)足則按A 路徑倒換交換開(kāi)關(guān),完成天線倒換;如果A 路徑中有交換開(kāi)關(guān)正在使用,開(kāi)關(guān)在閉鎖狀態(tài)不能轉(zhuǎn)換,則查詢(xún)B 路徑,以此類(lèi)推,直到找出當(dāng)前條件下最合理的 路徑[4]。
每一個(gè)天線交換開(kāi)關(guān)上都有多個(gè)微動(dòng)開(kāi)關(guān),當(dāng)開(kāi)關(guān)刀體轉(zhuǎn)動(dòng)到位時(shí),微動(dòng)開(kāi)關(guān)會(huì)將到位信號(hào)傳遞給PLC 控制組件,系統(tǒng)會(huì)通過(guò)PLC 控制組件定時(shí)上傳的數(shù)據(jù)得到所有交換開(kāi)關(guān)的位置信息,對(duì)整個(gè)天線交換開(kāi)關(guān)系統(tǒng)進(jìn)行巡回監(jiān)測(cè)。巡回監(jiān)測(cè)的結(jié)果是天線交換開(kāi)關(guān)路徑的選擇依據(jù)。同時(shí),系統(tǒng)還會(huì)將巡回監(jiān)測(cè)到的每個(gè)交換開(kāi)關(guān)的位置與運(yùn)行時(shí)間表中的任務(wù)需求進(jìn)行比對(duì),如果比對(duì)發(fā)現(xiàn)異常,系統(tǒng)就會(huì)發(fā)出告警,幫助值班人員及時(shí)發(fā)現(xiàn)錯(cuò)誤和交換開(kāi)關(guān)故障[5]。
天線交換開(kāi)關(guān)上還設(shè)置有高壓檢測(cè)裝置,其可以檢測(cè)交換開(kāi)關(guān)上是否有高壓信號(hào),在設(shè)計(jì)、開(kāi)發(fā)系統(tǒng)時(shí),相關(guān)人員可以根據(jù)高壓檢測(cè)結(jié)果設(shè)計(jì)系統(tǒng)的連鎖功能。另外,天線自動(dòng)交換系統(tǒng)必須要與發(fā)射機(jī)加高壓控制進(jìn)行閉鎖,不允許帶高壓進(jìn)行交換開(kāi)關(guān)的切換。而且,當(dāng)交換開(kāi)關(guān)不到位時(shí),發(fā)射機(jī)不允許上高壓。
在一年多時(shí)間的實(shí)際應(yīng)用中,本系統(tǒng)運(yùn)行穩(wěn)定、安全、高效、便捷,解決了原有系統(tǒng)存在的問(wèn)題,拓展了原有系統(tǒng)功能,能夠滿(mǎn)足現(xiàn)階段短波廣播發(fā)射的實(shí)際需求,對(duì)保障節(jié)目安全播出、加強(qiáng)廣播發(fā)射機(jī)的自動(dòng)化監(jiān)測(cè)和控制有良好的效果。