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