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