趙銘 上海市嘉定區(qū)廣播電視臺(tái)
廣播電臺(tái)欄目設(shè)置一般都相對(duì)固定,以一個(gè)星期為循環(huán)單位,無特殊情況不會(huì)隨意改動(dòng),播出總控矩陣每天按照固定的編排,定時(shí)在各信號(hào)源之間切換,實(shí)現(xiàn)直播室、轉(zhuǎn)播上級(jí)臺(tái)、播出工作站等信號(hào)源之間的切換播出。這種全年相對(duì)固定的定時(shí)切換,如果采用值班員人工手動(dòng)切換,難免會(huì)發(fā)生切換時(shí)間不準(zhǔn)、切錯(cuò)信號(hào)源、未按時(shí)切換等人為差錯(cuò),從而引起播出事故的發(fā)生。定時(shí)的機(jī)械操作非常適合用計(jì)算機(jī)控制,只要編排好切換時(shí)間表,讓計(jì)算機(jī)去執(zhí)行切換控制命令,就可以避免手動(dòng)切換引起的差錯(cuò),大大減輕值班員的工作強(qiáng)度和工作壓力。所以,大多數(shù)廣播電臺(tái)的播出矩陣都是用計(jì)算機(jī)控制實(shí)現(xiàn)定時(shí)切換。定制開發(fā)軟件費(fèi)用較高,而價(jià)格便宜的控制軟件又達(dá)不到我們的使用要求。因?yàn)轫?xiàng)目經(jīng)費(fèi)不足,加之我們以前也有經(jīng)驗(yàn)類似軟件開發(fā),我們決定由矩陣生產(chǎn)廠商提供控制協(xié)議,自己開發(fā)矩陣控制軟件。
嘉定區(qū)廣播電視臺(tái)于2017年11月完成了廣播總控系統(tǒng)的數(shù)字化升級(jí)改造,關(guān)鍵設(shè)備選用了NEVION數(shù)字音頻矩陣、GV周邊機(jī)箱板卡、青島時(shí)鐘系統(tǒng)、ORBAN音頻處理器、福川音頻監(jiān)測(cè)、眾傳FM接收機(jī)等設(shè)備,加上原有的杭州聯(lián)匯音頻制播網(wǎng)絡(luò)系統(tǒng)和主備直播室系統(tǒng),構(gòu)成了完整的全臺(tái)廣播技術(shù)系統(tǒng)。
廣播播出總控信號(hào)源分別為主備播出工作站(用于播出本臺(tái)錄播節(jié)目)、四臺(tái)FM接收機(jī)(用于轉(zhuǎn)播中央臺(tái)和上海臺(tái)信號(hào)的接收)、主備直播室信號(hào)等。信號(hào)源經(jīng)過分配后進(jìn)入主備播出矩陣,播出矩陣的PGM輸出經(jīng)音頻處理器、D/A轉(zhuǎn)換和分配后送到主備發(fā)射機(jī)。圖1為廣播總控技術(shù)系統(tǒng)框圖。
圖1 廣播總控技術(shù)系統(tǒng)框圖
嘉定人民廣播電臺(tái)每天播出時(shí)間為6:00-22:00,共16個(gè)小時(shí),其中轉(zhuǎn)上級(jí)臺(tái)早晚兩次共2個(gè)小時(shí),直播欄目6個(gè)時(shí)段共5.5個(gè)小時(shí),錄播節(jié)目8.5個(gè)小時(shí)。由于錄播節(jié)目較多,所以將播出站放在總控,便于技術(shù)值班人員監(jiān)看狀態(tài),確保安全。
我們選用NEVION公司Sublime系列SL-AD160 2-110數(shù)字音頻切換器作為播出矩陣,該矩陣支持平衡數(shù)字音頻輸入輸出、交叉點(diǎn)狀態(tài)斷電記憶、雙電源供電,還支持以太網(wǎng)/RS-232/NCB控制,其中,NCB控制用于矩陣和控制面板的連接,以太網(wǎng)/RS-232用于電腦軟件控制,由于其使用簡便且安全可靠,在廣播電臺(tái)播控系統(tǒng)中使用較普遍。圖2是該音頻矩陣的主機(jī)和控制面板。
NEVION公司提供了該系列矩陣的控制協(xié)議(Network Control Bus and RS-232 Protocol),給出了X-point設(shè)置、狀態(tài)請(qǐng)求等命令的格式,外部電腦設(shè)備可以通過TCP/IP或RS-232發(fā)送切換、鎖定、查詢等控制命令,我們選用相對(duì)簡單安全的RS-232串口控制方式。
矩陣的RS-232接口為DB-9,針腳定義為:Pin 2-TXD、Pin 3-RXD、Pin 5-GND,串口傳輸?shù)臄?shù)據(jù)比特率為19200bps,8數(shù)據(jù)位,1停止位,無奇偶校驗(yàn)。電腦端RS-232的針腳定義為Pin 2-RXD、Pin 3-TXD、Pin 5-GND。RS-232控制線只要將電腦的Pin 2-RXD(接收數(shù)據(jù))與矩陣的Pin 2-TXD(發(fā)送數(shù)據(jù))相連、電腦的Pin 3-TXD(發(fā)送數(shù)據(jù))與矩陣的Pin 3-RXD(接收數(shù)據(jù))相連、雙方Pin 5-GND(信號(hào)地)互連,就可實(shí)現(xiàn)電腦與矩陣通過RS-232通信。
圖2 NEVION SL-AD1602-110數(shù)字音頻矩陣
圖3 設(shè)置音頻X-point的命令
設(shè)置音頻X-point的命令比較簡單,是一個(gè)三字節(jié)的命令,如圖3所示。
其中,Address可以是0-15,相對(duì)應(yīng)矩陣的1-16層。多個(gè)矩陣串接在一起需要設(shè)置層,以便于集中控制,相同層級(jí)的矩陣可以實(shí)現(xiàn)同步控制,我們未進(jìn)行串接使用,所以使用矩陣默認(rèn)的層1。Output是被控制的輸出口,可取范圍為0-127,對(duì)應(yīng)輸出口1-128。Input是被設(shè)置連接到輸出口的輸入口數(shù)字,可取范圍也是0-127,對(duì)應(yīng)輸入口1-128。例如,要將第2輸出口設(shè)置為第5輸入口,只需要向串口發(fā)送“$90、$01、$04”三個(gè)字節(jié)即可(注:Delphi語言中用$開頭的數(shù)字表示十六進(jìn)制數(shù))。
矩陣和控制面板接收到設(shè)置音頻X-point命令,執(zhí)行該命令后,在串口和NCB口上將回復(fù)一個(gè)ECHO(轉(zhuǎn)發(fā)該命令),使得網(wǎng)絡(luò)中的矩陣和控制面板都收到該命令,如果設(shè)備當(dāng)前狀態(tài)已經(jīng)設(shè)置,該命令將被忽略。另外,矩陣和控制面板正確執(zhí)行該命令后,將回復(fù)一個(gè)狀態(tài)應(yīng)答,除了第一個(gè)字節(jié)是$8n外,其他與設(shè)置命令相同,如圖4所示??刂栖浖赏ㄟ^串口接收到的應(yīng)答數(shù)據(jù),判斷矩陣是否已經(jīng)正確設(shè)置。如果未收到應(yīng)答或者收到的應(yīng)答數(shù)字錯(cuò)誤,可以重新發(fā)送命令,或者給出報(bào)警信息,提醒值班員檢查設(shè)備。
圖4 設(shè)置音頻X-point的命令應(yīng)答
采用Delphi編寫實(shí)現(xiàn)該矩陣控制軟件。為了提高安全性,軟件采用節(jié)目編排和播出控制分離的方式,兩個(gè)軟件模塊通過切換編排文件(文件后綴定義為PGM)進(jìn)行交互,使用TStringGrid表格控件作為矩陣編排和切換控制的顯示和操作,下面分別介紹兩個(gè)軟件的設(shè)計(jì)思路。
矩陣編排,就是編排生成一個(gè)PGM文件,供播控切換模塊調(diào)用執(zhí)行。PGM文件是一個(gè)的Trec記錄的記錄文件(File of Trec),Trec記錄的定義如下:Trec = record
time:string[8];
input,output:string[20];
comment:string[32];
week:array[1..7] of boolean;end;
其中字段week[]為一個(gè)布爾類型的數(shù)組,代表周一到周日中是否執(zhí)行該條節(jié)目命令;time為切換時(shí)間,是形如“hh:mm:ss”的八個(gè)字符,hh、mm、ss分別代表時(shí)、分、秒的數(shù)字;comment為備注文字;input、output為切換命令的輸入輸出口,此處用字符形式,比較直觀,便于編排,實(shí)際發(fā)送命令時(shí)將其轉(zhuǎn)換為數(shù)字。
矩陣編排軟件包括打開文件、保存文件、插入記錄、追加記錄、修改記錄、刪除記錄、按時(shí)間排序等功能(分別對(duì)應(yīng)著工具欄的七個(gè)按鈕),具體都在TStringGrid表格控件上實(shí)現(xiàn)。關(guān)于TStringGrid表格控件的插入、追加、刪除和排序等功能的實(shí)現(xiàn),在網(wǎng)絡(luò)上都有詳細(xì)介紹,本文由于篇幅有限,不再詳細(xì)敘述。為確保切換編排單正確,避免播控切換軟件出錯(cuò),每次保存文件前,軟件將自動(dòng)對(duì)切換編排表進(jìn)行檢測(cè)并按時(shí)間排序。矩陣編排軟件運(yùn)行界面如圖5所示。
圖5 矩陣編排軟件界面
矩陣切換控制軟件,按照矩陣編排軟件編排制作的PGM文件,對(duì)矩陣進(jìn)行定時(shí)切換控制,運(yùn)行界面也是在TStringGrid表格控件上編寫。切換控制軟件主要功能設(shè)計(jì)如下:
(1)工具欄上四個(gè)按鈕為軟件的主要功能,分別是打開文件、運(yùn)行、暫停、查看切換編排單。
(2)打開PGM文件后,在標(biāo)題欄顯示當(dāng)前打開的PGM文件名,將一周的切換編排表保存于內(nèi)存數(shù)組中,并將當(dāng)天的切換編排顯示在TStringGrid表格中。
(3)已過時(shí)刻的切換命令暗淡色顯示,當(dāng)前矩陣狀態(tài)顯示為黃色,下一條矩陣切換命令顯示為藍(lán)色,點(diǎn)擊“運(yùn)行”按鈕后,時(shí)鐘開始倒計(jì)時(shí),提示軟件已經(jīng)正常運(yùn)行,方便值班員檢查核對(duì)。
(4)每次開始運(yùn)行時(shí),軟件將過濾已過時(shí)刻的切換命令,定位到下一條即將到來的切換命令,到時(shí)間點(diǎn)時(shí)發(fā)送矩陣控制命令。切換控制軟件運(yùn)行界面如圖6所示。
(5)若需要應(yīng)急手動(dòng)控制,只需要點(diǎn)擊暫停,暫停倒計(jì)時(shí)后,軟件不發(fā)送控制命令。
(6)當(dāng)天的切換控制任務(wù)全部結(jié)束后,軟件將進(jìn)入等待調(diào)取第二天切換編排單狀態(tài),到晚上24點(diǎn)整再自動(dòng)調(diào)入下一天的切換編排單,并自動(dòng)開始運(yùn)行。
(7)軟件運(yùn)行界面只顯示當(dāng)天的切換編排單,點(diǎn)擊查看按鈕后,可以彈出窗口查看整個(gè)一周的切換編排單,以便值班人員進(jìn)行核對(duì),如圖7所示。
(8)軟件具有切換日志記錄保存功能。日志文件為一個(gè)以當(dāng)前日期時(shí)間命名的txt文本文件,日志記錄滿1000條自動(dòng)生成新文件,日志文件記錄切換控制軟件通過串口對(duì)矩陣發(fā)出的所有命令,以及軟件通過串口接收到的矩陣所有返回命令及其應(yīng)答,包括通過矩陣控制面板操作手動(dòng)切換命令。
圖6 矩陣切換控制軟件界面
圖7 查看一周切換編排單
播出切換軟件核心功能是定時(shí)發(fā)送串口切換命令,電腦與矩陣的串口通訊通過SPComm串口控件實(shí)現(xiàn)。軟件通過使用兩個(gè)Timer定時(shí)器實(shí)現(xiàn)比對(duì)當(dāng)前時(shí)間,兩個(gè)定時(shí)器都是每200ms執(zhí)行一次,其中Timer1主要負(fù)責(zé)執(zhí)行定時(shí)控制任務(wù)、發(fā)送切換命令并讀取下一條時(shí)間,Timer2主要負(fù)責(zé)調(diào)取第二天的編排表并開始新一天的控制任務(wù)。未點(diǎn)擊“運(yùn)行”按鈕前,兩個(gè)定時(shí)器都是關(guān)閉的,點(diǎn)擊“運(yùn)行”按鈕后,首先過濾掉已過時(shí)刻,讀取下一條時(shí)間,然后打開Timer1定時(shí)器、關(guān)閉Timer2定時(shí)器。
Timer1定時(shí)器運(yùn)行后,先顯示計(jì)算機(jī)當(dāng)前時(shí)間和下一切換的倒計(jì)時(shí),然后比對(duì)時(shí)間,如果已到切換時(shí)間,就發(fā)送切換命令并讀取下一條時(shí)間。如果當(dāng)天編排單已結(jié)束,則關(guān)閉Timer1定時(shí)器、打開Timer2定時(shí)器,等待調(diào)取第二天的編排單。發(fā)送切換命令通過SPComm串口控件的WriteCommData方法實(shí)現(xiàn)。
Timer2定時(shí)器運(yùn)行后,先顯示計(jì)算機(jī)當(dāng)前時(shí)間及到24點(diǎn)整的倒計(jì)時(shí),如果已經(jīng)到24點(diǎn)整,則調(diào)入第二天的編排單,并讀取第一條時(shí)間,然后開啟Timer1定時(shí)器、關(guān)閉Timer2定時(shí)器,開始執(zhí)行新一天的編排單。圖8為兩個(gè)Timer定時(shí)器的流程圖。
矩陣控制電腦通過另一個(gè)RS-232串口與青島GPS時(shí)鐘進(jìn)行校時(shí),設(shè)置為跳動(dòng)不校時(shí),確保時(shí)鐘安全、切換準(zhǔn)確。另外,當(dāng)矩陣執(zhí)行切換命令時(shí),會(huì)通過RS-232串口返回命令及矩陣當(dāng)前狀態(tài),軟件通過編寫SPComm串口控件數(shù)據(jù)接收事件Comm1ReceiveData,實(shí)時(shí)接收并顯示串口接收到的十六進(jìn)制數(shù)據(jù),并將接收到的數(shù)據(jù)計(jì)入日志文件。
圖8 定時(shí)器流程圖
播控定時(shí)切換軟件運(yùn)行期間不讀寫硬盤,也不訪問網(wǎng)絡(luò),通過Windows的任務(wù)管理器查看得知,運(yùn)行時(shí)占用的電腦資源極少,我們將該軟件安裝于廣播播出工作站上,對(duì)播出站的正常運(yùn)行無任何影響。由于矩陣對(duì)已經(jīng)執(zhí)行過的命令會(huì)自動(dòng)忽略,為了確保安全播出,我們對(duì)主播出矩陣采用了雙電腦控制,分別通過矩陣主機(jī)和控制面板的RS-232串口進(jìn)行控制,避免因電腦死機(jī)引起矩陣無法控制。本軟件已穩(wěn)定運(yùn)行兩個(gè)多月,未發(fā)生過任何錯(cuò)誤操作,同時(shí)也記錄了矩陣的所有切換日志,達(dá)到了預(yù)期的設(shè)計(jì)效果。