国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Delphi及串行通信實現(xiàn)的某型地面維護(hù)系統(tǒng)

2012-04-29 02:31:34伍斌
電腦知識與技術(shù) 2012年1期
關(guān)鍵詞:線程

伍斌

摘要:某型地面維護(hù)系統(tǒng)通過RS422A串行通訊口與電子控制器進(jìn)行數(shù)據(jù)通訊,對某型發(fā)動機數(shù)字式電子監(jiān)控系統(tǒng)進(jìn)行友好的交互式維護(hù)。該文深入地介紹了某型發(fā)動機數(shù)字式電子監(jiān)控系統(tǒng)地面維護(hù)設(shè)備的實現(xiàn)原理,以及Windows操作系統(tǒng)下利用串口通信機制實現(xiàn)該系統(tǒng)的方法。

關(guān)鍵詞:串行通信;SPCOMM;線程

中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)01-0180-03

Based on the Delphi and the Realization of Serial Communication of a Certain Type of Ground Maintenance System

WU Bin

(College of Computer Science&Technical,Guizhou University,Guiyang 550025,China)

Abstract:A certain type of ground maintenance system through the RS422A serial communication mouth and the electronic controller in data communication, in one type of engine digital electronic monitoring system for friendly interactive maintenance. This paper introduces a type of engine digital electronic monitoring system ground maintenance equipment in principle, and Windows operating system of serial communication mechanism to realize this system method.

Key words: serial communication; SPCOMM; thread

串行通信作為一種靈活、方便、有效的通信手段,被廣泛應(yīng)用于工業(yè)控制。在工業(yè)生產(chǎn)實踐中,用PC機和單片機或PLC工控機組成的系統(tǒng)對工程進(jìn)行實時監(jiān)控,完成數(shù)據(jù)采集、數(shù)據(jù)處理以及控制信號的產(chǎn)生與傳輸?shù)裙δ?。此時,PC機要與過程控制的實時信號相聯(lián)系,就要求能實現(xiàn)對PC機的串行端口進(jìn)行操作。準(zhǔn)確快速地完成這些功能,了解多路串行通信原理是關(guān)鍵。

1基于Windows的串行通信機制

Windows操作系統(tǒng)的機制禁止應(yīng)用程序直接訪問計算機硬件,其通信機制是使用Windows提供的串行通信API函數(shù)和設(shè)備控制塊(記錄塊DCB),用戶采用多線程技術(shù)來實現(xiàn)多路串行通信。在Windows中,操作系統(tǒng)為每個通信設(shè)備開辟了用戶可定義大小的讀/寫緩沖區(qū),數(shù)據(jù)進(jìn)出通信口均由操作系統(tǒng)后臺完成,應(yīng)用程序只需對讀/寫緩沖區(qū)操作即可。

它為程序員提供了一系列的標(biāo)準(zhǔn)API函數(shù),屏蔽了對通訊線控制器UART的編程及其它操作,其中幾個常用的串行通信操作函數(shù)如下:CreatFile打開串行口;CloseHandle關(guān)閉串行口;SetupComm設(shè)置通信緩沖區(qū)的大??;ReadFile讀串口操作;WriteFile寫串口操作;SetCommState設(shè)置通信參數(shù);GetCommState獲取默認(rèn)通信參數(shù);ClearCommError清除串口錯誤并獲取當(dāng)前狀態(tài)。

2系統(tǒng)實現(xiàn)

在某型地面維護(hù)系統(tǒng)中,采用軍用加固便攜式計算機為平臺進(jìn)行開發(fā),利用擴展IO板卡、RS422A通訊口及相應(yīng)接口,通過專門開發(fā)的維護(hù)軟件,進(jìn)行數(shù)字式電子控制器交互式維護(hù),具有良好的接口、功能擴展能力,具有友好的用戶界面及完善的即時幫助;以直觀、易用的操作模式支持?jǐn)?shù)字式電子監(jiān)控系統(tǒng)調(diào)試、檢測,發(fā)動機的內(nèi)、外場聯(lián)調(diào)、試車,數(shù)據(jù)修改、下載、分析等功能。

2.1系統(tǒng)硬件結(jié)構(gòu)

系統(tǒng)由一臺上位機(即定制的便攜式電腦,其中集成了擴展I/O板卡、RS422A串行通訊口及航空插頭),一臺電子控制器(含下位機A、下位機B和A/D轉(zhuǎn)換器)及定制的22芯15米屏蔽電纜組成。上位機主要是供用戶設(shè)置發(fā)動機參數(shù),存儲、處理控制器發(fā)送出來的數(shù)據(jù),對數(shù)字式電子控制器進(jìn)行交互式維護(hù);下位機是一臺數(shù)字式電子控制器,該控制器采用Texas Instruments公司研制的軍檔數(shù)字信號處理器(DSP)SMJ320F240芯片,并集成有模擬/數(shù)字轉(zhuǎn)換器ADC、數(shù)字/模擬轉(zhuǎn)換器DAC,頻率/計數(shù)器F/D、數(shù)字量輸入/輸出電路DI/DO及RS422串行通訊口等接口電路。系統(tǒng)硬件結(jié)構(gòu)見圖1。

2.2系統(tǒng)軟件功能模塊

地面維護(hù)軟件采用模塊化設(shè)計的方法,總體功能其劃分為9個模塊:

1)用戶權(quán)限認(rèn)證、管理模塊(CSC-1):驗證用戶身份,防止非授權(quán)用戶使用該系統(tǒng),并

按照用戶的使用情況進(jìn)行分級保護(hù),防止越級操作。

2)對電子控制器的上電、復(fù)位、故障模擬及運行模式設(shè)置模塊(CSC-2):通過虛擬儀器面板上的按鈕、開關(guān)等控件,控制IO板卡輸出信號,進(jìn)行電子控制器的上電、進(jìn)監(jiān)控狀態(tài)、復(fù)位、故障模擬、通訊通道切換及運行模式設(shè)置。

3)電子控制器實時通訊、管理模塊(CSC-3):保證與電子控制器進(jìn)行可靠快速的數(shù)據(jù)傳輸。

4)實時數(shù)據(jù)采集、示波、存儲模塊(CSC-4):對控制器當(dāng)前的各種狀態(tài)進(jìn)行直觀的顯示,其中包括64個控制器運行狀態(tài)信號、29個開關(guān)量輸入信號、24個開關(guān)量輸出信號、8個飛控信號、4個頻率量信號和14個模擬量信號,還包括當(dāng)前控制器的各種技術(shù)參數(shù)的顯示。

5)電子控制器飛行記錄數(shù)據(jù)下載、存儲模塊(CSC-5):將控制器在飛機飛行過程中記錄下來的數(shù)據(jù)從存儲器中下載到地面計算機中,然后可通過維護(hù)軟件的回放功能查看發(fā)動機在飛行過程中的各種狀態(tài)。6)維護(hù)數(shù)據(jù)檢查、修改、固化模塊(CSC-6):高級用戶可對電子控制器當(dāng)前的各種參數(shù)進(jìn)行查看,并可對參數(shù)進(jìn)行適應(yīng)性的修改。7)記錄數(shù)據(jù)回放、分析模塊(CSC-7):地面維護(hù)軟件提供對保存數(shù)據(jù)的回放功能,用以重現(xiàn)控制器在飛行過程中的各種狀態(tài),使維護(hù)人員更準(zhǔn)確的判斷控制器和發(fā)動機的狀態(tài)。

8)生成用戶維護(hù)日志模塊(CSC-8):由于對控制器參數(shù)的修改直接影響到控制器的正常運行,該軟件對維護(hù)過程中修改的每個參數(shù)都做了詳細(xì)的記錄,并生成日志文件,保證操作的可追溯性。

9)數(shù)據(jù)轉(zhuǎn)換成通用數(shù)據(jù)庫格式模塊(CSC-9):將保存下來的發(fā)動機參數(shù)數(shù)據(jù)轉(zhuǎn)換為通用數(shù)據(jù)庫的格式,要求將所有參數(shù)按規(guī)律轉(zhuǎn)存為Microsoft Excel格式,以便打印及進(jìn)行數(shù)據(jù)處理。

2.3通訊協(xié)議設(shè)計

地面維護(hù)設(shè)備與電子控制器之間通過一路全雙工的RS-422A串行總線通道進(jìn)行通訊。

2.3.1通訊描述

當(dāng)電子控制器上電完成初始化過程和POB后,進(jìn)入信息交換狀態(tài),開始發(fā)送/接收數(shù)據(jù)幀。通訊開始后,電子控制器按照周期50ms的周期向地面維護(hù)設(shè)備廣播式發(fā)送74字節(jié)長的數(shù)據(jù)包,當(dāng)?shù)孛婢S護(hù)設(shè)備收到電子控制器發(fā)來的同步頭后,馬上向電子控制器按應(yīng)答方式發(fā)送一幀12字節(jié)的維護(hù)數(shù)據(jù),通訊模式如此循環(huán)進(jìn)行。

2.3.2接口方式

地面維護(hù)設(shè)備與電子控制器之間接口采用全雙工的RS-422A串行總線接口進(jìn)行通訊,地面維護(hù)軟件自動檢測出計算機中可用的RS-422A串行總線接口,并設(shè)置可用串口為可選項,當(dāng)計算機中的某個串口不可用時,可以設(shè)置成其他可用串口進(jìn)行通訊,這樣大大提高了地面維護(hù)軟件的靈活性。

2.3.3通訊速率

默認(rèn)通訊的波特率均為115200bps,為了使地面維護(hù)軟件具有很好的移植性,特將地面維護(hù)軟件的通訊波特率設(shè)置為可選方式,包括可選項19200bps、38400bps、57600bps和115200bps。

2.3.4通訊周期

電子控制器向地面維護(hù)設(shè)備發(fā)送數(shù)據(jù)的通訊周期為50ms。地面維護(hù)設(shè)備向電子控制器發(fā)送數(shù)據(jù)的通訊周期為50ms。

2.4軟件實現(xiàn)

本系統(tǒng)中地面維護(hù)程序是使用Delphi7開發(fā)的Windows窗體結(jié)構(gòu)的應(yīng)用軟件,開發(fā)平臺為Windows2003服務(wù)器版和Win? dows2000專業(yè)版。程序中利用第三方控件SPComm實現(xiàn)串口通信。

地面維護(hù)軟件實現(xiàn)對控制器傳輸出的數(shù)據(jù)進(jìn)行解讀,并以各種適合的方式直觀地顯示出這些數(shù)據(jù)代表的信號的狀態(tài);另外,對控制器當(dāng)前的技術(shù)參數(shù)進(jìn)行適應(yīng)性的維護(hù)或修改。要完成這些工作,地面維護(hù)軟件首先要與控制器建立可靠、快速的通訊,兩者之間通過一個全雙工的RS422A串行通訊口進(jìn)行實時數(shù)據(jù)交互,依靠上述通訊協(xié)議來保證通訊的可靠性和實時性,各個接口都正確并且硬件設(shè)備連接無誤的情況下,兩者可進(jìn)行數(shù)據(jù)傳輸。

地面維護(hù)設(shè)備與電子控制器之間建立通訊后,維護(hù)軟件開始監(jiān)聽串口,當(dāng)接收到控制器輸出的數(shù)據(jù)后進(jìn)行分析和處理。

相關(guān)部分程序:

CommReceiveData函數(shù):從I/O端口接收數(shù)據(jù)函數(shù)(SRS-3.1.1)

功能:接收和處理數(shù)據(jù)過程

輸入:從串口接收到的數(shù)據(jù)

輸出:程序界面上的各種顯示(指示燈、波形、數(shù)據(jù)等)

Procedure CommReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);

var

i,Count: Integer;

ReceiveBuffer:PFrameData;

begin

ReceiveBuffer := Buffer;//從控制器緩存中讀取數(shù)據(jù)

for i:=1 to FrameLenght do

begin

FrameData[i] := ReceiveBuffer[i+4];

SaveDataBuf[i] := ReceiveBuffer[i+4];

end;

SetEvent(hEvt);//設(shè)置系統(tǒng)內(nèi)核事件,觸發(fā)數(shù)據(jù)處理線程

DealData(FrameData);//處理采集數(shù)據(jù)函數(shù)

inc(PBarNum);

PBR_RunState.Position := PBarNum; //采集狀態(tài)

end;

參數(shù)說明:Buffer接收數(shù)據(jù)緩沖區(qū);

BufferLength接收數(shù)據(jù)緩沖區(qū)長度

設(shè)計說明:采用獨立線程設(shè)計數(shù)據(jù)的存儲事件,以避免WINDOWS系統(tǒng)多任務(wù)工作對數(shù)據(jù)存儲的干擾,充分保證保存數(shù)據(jù)的實時性和準(zhǔn)確性。

procedure TSaveThread. SaveData;

begin

CurrentIndex := 1;//置當(dāng)前索引號為1

while not Terminated and not Application.Terminated do

begin

WaitForSingleObject(hEvt,INFINITE);//阻塞線程

ReadCount := ReadData;//讀數(shù)據(jù)函數(shù)

if CurrentIndex = 64 then//讀滿64*62字節(jié)則寫入數(shù)據(jù)文件

begin

WCount := WriteLine;//執(zhí)行寫數(shù)據(jù)函數(shù)

CurrentIndex := 0;

end;

CurrentIndex := CurrentIndex + 1;//級鏈緩沖索引號加1

end;

end;

參數(shù)說明:hEvt數(shù)據(jù)保存線程內(nèi)核事件

3結(jié)束語

該型地面維護(hù)系統(tǒng)已在的某型發(fā)動機地面試車、外場試飛、外場維護(hù)中都發(fā)揮了重要的作用,保存了大量的數(shù)據(jù),為該型發(fā)動機的研制、調(diào)試、改良提供良好的數(shù)據(jù)保障。

實踐證明在Delphi環(huán)境開發(fā)串口通信的程序具有靈活、方便、高效等特點,可解決該地面維護(hù)系統(tǒng)中串口通訊的可靠性和實時性、多線程實現(xiàn)數(shù)據(jù)的采集和處理、圖形圖象處理等關(guān)鍵難題,有很強的工程實用性。

參考文獻(xiàn):

[1]蔣方帥.Delphi程序設(shè)計[M].北京:清華大學(xué)出版社,2002.

[2]范逸之,陳立元.Delphi與RS232串行通信控制[M].北京:清華大學(xué)出版社,2002.

[3]黃軍,熊勇.Delphi串口通信編程[M].北京:人民郵電出版社,2002.

[4]胡漢才.單片機原理與接口技術(shù)[M].北京:清華大學(xué)出版社,2004.

猜你喜歡
線程
Linux 下多線程的方案實現(xiàn)與對比
基于C#線程實驗探究
基于國產(chǎn)化環(huán)境的線程池模型研究與實現(xiàn)
線程池調(diào)度對服務(wù)器性能影響的研究*
淺談linux多線程協(xié)作
線程池技術(shù)在B/S網(wǎng)絡(luò)管理軟件架構(gòu)中的應(yīng)用
基于上下文定界的Fork/Join并行性的并發(fā)程序可達(dá)性分析*
Linux線程實現(xiàn)技術(shù)研究
么移動中間件線程池并發(fā)機制優(yōu)化改進(jìn)
Java的多線程技術(shù)探討
計算機教育(2006年4期)2006-04-19 02:48:00
克什克腾旗| 昔阳县| 金秀| 靖边县| 扶风县| 武城县| 温宿县| 海林市| 南城县| 隆昌县| 平利县| 永吉县| 万全县| 工布江达县| 怀仁县| 滦平县| 罗源县| 寿阳县| 大荔县| 沈丘县| 瑞昌市| 仙居县| 容城县| 邯郸县| 白朗县| 东源县| 福州市| 阿瓦提县| 陵水| 襄樊市| 环江| 常州市| 屏山县| 翁牛特旗| 浙江省| 衡阳县| 旬阳县| 新疆| 澜沧| 澎湖县| 施甸县|