Delphi開發(fā)環(huán)境下的實時數(shù)據(jù)采集程序設(shè)計_第1頁
Delphi開發(fā)環(huán)境下的實時數(shù)據(jù)采集程序設(shè)計_第2頁
Delphi開發(fā)環(huán)境下的實時數(shù)據(jù)采集程序設(shè)計_第3頁
Delphi開發(fā)環(huán)境下的實時數(shù)據(jù)采集程序設(shè)計_第4頁
Delphi開發(fā)環(huán)境下的實時數(shù)據(jù)采集程序設(shè)計_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Delphi 開發(fā)環(huán)境下的實時數(shù)據(jù)采集程序設(shè)計信黔(哈爾濱工程大學(xué) 動力與核能工程學(xué)院,哈爾濱 150001 ) 1 概述 IDE所得的可視化 界面設(shè)計風(fēng)格和面向?qū)ο蟮某绦蛟O(shè)計等特點,已廣 提供了良好的界面設(shè)計能力,在 PC 串口通信方面 功能。 理以及對數(shù)據(jù)采集器控制的過程。由于串行通信具 有所用的傳輸線少,可適用于較遠距離傳輸?shù)忍?點,實踐中常采用以PC 機為主機,通過線纜連接, 進行控制,并接收采集到的數(shù)據(jù)和采集器的狀態(tài)信 直接控制硬件,而是通過操作系統(tǒng)提供的設(shè)備驅(qū)動 程序來進行數(shù)據(jù)傳遞,或者說是通過系統(tǒng)提供的數(shù) 據(jù)結(jié)構(gòu)與系統(tǒng)進行信息交換,進而完成數(shù)據(jù)的發(fā)送 和接收。串行口在 Win 3

2、2 中是作為文件方式來處 數(shù)。讀寫串口的操作一般可以通過4 種形式加以實 詢方式簡單直接,但占用了大量的 CPU 時間;同步方式直到讀取到指定字節(jié)數(shù)或超時時才返回,應(yīng)用程序在程序結(jié)束前始終控制程序流,通信故障等 因素可能會導(dǎo)致應(yīng)用程序的無限等待,從而長時間 阻塞線程;異步方式則在后臺讀寫數(shù)據(jù),而在前臺 執(zhí)行其它任務(wù);事件驅(qū)動是在指定的串口事件發(fā)生 時自動調(diào)用相關(guān)的處理程序的機制。前兩種方法效 率低、浪費資源,因此一般使用異步 I/O 和事件驅(qū) 3 Delphi 環(huán)境下串口通信實現(xiàn)方法 下串行通信編程的 ActiveX 控件,如 Microsoft 第三方控件來實現(xiàn)。前者程序設(shè)計相對復(fù)雜,不易

3、掌握,但可以實現(xiàn)功能強大、應(yīng)用廣泛、復(fù)雜的低 層次通信程序。而后者則相對簡單,上手快,開發(fā) 它遵循一定的規(guī)則,并通過面向?qū)ο蟮母拍畹靡岳^ 承和擴充,為 Delphi 的應(yīng)用開發(fā)提供了豐富的資 萬的 Delphi 用戶能夠為 Delphi 編寫大量的第三方 控件,并通過Internet 發(fā)布,形成巨大的共享資源。 下面分別介紹利用 API 和第三方控件實現(xiàn) Delphi 下串行通信的方法。3.1 使用 API 實現(xiàn)串口通信一般的程序設(shè)計思路就是使用 Windows 系統(tǒng) 提供的應(yīng)用程序接口函數(shù)實現(xiàn)串行通信的,這些函 信設(shè)備的當(dāng)前控制設(shè)置填充設(shè)備控制塊 Device GetCommMask(此函e

4、tCommMask 進行串行通信的主要步驟如下:1)打開串口le 的操作屬性,并返回一個句柄,該句柄將被用于后 FILE_ATTRIBUTE_NORMAL orif hCommFile = INVALID_HANDLE_VALUE 2)初始化串口 化工作(即配置波特率、數(shù)據(jù)位數(shù)、停止位數(shù)、奇 偶校驗以及握手、流控協(xié)議等參數(shù)) ,配置串口通 過改變數(shù)據(jù)結(jié)構(gòu)-設(shè)備控制塊 DCB 來實現(xiàn)。 DCB 結(jié)構(gòu)有近 30 個數(shù)據(jù)成員,對于采用 3 線方式的串 行通信,只需設(shè)置好波特率、數(shù)據(jù)位、停止位、校 驗位等關(guān)鍵參數(shù)即可。 9600,數(shù)據(jù)位長度為 8,1個停止位,不進行奇偶校驗的程序設(shè)計如下: 3)讀寫串

5、口/寫串口函數(shù) Dvar /讀串口函數(shù)4)關(guān)閉串口串口是獨占非共享性資源,打開串口后,一定 3.2 使用控件 MSComm 實現(xiàn)串口通訊MSComm 控件具有豐富的與串口通信密切相 關(guān)的屬性,提供了對串口進行的多種操作,進而使 2) Setting:設(shè)置或返回串口通信參數(shù),格式為“波 特率,奇偶校驗位,數(shù)據(jù)位,停止位 ” 。例如: d 沖區(qū)內(nèi)的字節(jié)個數(shù)達到或超過該值后就產(chǎn)生代碼 9) Input:從接收緩沖區(qū)讀取一串字符。 類型,程序根據(jù)該屬性值來執(zhí)行不同的操作。 7) ComEvEOF:值為 7,接收數(shù)據(jù)中出現(xiàn)文件尾 (ASCII 碼為 26)字符。3 應(yīng)用實例 通信控件,開發(fā) PC 機通過

6、串口對某測深儀進行實 時數(shù)據(jù)采集的編程技術(shù)。給出的程序代碼具有通用 性,并有詳細的注釋,可以直接或稍加改動就可用 于其它數(shù)據(jù)采集或者實時控制程序中。該測深儀采用 AscII 方式傳送數(shù)據(jù),數(shù)據(jù)傳輸 止位,無奇偶校驗位。數(shù)據(jù)通信的具體格式為: 程序用到的全局變量為:i 1)串口初始化 InBufferCount:=0;/ 清除接受緩沖區(qū)OutBufferCount:=0;/ 清除發(fā)送緩沖區(qū) RThreshold:=1;/ 設(shè)置接受一個字節(jié)產(chǎn)生 受數(shù)據(jù)模式為二進制方式 開 2)數(shù)據(jù)接收與處理 e then/ 接受事件rMSCommInput 深度曲線 3)串口關(guān)閉數(shù)據(jù)采集程序簡化運行界面如下:(哈爾濱工程大學(xué) 動力與核能工程學(xué)院,哈爾濱 150001)徐治非 邊信黔4 結(jié)束語MSComm 控件和 API 函數(shù)實現(xiàn)串口通訊的方法。實際上,無論用何種語言編寫串行通信程序,其過程一般均可分下列四步,即打開串口、配置串口

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論