一、前言
ZF200中波發(fā)射機是北廣科技有限公司生產(chǎn)全固態(tài)大功率數(shù)字調(diào)幅200KW中波發(fā)射機。它采用了數(shù)字化音頻控制控制信號在射頻功率放大器末級實行高電平調(diào)幅先進技術(shù)。同時整機為全固態(tài)器件設計,控制系統(tǒng)采用了大量數(shù)字邏輯器件和可編程器件。這些先進技術(shù)和器件的使用使得整機的穩(wěn)定性高,操作簡單、日常維護工作量小,運行指標也十分優(yōu)越。筆者因工作原因為埃塞俄比亞國家某電臺兩部ZF200中波發(fā)射機編寫了一個遙控軟件。
下面將自己軟件設計的主要過程做一些介紹。
二、軟件設計
1.需求分析
用戶需求:(1)對機房的兩部發(fā)射機進行遙控和實時讀取發(fā)射機狀態(tài)。(2)對發(fā)射機供電的兩臺穩(wěn)壓器進行實時監(jiān)控。
ZF200中波發(fā)射機設計時有本地控制模式和遙控模式兩種工作模式。本地控制模式時通過面板開關(guān)按鈕或本機的觸摸屏操控發(fā)射機。當發(fā)射機處于遙控模式時,可以通過發(fā)射機的PLC可編程控制器的485串口進行遙控發(fā)射機。該機型的遙控模式還用于多個200發(fā)射機通過并機網(wǎng)絡進行并機工作時的控制和讀取表值狀態(tài),所以通過串口對ZF200發(fā)射機發(fā)送遙控指令來實現(xiàn)控制發(fā)射機和讀取發(fā)射機表值狀態(tài)時是具有硬件基礎(chǔ)。發(fā)射機的穩(wěn)壓器是上海松豐公司生產(chǎn)500KVA三相交流穩(wěn)壓器,同樣具有串口通信功能和完善的通信協(xié)議。
因此編寫軟件通過串口遙控發(fā)射機和穩(wěn)壓器實現(xiàn)遙控軟件是可行的。一般距離不超過200米的距離,可直接在計算機上加裝一個4串口的485通信卡,通過串口與遠端設備以485方式進行通信,編寫一個遙控軟件即可實現(xiàn)遙控功能。
2.功能模塊
根據(jù)用戶的需求,沒有對按照運行圖進行自動控制、運行數(shù)據(jù)的存儲查詢以及操作用戶進行分級管理等要求,只是一個遠程控制的需求,所以沒有日常的數(shù)據(jù)管理要求。因此不需數(shù)據(jù)庫支撐,軟件的架構(gòu)相對簡單些。只需設計兩個通信模塊與兩部發(fā)射機進行通信,將數(shù)據(jù)處理后顯示到主界面,在狀態(tài)顯示模塊上顯示發(fā)射機開關(guān)量狀態(tài),控制指令通過數(shù)據(jù)處理模塊后通過通信模塊發(fā)送到發(fā)射機即可。同樣設計兩個通信模塊與兩穩(wěn)壓器進行通信獲取數(shù)據(jù),數(shù)據(jù)處理模塊將處理成可供用戶識別的數(shù)據(jù)在穩(wěn)壓器狀態(tài)顯示窗體上顯示。
三、模塊介紹
1.發(fā)射機通信模塊
發(fā)射機PLC通信協(xié)議:串口參數(shù)9600,n,8,1無握手協(xié)議,輸入模式二進制模式。主從方式通信,發(fā)射機為從機,監(jiān)控端為主機,主機發(fā)指令從機響應。指令格式為:[設備號]+[指令字].[設備號]:長度為一個字節(jié);[指令字]:長度為一個字節(jié)。由于原發(fā)射機的485串口是組網(wǎng)方式,所以要設定設備號才可正確通信。設備號要根據(jù)PLC通信模塊的撥碼開關(guān)來設定。T01發(fā)射機的設備號為3,T02發(fā)射機的設備號為2.指令字從0到15,軟件使用以下指令:
狀態(tài)量查詢:X+1,PLC應答X+1+7BYTE(7個字節(jié)的狀態(tài)量)。
模擬量查詢:X+2,PLC應答X+2+22BYTE(22個字節(jié)的模擬量)。
關(guān)機:X+9,PLC無應答數(shù)據(jù)。
低功率:X+10,PLC無應答數(shù)據(jù)。
中功率:X+11,PLC無應答數(shù)據(jù)。
高功率:X+12,PLC無應答數(shù)據(jù)。
狀態(tài)量傳送格式:
模擬量傳送格式:模擬量數(shù)據(jù)共11個(共占用22個字節(jié),也就是11個字)。11個模擬量長度均各占用一個字(即2個字節(jié))。發(fā)送方式為高字節(jié)在前低字節(jié)在后,即先發(fā)送高字節(jié)后發(fā)送低字節(jié)。11個模擬量的發(fā)送順序如下:
程序設計流程:使用mscomm模塊進行通信,定時查詢串口有無數(shù)據(jù),有數(shù)據(jù)則通信正常,將數(shù)據(jù)傳數(shù)據(jù)處理模塊處理數(shù)據(jù)。無數(shù)據(jù)則通信不正常,清空數(shù)據(jù)模塊內(nèi)數(shù)據(jù)。
然后檢查有無控制命令數(shù)據(jù),有發(fā)送控制命令數(shù)據(jù)并清空命令數(shù)據(jù),無控制命令數(shù)據(jù)分別發(fā)送狀態(tài)查詢指令和模擬查詢指令。
2.穩(wěn)壓器通信模塊
穩(wěn)壓器通信協(xié)議:串口參數(shù)9600,n,8,1無握手協(xié)議,輸入模式文本模式。主從方式通信,發(fā)射機為從機,監(jiān)控端為主機,主機發(fā)指令從機響應。
協(xié)議基本格式:
SOI:協(xié)議頭(協(xié)議起始標志)固定為7EH;
VER:通信協(xié)議版本號(如本協(xié)議為32H);
CID1:設備地址(1~254,0、255保留);
CID2:設備類型(如26H);
CID2:命令信息:控制標識碼。響應信息:返回碼RTN;
LENGTH:INFO字節(jié)長度,包括LENID和LCHKSUM兩部分;
INFO:命令信息:控制數(shù)據(jù)信息COMMANDINFO.
響應信息:應答數(shù)據(jù)信息DATAINFO;CHKSUM:校驗碼(和校驗);EOI:協(xié)議尾(協(xié)議結(jié)束碼)固定為0DH;穩(wěn)壓器的通信協(xié)議比較豐富詳細,穩(wěn)壓器的設備地址、通信版本、設備類型已經(jīng)設定好,在軟件的通信程序固定設定好即可。只是校驗碼的計算和INFO長度的計算要按照協(xié)議的方法計算。因具體的協(xié)議內(nèi)容較長本文只對所涉及內(nèi)容要點做簡率介紹,其他內(nèi)容不做過多介紹。
獲取系統(tǒng)模擬量量化數(shù)據(jù)(定點數(shù)):
命令信息:CID1=26H,CID2=42H.響應的信息根據(jù)返回碼判斷數(shù)據(jù)正常,則在指定數(shù)據(jù)位截取數(shù)據(jù)即可。只是獲取的模擬數(shù)據(jù)要除以100才是實際值。
獲取開關(guān)輸入狀態(tài): 命令信息:
CID1=26H,CID2=43H.響應的信息根據(jù)返回碼判斷數(shù)據(jù)正常,則在指定數(shù)據(jù)位截取數(shù)據(jù)即可。
程序設計流程:使用mscomm模塊進行通信,定時查詢串口有無數(shù)據(jù),有數(shù)據(jù)則通信正常,將數(shù)據(jù)傳數(shù)據(jù)處理模塊處理數(shù)據(jù)。無數(shù)據(jù)則通信不正常,清空數(shù)據(jù)模塊內(nèi)數(shù)據(jù)。分別發(fā)送狀態(tài)查詢指令和模擬查詢指令。
3.主界面
主界面中T01顯示的編號為T01發(fā)射機的主要表值,點擊states即可進入狀態(tài)顯示界面查看開關(guān)量狀態(tài),點擊power即可進入穩(wěn)壓器顯示界面查看穩(wěn)壓器的工作狀態(tài)和表值。T02機的顯示內(nèi)容,操作與T01機一樣。點擊system set進入系統(tǒng)設置界面。Connet State顯示兩個發(fā)射機的通信是否正常。程序只需使用一個定時器每隔800毫秒根據(jù)讀取的數(shù)據(jù)刷新一次主界面,實時顯示數(shù)據(jù)。
4.狀態(tài)界面
狀態(tài)界面分別顯示了T01機功放機柜和整流電源柜的開關(guān)量狀態(tài),有故障時紅燈顯示,正常綠燈顯示。下方是帶燈按鈕指示。程序使用了一個定時器每隔800毫秒根據(jù)讀取的數(shù)據(jù)刷新一次界面,實時顯示數(shù)據(jù)。點擊按鈕,程序?qū)⑸上鄳目刂浦噶钔ㄟ^串口將指令發(fā)送到發(fā)射機PLC控制發(fā)射機。
5.穩(wěn)壓電源界面
穩(wěn)壓電源界面顯示的01號穩(wěn)壓器的設備號、通信狀態(tài)、輸入電壓、輸入電流、輸出電壓、輸出電流、運行方式狀態(tài)和告警內(nèi)容。程序使用了一個定時器每隔800毫秒根據(jù)讀取的數(shù)據(jù)刷新一次界面,實時顯示數(shù)據(jù)。
6.系統(tǒng)設置模塊
由于發(fā)射機的編號和發(fā)射機PLC的通信設備號已經(jīng)固定,所以系統(tǒng)設置界面只提供設置的數(shù)據(jù)顯示,未真正提供修改功能。
四、軟件實現(xiàn)情況
由于用戶要求使用英語系統(tǒng),因此選擇英文XP專業(yè)版作為運行環(huán)境,分辨率采用1023*768.主界面風格采用藍色基調(diào),高量度炫目風格。通過VB編程調(diào)試和測試所有功能均達到要求。該軟件若采用數(shù)據(jù)庫向結(jié)合,便可很輕松的增加按照運行圖自動開關(guān)機功能、自動抄表功能、故障查詢功能、數(shù)據(jù)統(tǒng)計分析等功能。