金莉萍
(天津廣播電視電影集團,天津 300070)
監控系統是廣播發射技術的重要分支,對設備穩定、播出安全及降低工作強度具有實用價值。隨著計算機控制應用日漸廣泛,世界各大工控廠商的DCS和組態軟件日趨成熟,但它們對小型或特殊用途裝置而言,存在價格昂貴、很多功能無用武之地、不能滿足特殊性要求等問題,故仍需自主開發小型化、低成本、具有特殊功能的控制系統。目前,數據采集和傳輸所用的計算機接口卡已標準化,研華基于計算機(PC)的接口卡價格低廉,總線插槽直接置入PC,軟件支持完善,特別適用于工業控制應用。兼顧發射機控制功能復雜、安全可靠、易用易維護及經濟性考慮,該系統采用接口卡與串口相結合的方式作為監控系統解決方案。
系統配置如圖1所示,以研華IPC-610H工業PC為上/下位機,作為系統硬件平臺,多功能數據采集卡PCI-813B和數字量I/O卡PCL-731作為I/O通道,RS-232/RS-485轉換作為發射機串口訪問通道,實現監測信號輸入與控制信號輸出。該配置主要特點為:
1)PCI-813B和PCL-731板卡功能強大、可靠性高、實時性好。前者是12位32通道模擬量采集(A/D)卡,提供高壓隔離,軟件觸發實現模擬量輸入。后者提供48路并行數字量I/O,仿真可編程并行I/O接口芯片8255模式0,提供更高驅動能力的I/O緩沖,中斷方式實現數字量I/O[1]。

2)數據采集。基于穩定性考慮,模擬量采集和開關量輸入均采用光電隔離保護。PCL-731輸入端接PCLD-782B,PCL-731輸出端接PCLD-785B,繼電器輸出。難以識別的毫伏級模擬量,通過放大電路處理,確保信號正確采集。
3)PC機擁有眾多硬件支持廠商,軟件類型繁多。系統硬件允許不同結構類型和不同通信協議設備接入,可靈活組建并擴展系統,系統軟件可采用高級語言、友好開發界面和較為復雜的控制算法。
4)該結構安裝簡單靈活,系統組成比較簡單,提供冗余I/O通道,便于擴展和維護。
該系統實際應用在薊縣府君山調頻、電視和天塔調頻發射機及其附屬設備。監控涵蓋發射機、天倒及假負載等設備,涉及多變量和多工作流程的實時監測與控制。
控制軟件是控制系統的靈魂,就該系統而言,可充分發揮高級語言VC[2]的優勢,開發基于Windows 2000平臺性能優異的控制軟件。控制軟件設計要求實時可靠,與功能協調統一。軟件結構設計如圖2所示,數據庫是系統運行核心,可以保存系統運行產生的動態數據和正常運行所需的各種內部信息,各功能模塊通過實時數據存取及處理完成各種功能。程序包括監控和界面兩部分:監控程序實時采集和輸出數據,實現數據處理運算、寫數據庫及控制功能;界面程序訪問數據庫實現數據顯示、報警等內容,實時更新及操作。該系統采用上位機/監視終端/下位機,即客戶機/服務器結構,多線程設計[2],實現界面和程序控制。下位機系統可獨立運行,實現監控系統全部功能;上位機系統實現監控系統管理;監視終端實現系統運行監視。基于下位機系統功能設計包括控制、通信、數據訪問、短信報警及關機4個線程。控制線程實現發射機及其附屬設備控制;通信線程實現發射機串口通信及與上位機以太網通信;數據訪問線程實現接口卡及發射機串口數據訪問;短信報警及關機線程實現發射機故障短信報警及短信控制發射機斷電關機。基于上位機系統顯示功能設計包括數據采集及更新2個線程。數據采集提取下位機采集的數據,實現每500 ms更新所有數據,各線程保證了不同任務運行的同步。上述設計使各功能模塊既相對獨立,又兼顧實時性和協調性,具有結構分級、單點控制、多點監視的特點。

基于Windows平臺的工控軟件應用已成為主流,可充分利用Windows豐富的資源,開發界面友好、功能復雜的應用程序。該系統軟件開發采用面向對象編程語言VC++6.0,可視化控件及高級技術的應用,使程序開發簡單快捷[2]。
控制是監控系統設計的核心與關鍵。設計要求安全可靠,復雜度較高,且需貼合實際。考慮常規播出和發射機、天線及外電等故障因素對播出的影響,設計假負載試機/關機、開/關假負載、天線播出/關機、時間表開機/關機、開機播出、斷電重開、強制拉閘、故障及強制倒機等流程控制。各流程設計為獨立控制類。故障倒機判斷流程如圖3所示。

控制類實現自動和遙控兩類控制。自動控制是下位機系統獨立運行的根本,按預置時間及發射機等設備狀態,自動調用相應控制類實現播出控制。遙控根據手動發送指令,調用相應控制類實現播出控制。具體為上位機系統定義手動遙控類,使用TCP/IP服務類發送控制指令至下位機系統,下位機系統解析指令,調用相應控制類執行播出控制。流程控制所需參數設置為:1)外電重起次數。設置外電故障,重啟發射機次數,該次數后,視為設備故障,另行處理。2)故障倒機閾值。發射機輸出功率下限低于該值,滿足故障倒機條件之一。3)外電恢復時間。該時間內供電恢復正常,重開發射機。4)試機時間。超過該時間,中斷試機。
為確保控制安全,系統設計為延時控制,旨在確認有效性。具體為:1)開機延時,以確認天線到位;2)倒機滿足保持,故障出現后延時,以確認非自行消除故障發生;3)數據采集延時,開機且工作穩定后,采集有效數據;4)音頻報警延時,超過該時間仍無音頻,報警。
通信是系統基礎,系統采用Mscomm控件定義串口通信類,實現下位機與發射機間串口通信;Socket API定義TCP/IP通信線程,實現下位機與上位機間以太網通信。通信協議設計包括請求和應答命令,主要針對該系統字符型數據設計,其他需轉換類型,再做協議傳輸。該線程調用定義的TCP/IP通信服務類,實現上位機與下位機間實時數據存取命令的發送、接收及解析。
實現發射機控制和運行監視的基礎,包括串口數據訪問線程和接口數據訪問類。
1)串口數據訪問線程。定義串口訪問類,使用串口通信類,創建和發送命令,接收并解析發射機控制單元串口提供的控制和參數類數據,采集數據寫入實時數據庫,發射機發生動作時,該線程暫時掛起。
2)接口數據訪問類。定義輸入/輸出控制類,使用接口數據訪問底層,采集模擬及開關量,控制開關量輸出。底層包括模擬和數字量I/O操作動態鏈接庫,根據接口卡底層I/O操作動態鏈接庫封裝而成,更透明、直觀、通用,節省內存,易于接口操作和軟件升級。
控制系統數據具有多類型特點,主要包括采集數據、控制輸出數據、實時數據、長期保存數據(如控制參數等)和操作記錄等。根據數據使用情況,采用實時數據庫(RTDB)、文件及關系數據庫實現數據存儲。
1)RTDB。用于接收I/O通道的輸入數據并實時更新,為控制、報警、管理及顯示等模塊提供一致性實時信息,減少數據冗余,避免內存垃圾。兼具實時性、存取高效性及高可靠性特質。通過事務管理解決數據訪問和存儲沖突。該系統RTDB采用內存存儲,采集數據存于數組,定時更新并寫入歷史數據庫。定義RTDB類,使用該類定義的讀寫函數提供數據給應用對象。RTDB類定義包括初始類和讀寫函數。初始類創建各種結構體數據對象,并建立數據對象索引,以提高訪問速度;讀寫函數提供數據對象基本操作,如由數據對象ID獲取其他屬性等。提供數據對象讀寫操作,將緩沖區存放數據寫入RTDB數據對象,讀取數據對象當前值。
2)文件存儲。鑒于文件存儲具有讀取速度快、寫文件方便、可避免數據庫訪問失效等優點,適于下位機系統獨立運行,以文本、配置及數據文件存于外存(硬盤)。
3)歷史數據庫。數據訪問采用速度快、占用內存少的ADO技術。該系統采用SQL關系數據庫。數據庫建立和數據存儲過程實現如下:
(1)建立數據庫。其設計旨在記錄發射機運行情況,以備故障分析及設備檢修之用。主要設計事件、抄表、操作及時間表修改記錄等若干數據表。其中,事件記錄存儲發射機、下位機及上位機的報警、任務、遙控操作及通信事件;抄表記錄存儲發射機模擬量指標;操作記錄存儲操作動作(如遙控開機等動作);時間表修改記錄存儲修改前/后的時間表。
(2)創建ADO訪問控件。建立、控制與ADO數據庫連接,OLE DB提供者設為SQL,并使其他ADO控件共享此連接。
(3)建立數據存儲過程。創建Datagrid控件,Connection屬性指向ADO訪問控件,使之與數據庫相連,這樣既可訪問數據庫的所有數據表,也可實現數據庫查、插、刪、改等操作。在監控程序中,根據不同需要建立不同數據表的存儲過程,以實現數據庫實時更新。
事件是尋找問題根源的重要依據。下位機任務、開關及模擬量報警等事件使用TCP/IP通信服務類送入上位機,上位機系統定義事件顯示類,不同類型事件配以不同顏色和報警音。定義嚴重報警類,對需手動處理的事件,單獨給出報警事件及報警音,直至用戶處理。采用CS-inglelock與CMutex實現多線程事件資源訪問控制,用Lock和Unlock實現互斥占有和釋放,以實現資源安全共享。
基于用戶權限管理,實現發射機控制操作身份認證,具有控制權限的用戶可執行發射機控制,確保播出控制安全。
通過該系統在薊縣府君山調頻、電視和天塔調頻發射機及其附屬設備的實踐表明,控制系統工作穩定可靠,成功實現發射機及其附屬設備的實時控制。確保了安全優質播出,提高了工作效率和管理水平。
[1]研華(中國)培訓中心.數據采集系統應用與編程[EB/OL].[2010-03-16].http://doc.baidu.com/view/e1b1320203d8ce2f0066233d.html.
[2]KRUGLINSKI D J.Visual C++技術內幕[M].4版.潘愛民,王國印,譯.北京:清華大學出版社,2001.