王辛望,沈小林,劉新生
(1.中北大學 計算機與控制工程學院,太原 030051; 2.江蘇曙光光電有限公司,江蘇 揚州 225009)
某型瞄準線穩(wěn)定測試系統(tǒng)RS232串行通信的研究
王辛望1,沈小林1,劉新生2
(1.中北大學 計算機與控制工程學院,太原 030051; 2.江蘇曙光光電有限公司,江蘇 揚州 225009)
某型瞄準線穩(wěn)定測試系統(tǒng)是用于測試和檢驗班組武器系統(tǒng)、輕型低空反導轉管機槍等武器系統(tǒng)中的光電跟蹤子系統(tǒng)瞄準線獨立性能的專用設備;介紹利用LabWindows/CVI實現(xiàn)上位機與下位機之間的通信,設計了瞄準線穩(wěn)定測試系統(tǒng),分析了下位機需要實時檢測的物理量信息;為了提高系統(tǒng)的可視性和實現(xiàn)對下位機的控制,通過RS232串行通信技術向上位機傳輸數(shù)據(jù);對上位機利用LabWindows/CVI的控件實現(xiàn)數(shù)據(jù)采集,數(shù)據(jù)顯示和存儲進行了研究;實驗結果表明,基于LabWindows/CVI的RS232串行通信的上位機數(shù)據(jù)采集與顯示系統(tǒng)具有可視性強、操作簡單等特性。
虛擬儀器;LabWindows/CVI;串行通信;RS232;單軸轉臺
在現(xiàn)代武器控制系統(tǒng)中,經(jīng)常使用瞄準線來搜索和跟蹤目標。在目標搜索和跟蹤過程中,瞄準線的空間穩(wěn)定性十分重要,它可以有效地消除各種誤差影響,便于人工捕捉,也可以使跟蹤更加平穩(wěn)跟蹤精度更高。根據(jù)班組武器系統(tǒng)、輕型低空反導轉管機槍武器系統(tǒng)的結構特點,設計了一種新型的瞄準線穩(wěn)定測試系統(tǒng),通過上位機對下位機發(fā)送指令,下位機接收指令后實現(xiàn)轉臺上光電瞄具系統(tǒng)的運動,并采集下位機的運行數(shù)據(jù)[1]。該系統(tǒng)可以完全模擬武器隨動系統(tǒng)在水平面上的運動,其中上位機與下位機的通信方式是該模擬系統(tǒng)運行的關鍵。該文重點介紹了串行通信的連接方法以及通過LabWindows/CVI實現(xiàn)串行通信,最終應用于瞄準線穩(wěn)定測試系統(tǒng)上位機與下位機的通信,實現(xiàn)數(shù)據(jù)發(fā)送、采集、存儲和處理,并驗證了該通信方案的可靠性[2]。
1.1 瞄準線穩(wěn)定測試系統(tǒng)的組成
瞄準線穩(wěn)定測試系統(tǒng)總體組成如圖1所示。其主要由單軸轉臺系統(tǒng)、目標模擬裝置(平行光管及四自由度臺架)和數(shù)據(jù)處理計算機系統(tǒng)以及交流穩(wěn)壓器等四大部分組成[3]。其中數(shù)據(jù)處理計算機系統(tǒng)作為上位機,單軸轉臺作為下位機,數(shù)據(jù)處理計算機系統(tǒng)與單軸轉臺的通信方式是研究的重點。
圖1 瞄準線穩(wěn)定測試系統(tǒng)總體框圖
1.2 串行通信
串行通信是把數(shù)據(jù)的每一位,用一條1位寬的傳輸線依次分時傳輸,即通信雙方一次僅傳輸一個二進制位,并且每次以一個二進制的0、1為最小單位逐位進行傳輸。串行數(shù)據(jù)傳輸?shù)奶攸c是:數(shù)據(jù)按位順序進行傳輸,僅通過一根傳輸線便可實現(xiàn),能夠節(jié)約傳輸線。串行通信還具有并行通信無法比擬地優(yōu)勢:傳輸距離長,可以從幾米到幾千米;在較長距離范圍內串行數(shù)據(jù)傳輸速率優(yōu)于并行數(shù)據(jù)傳輸速率;而且串行通信的通信時鐘頻率便于改變;另外串行通信的抗干擾能力很強,其信號間的相互干擾能夠徹底消除[4]。正是由于串行通信具有上述優(yōu)點,所以廣泛應用于數(shù)據(jù)采集、傳輸及控制系統(tǒng)中。
串行通信中經(jīng)常使用9針串口(DB9M),9針串口的針腳定義如表1所示[5]。
表1 9針串口的針腳功能
實際應用中一般采用5線進行信號傳輸,即TXD,RXD,RTS,CTS,GND。5線信號傳輸連接圖示如圖2所示。
圖2 5線信號傳輸連接圖
RS232總線是一種當今最普遍的通信方式,早期的儀器、PLC等都通過串口與計算機進行數(shù)據(jù)通信。把具有RS232總線接口的儀器作為I/O接口設備并通過RS232串口總線與上位機構成完整的虛擬儀器系統(tǒng),依然是當今應用最廣的虛擬儀器組成方式之一。該系統(tǒng)上位機與下位機的實際距離較短,并且根據(jù)對系統(tǒng)傳輸速度的要求,所以通過RS232總線連接是最佳的方案。
1.3 串行通信的選擇
串行通信需要保證雙方按照RS-232標準通信協(xié)議實行數(shù)據(jù)交換。在Windows操作系統(tǒng)的LabWindows/CVI軟件平臺下編寫串行通信程序,可以采用下面幾種方式[6]:
(1)利用開發(fā)工具自帶的函數(shù),LabWindows/CVI的RS-232函數(shù)庫列出了相對完整的串口通信函數(shù),能夠調用此類函數(shù)來控制。
(2)利用Windows API函數(shù),API是Windows的應用程序編程接口,它給出了完整的應用程序接口函數(shù),調用其通信函數(shù)能夠達到系統(tǒng)需要的通信功能。
(3)使用MSComm控件。
(4)使用動態(tài)鏈接庫。
使用MSCoom控件控制串口通信的程序設計方法給出了標準的事件處理函數(shù)、過程,并且可以方便地實現(xiàn)大部分通信功能,算法簡單,易操作;但其編程的靈活性受限,傳輸速率不高;API是Windows的應用程序編程接口,它列出了完整的應用程序接口函數(shù),功能強大、靈活性好、應用廣泛,調用它的通信函數(shù)完成系統(tǒng)要求的通信功能,但其原理復雜,無法達到該系統(tǒng)的設計要求[7]。在瞄準線穩(wěn)定測試系統(tǒng)中,為了滿足大數(shù)據(jù)量傳輸?shù)囊?,增強系統(tǒng)的靈活性,并且滿足上位機與單軸轉臺之間的距離要求。通過大量實驗,選擇LabWindows/CVI自帶的RS-232函數(shù)庫。當今絕大部分的軟件中還沒有RS232串口通信專用的函數(shù)庫,而LabWindows/CVI具有這樣的函數(shù)庫,讓繁瑣的串口通信便于操作[8]。
1.4 通信方案
為了實現(xiàn)該系統(tǒng)串行通信的功能,根據(jù)串行通信的特點,首先在進行串行通信之前,要驗證串口是否處于通的狀態(tài),對串口進行初始化,并且設置串口的波特率、校驗位、數(shù)據(jù)位等參數(shù),然后測試串口的屬性。當串口一切準備就緒,通過RS232接口從上位機向單軸轉臺發(fā)送的指令,單軸轉臺接收指令后按照指令實現(xiàn)單軸轉臺的運動,并將測試數(shù)采集收實現(xiàn)其通信功能。該瞄準線穩(wěn)定測試系統(tǒng)的程序流程圖如圖3所示。
圖3 瞄準線穩(wěn)定測試系統(tǒng)程序流程圖
上位機的LabWindows/CVI程序設計主要是完成對串口的設置、發(fā)送指令、接收指令和對采集到的數(shù)據(jù)進行整理、顯示[9]。該系統(tǒng)針對RS232的設置有,采用串口COM2;傳輸速率為9600bps;數(shù)據(jù)格式為8位數(shù)據(jù)位,1位停止位,無奇偶校驗位;通過上位機向單軸轉臺發(fā)送指令;單軸轉臺接收指令后產(chǎn)生運動并獲得測試數(shù)據(jù),將數(shù)據(jù)通過串口讀取。接收到的數(shù)據(jù)經(jīng)過適當?shù)倪\算和操作后利用LabWindows/CVI顯示控件顯示[10]。
LabWindows/CVI是美國NI公司推出的32位面向計算機測控方面的虛擬儀器軟件開發(fā)平臺,能夠在多操作系統(tǒng)下運行。它將功能強大的C語言與測試、控制有機結合,具有靈活的交互式編程方法、豐富的庫函數(shù)、完善的兼容性、多種不同的函數(shù)調用手段等優(yōu)勢,為開發(fā)人員提供了可靠的軟件開發(fā)環(huán)境[11]。利用LabWindows/CVI提供的開發(fā)環(huán)境和控件,編寫上位機程序,實現(xiàn)通過RS232串口對單軸轉臺進行控制,上位機程序的部分代碼如下所示。
2.1 串口設置程序
根據(jù)通信方案,設計的代碼主要實現(xiàn)數(shù)據(jù)的發(fā)送、采集和處理。首先要在主函數(shù)中打開串口,并對波特率等參數(shù)進行設置,其代碼如下所示:
OpenComConfig(2,””,9600,0,8,1,512,512);//打開并設置串口,此調用語句打開串口2,波特率為9600,沒有校驗,8個數(shù)據(jù)位,一個停止位,最大的輸入和輸出隊列長度都為512
SetCTSMode(2,LWRS_HWHANDSHAKE_OFF);//禁止硬件握手
FlushInQ(2);//清空接收隊列
FlushOutQ(2);//清空發(fā)送隊列
…….
CloseCom(2);//在整個程序結束后關閉串口
2.2 數(shù)據(jù)保存程序
通過串口將數(shù)據(jù)傳輸?shù)絾屋S轉臺,通過上位機對單軸轉臺的控制,將單軸轉臺運動的一系列數(shù)據(jù)再通過串口傳輸給上位機,并保存到上位機中用于記錄和比較誤差,其代碼如下所示:
int stat;
char filePath[MAX_PATHNAME_LEN]; //數(shù)據(jù)保存路徑
FILE *fp=NULL;
stat = FileSelectPopup ("", "*.txt", "","測試數(shù)據(jù)保存為……", VAL_OK_BUTTON,0, 0, 1, 0, filePath);//數(shù)據(jù)保存
2.3 數(shù)據(jù)圖像繪制程序
根據(jù)通信方案所要實現(xiàn)的功能,通過上位機的計算,將返回的數(shù)據(jù)通過圖像繪制出來,使得實驗結果更加直觀的呈現(xiàn)出來,其代碼如下所示:
GetCtrlVal(data_show_panel,DATA_PAN_CMDTORQUE,&view_torque_cmd);
GetCtrlVal(data_show_panel,DATA_PAN_ACTTORQUE,&view_torque_act);
GetCtrlVal(data_show_panel,DATA_PAN_CMDPOS,&view_pos_cmd);
GetCtrlVal(data_show_panel,DATA_PAN_ACTPOS,&view_pos_act);
GetCtrlVal(data_show_panel,DATA_PAN_CMDSPEED,&view_speed_cmd); GetCtrlVal(data_show_panel,DATA_PAN_ACTSPEED,&view_speed_act);//設置測試數(shù)據(jù)保存路徑,點擊開始采集后,采集測試數(shù)據(jù)
fp=fopen(SystemTestFile.dataPath,"r");
fp=fopen("testdata111.txt","r");
if(fp==NULL)
return -1 ;//讀取數(shù)據(jù)文件的第一行數(shù)據(jù)
fscanf(fp,"%d%d%d%d%d",&loadSimuTest.style,&loadSimuTest.rudderAngel,&loadSimuTest.grad,&loadSimuTest.freq,&loadSimuTest.keepCycle); //讀取文件數(shù)據(jù)
for(int j=0;j<5;j++)
{
fscanf(fp,"%s",str); //去除標題
}
//采集數(shù)據(jù)長度,方案1
while(!feof(fp))
{
if((fgetc(fp))==' ')
data_length++;
}
data_length-=1; //采集數(shù)據(jù)長度
//采集數(shù)據(jù)長度,方案2
for(data_length=0;;data_length++)
{
fscanf(fp,"%f%f%f%f%f" ,
&test_1,&test_1,&test_1,&test_1,&test_1);
if((fgetc(fp))==EOF) //判斷是否到達文件尾
break;
}
fseek(fp,0,SEEK_SET); //回到文件開頭處
for(int i=0;i<5;i++)
{
fscanf(fp,"%d",&test); //去除標志位
}
通過瞄準線穩(wěn)定測試系統(tǒng)對目標進行檢測和追蹤,根據(jù)不同的目標設計出位置方式、速度方式、搖擺方式、外控方式等四種不同的控制單軸轉臺運動的方式,可以對轉臺的運動位置、速度、加速度等參數(shù)進行設置[12]。當瞄準線穩(wěn)定測試系統(tǒng)工作時,對上位機輸入不同的指令,通過RS232串口將指令傳輸給轉臺。根據(jù)從上位機接收的指令,控制單軸轉臺不同的運動方式,其運動數(shù)據(jù)經(jīng)過適當?shù)姆治龊陀嬎阋詧D像的形式呈現(xiàn)出來[13]。待轉臺完成上位機發(fā)送的指令后,將轉臺運動的數(shù)據(jù)收集起來,并通過設計的程序將數(shù)據(jù)如圖4的形式存儲到上位機中,便于以后查看。
圖4 數(shù)據(jù)在上位機中的存儲
介紹了基于RS232串口的某瞄準線穩(wěn)定測試系統(tǒng),利用LabWindows/CVI作為開發(fā)平臺,設計出GUI界面通過RS232串口控制下位機的運動[14],并實現(xiàn)了數(shù)據(jù)的發(fā)送、采集、存儲及處理等功能,達到了該瞄準線穩(wěn)定測試系統(tǒng)的設計要求,在軍事中具有一定的應用價值。
[1] 雷 霖. 瞄準線獨立測試系統(tǒng)設計[D]. 太原:中北大學, 2016.
[2] 張鳳均. LabWindows/CVI開發(fā)入門和進階[M]. 北京:北京航空航天大學出版社, 2001.
[3] 黃金波. 雙35自行高炮獨立瞄準線控制系統(tǒng)研究[D]. 南京:南京理工大學, 2003.
[4] 高志華, 孫秀霞. LabWindows/CVI開發(fā)環(huán)境下實現(xiàn)串口通訊的方法[J]. 現(xiàn)代電子技術, 2004, 27(2):62-64.
[5] 劉君華. 虛擬儀器編程語言LabWindows/CVI教程[M]. 北京:電子工業(yè)出版社, 2001.
[6] 吳松齡.LabWindows/CVI下測控串行通信的實現(xiàn)方法[J].測控技術,2012,31(9):88-91.
[7] 葛磊蛟, 毛一之, 李 歧,等. 基于C語言的RS232串行接口通信實現(xiàn)[J]. 河北工業(yè)大學學報, 2008, 37(6):11-16.
[8] 趙長德, 徐 力, 陳 旻. 用于瞄準線穩(wěn)定和跟蹤的計算機控制系統(tǒng)[J]. 電光與控制, 1997(3):20-25.
[9] 陶小亮, 牛 振. LabWindows/CVI多線程技術在舵機測試軟件中的應用[J]. 中國測試, 2011, 37(1):81-83.
[10] 王海濤. 基于RS232串口的數(shù)控機床程序傳輸及狀態(tài)監(jiān)控系統(tǒng)的研究[D]. 長春:長春理工大學, 2012.
[11] 王建新,楊世鳳.LABWINDOWS/CVI測試技術及工程應用(附光盤)[M].北京:化學工業(yè)出版社,2006.
[12] 楊曉強, 齊 媛, 史雷蕾,等. 基于Matlab和ADAMS的光電穩(wěn)瞄系統(tǒng)結構控制聯(lián)合仿真[J]. 應用光學, 2016(5).:657-662
[13] Szabo R, Gontean A. Creating an RS-232 microchip for controlling the Lynxmotion AL5 type robotic arms[A]. IEEE, International Symposium for Design and Technology in Electronic Packaging[C]. 2015.
[14] 皇甫宜耿, 馬瑞卿, 楊永亮. 基于RS232串口通信的雙余度無刷直流電動機控制系統(tǒng)[J]. 微特電機, 2007, 35(5):43-45.
Research on RS232 Serial Communication of a Certain Type of Aiming Line Stability Test System
Wang Xinwang1, Shen Xiaolin1,Liu Xinsheng2
(1.School of Computer and Control Engineering,North University of China,Taiyuan 030051,China; 2.Jiangsu Shuguang opto-electronics Co.,LTD,Yangzhou 225009,China)
The stability test system of a certain type of aiming line is a special equipment used to test the independent performance of the photoelectric tracking subsystem of the team, such as the group weapon system, the lightlow altitude anti missile gun and so on. Introduces the realization of communication between PC and single axis turntable by using LabWindows/CVI, designs a line of sight stabilization test system, analysises the single axis turntable to physical quantity information of real-time detection.In order to improve the visibility and to achieve the control of the single axis turntable, data transmission through the RS232 serial communication technology. PC use LabWindows/CVI to control the widget to achieve data reception, data displaying and analysing. The experimental results show that the data acquisition and display system of RS232 serial communication based on LabWindows/CVI has the characteristics of strong visibility, simple operation and so on.
virtual instrument;LabWindows/CVI;serial communication;RS232;single-axis turnable
2016-11-21;
2017-01-05。
王辛望(1991-),男,碩士研究生,主要從事控制理論與控制工程,導航、制導與控制方向的研究。
1671-4598(2017)05-0123-03
10.16526/j.cnki.11-4762/tp.2017.05.034
TP274
A