甘澤民 陳 丁
(1.西安工業(yè)大學(xué)北方信息工程學(xué)院 光電信息系,陜西 西安710032;2.西安黃河機(jī)電有限公司 設(shè)計(jì)研究所,陜西 西安710043)
現(xiàn)在很多防務(wù)裝備(導(dǎo)彈發(fā)射架、火炮、雷達(dá)天線等)都要求在某一基準(zhǔn)工作平面平臺(tái)始終保持“絕對(duì)”水平狀態(tài),所以在工作前和工作中都需要進(jìn)行水平校準(zhǔn)。通常測(cè)量的高精度角度測(cè)量都需要一維或者二維水平傳感器進(jìn)行水平角度測(cè)量或者校準(zhǔn),文中設(shè)計(jì)一種界面簡(jiǎn)潔,方便操作的二維水平傳感器通訊控制軟件可以實(shí)時(shí)地測(cè)量特定平臺(tái)水平度。
通過二維水平傳感器到裝備基準(zhǔn)平臺(tái)臺(tái)的傾斜度,采用RS-485總線傳輸,保證了數(shù)據(jù)的可靠性和抗干擾性。
利用Delphi7應(yīng)用程序編寫的該型號(hào)的專用通訊控制軟件,可以對(duì)其進(jìn)行數(shù)據(jù)采集,計(jì)算,補(bǔ)償,通過通訊控制軟件使用該傳感器實(shí)現(xiàn)對(duì)平臺(tái)傾斜度的測(cè)量。由于Delphi7是新一代可視化開發(fā)工具,它具有功能強(qiáng)大、簡(jiǎn)便易用和代碼執(zhí)行速度快等特點(diǎn),是全球公認(rèn)的快速應(yīng)用開發(fā)工具技術(shù)的先驅(qū)者,它越來越在構(gòu)架企業(yè)信息系統(tǒng)方面發(fā)揮著重要作用。Delphi的集成開發(fā)環(huán)境設(shè)計(jì)的非常簡(jiǎn)明,明快,用戶可以定制桌面設(shè)置,也可以建立一個(gè)適合自己的用戶界面,特別是在數(shù)據(jù)庫和網(wǎng)絡(luò)應(yīng)用方面,Delphi具有簡(jiǎn)便易用,靈活高效的特點(diǎn),故采用Delphi7進(jìn)行其專用通訊控制軟件的設(shè)計(jì)。
通訊控制軟件界面窗口見圖所示,其中圖中1為顯示窗口,顯示傳感器所檢測(cè)到的角度值;2為打開端口,右側(cè)下拉選項(xiàng)有com1,com2,默認(rèn)為com1;3為設(shè)置地址,右側(cè)編輯框內(nèi)填寫地址,默認(rèn)為00;4為清零按鈕,當(dāng)點(diǎn)擊時(shí),顯示窗口數(shù)據(jù)全部清零;5退出軟件,點(diǎn)擊后軟件關(guān)閉;6狀態(tài)檢測(cè)按鈕,為了防止意外斷電后重啟后,傳感器設(shè)置狀態(tài)不明,點(diǎn)擊該按鍵后檢測(cè)目前所處的工作狀態(tài);7校準(zhǔn)設(shè)置,每次使用傳感器之前必須進(jìn)行校準(zhǔn)設(shè)置;8為通訊速率設(shè)置,一般默認(rèn)9600;9為數(shù)據(jù)刷新速率選項(xiàng),默認(rèn)為50Hz;10為零點(diǎn)模式設(shè)置,默認(rèn)為絕對(duì)零點(diǎn);11為選擇應(yīng)答模式按鈕,默認(rèn)為主動(dòng)輸出模式;12為手動(dòng)讀取角度按鈕 (當(dāng)選擇應(yīng)答輸出模式才有效);10為按鍵角度輸出單位選項(xiàng),默認(rèn)為十進(jìn)制,還可以選擇分秒制,弧度制,密位制。
圖1 二維傳感器及通訊控制軟件窗口
將該型號(hào)二維水平傳感器是通過RS-485總線連接到PC機(jī),利用Delphi編寫好通訊控制軟件以后,通過調(diào)試后,便可使用。打開串口,設(shè)置好相關(guān)參數(shù)后,當(dāng)二維水平傳感器檢測(cè)到X軸,Y軸的角度,便可以在程序窗口的顯示,從而得到被測(cè)面的傾斜角度。
本軟件對(duì)二維水平傳感器通訊控制是主要采用Delphi中的Spcomm控件所完成的。主要根據(jù)而是二維水平傳感器的通訊協(xié)議,對(duì)其發(fā)送控制指令和接受其的返回?cái)?shù)據(jù)。
2.1.1 SPComm 控件引用
Delphi集成開發(fā)環(huán)境下,選擇下拉菜單Component中的 Install Component選項(xiàng),在彈出窗口中的 Unit file name處填寫 SP Comm控件所在的路徑,安裝后,在System控件面板中將出現(xiàn)一個(gè)紅色控件COM,即可像Delphi自帶控件一樣使用COM控件。
2.1.2 SPComm 控件的方法
Startcomm方法用于打開串口,當(dāng)打開失敗時(shí)通 常會(huì)報(bào)錯(cuò)。Stop Comm方法用于關(guān)閉串口,沒有返回值;Write Comm Data方法是帶有布爾型返回值的函數(shù),用于將1個(gè)字符串發(fā)送到寫進(jìn)程,發(fā)送成功返回true,發(fā)送失敗返回false。執(zhí)行此函數(shù)將立即得到返回值,發(fā)送操作隨后執(zhí)行。該函數(shù)有2個(gè)參數(shù),其中p Data To Write是要發(fā)送的字符串,dw Size of Data To Write是發(fā)送字符串的長(zhǎng)度。
…
mscomm1.Comm Port:=m_port+1; //指定端口
mscomm1.Settings := ’9600,N,8,1’; //其它參數(shù)
mscomm1.In Buffer Size :=1024; //接收緩沖區(qū)
mscomm1.Out Buffer Size :=1024; //發(fā)送緩沖區(qū)
mscomm1.Input Mode :=1;//接收模式 二進(jìn)制方式
mscomm1.Input Len :=0; //一次讀取所有數(shù)據(jù)
mscomm1.S Threshold :=0; //一次發(fā)送所有數(shù)據(jù)
mscomm1.In Buffer Count:=0; //清空讀取緩沖區(qū)
mscomm1.Out Buffer Count:=0; //清空發(fā)送緩沖區(qū)
mscomm1.Port Open:=true; //打開端口
MSComm1.R Threshold :=16; //設(shè) 置 接 收 多 少 字 節(jié) 開 產(chǎn) 生
oncomm事件
edit1.text:=’0.003°’;
edit2.text:=’0.006°’;
end;
procedure TForm1.oncomm(Sender:TObject);
var
buffer:Olevariant;
sTemp:string;
cNow:Char;
tmpX:Double;
begin
if MSComm1.Comm Event=com Ev Receive then//接受事件
begin
buffer:=MSComm1.Input;//讀取接受到的數(shù)據(jù)
…
通訊控制軟件可以對(duì)該傳感器實(shí)現(xiàn)對(duì)平臺(tái)傾斜度的測(cè)量,用軟件程序?qū)?shù)據(jù)進(jìn)行采集,計(jì)算,補(bǔ)償,以此得到更精確的物體平臺(tái)的傾斜角,可以在PC機(jī)上顯示出來。這樣的方法更容易控制傳感器,采集數(shù)據(jù)更加方便,快速,測(cè)量的結(jié)果更加準(zhǔn)確,也能使測(cè)量人員更容易架設(shè)設(shè)備,更容易操作設(shè)備,因此這種通訊控制軟件是更加有效,精確,快速方便測(cè)量?jī)A角的方法。
[1]王學(xué)慶.Delphi 6 數(shù)據(jù)庫設(shè)計(jì)實(shí)例導(dǎo)航[M].北京:科學(xué)出版社,2003.
[2]郭飛,陳根永,張德玲,等.基于RS485接口的電能計(jì)量數(shù)據(jù)采集[J].微計(jì)算機(jī)信息,2007,23(22):99-101.DOI:10.3969/j.issn.1008-0570.2007.22.043.
[3]王時(shí)繪,朱榮釗.Delphi+SPComm 實(shí)現(xiàn)串口通信[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2007(8):135-137.DOI:10.3969/j.issn.1007-1423-B.2007.08.047.