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

?

基于Keithley儀表的數(shù)據(jù)采集系統(tǒng)設(shè)計及實現(xiàn)

2013-08-14 01:19:58王勇魏建中陳波
關(guān)鍵詞:發(fā)送數(shù)據(jù)阻值控件

王勇,魏建中,陳波

(工業(yè)和信息化部電子第五研究所,廣東 廣州 510610)

0 引言

Keithley 2000儀表是一種高性能的數(shù)字型儀表,主要用于電流、電壓、電阻和頻率等參數(shù)的測量,在工業(yè)上和實驗室中具有廣泛的用途。該表測量精度高、噪聲低和功能全,但對于非專業(yè)測試人員,使用該表進行專業(yè)參數(shù)測量還是比較困難的,測量速度慢,測量效率低。

隨著智能儀表和虛擬儀表技術(shù)的快速發(fā)展,上下位機通訊的地位日益凸現(xiàn),如何通過上位機實現(xiàn)儀表數(shù)據(jù)的自動化采集已成為測試現(xiàn)場急需解決的問題。有了性能強大的硬件檢測平臺,如果沒有合適的軟件與之匹配,那么檢測儀表的性能將得不到充分的發(fā)揮。

本文將結(jié)合實驗室中電阻溫度循環(huán)前后阻值變化的測試過程,提出Keithley儀表數(shù)據(jù)采集系統(tǒng),該系統(tǒng)可以實現(xiàn)PC機對儀表的自動化采集、分析和合格判定。

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

Keithley 2000儀表通過RS 232[1-2]接口與上位機PC進行通信,采集的數(shù)據(jù)通過上位機中的軟件進行比較分析,系統(tǒng)結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)

本系統(tǒng)采用Delphi 7進行上位機編程,在進行通信程序的設(shè)計過程中,為了避免底層串口參數(shù)編程的初始化設(shè)置過程,提高開發(fā)效率,選用了功能強大的第三方SPComm控件,SPComm控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通信功能。程序流程如圖2所示。

圖2 程序流程圖

1.1 SPComm串口通信控件介紹

SPComm控件具有豐富的、與串口通信密切相關(guān)的屬性,提供了對串口所進行的多種操作,進而使串行通信變得十分簡便。

SPComm共實現(xiàn)了3個類:串口類Tcomm、讀線程類TreadThread以及寫線程類TwriteThread[1]。Tcomm的某個實例在方法StartComm中打開串口,并實例化了一個讀線程ReadThread和一個寫線程WriteThread,它們和主線程之間進行消息的傳遞,實現(xiàn)串口通信。

Spcomm串口通信控件的基本屬性、方法和事件的說明如下:

1.1.1 基本屬性

a)CommName屬性

計算機串口端口號的名字,COM1、COM2……等;在打開串口前,必須填寫好此值。

b)Parity屬性

校驗位None、Odd、Even、Mark和Space等。

c)BaudRate

設(shè)定支持串口通信用的波特率9600,4800等,根據(jù)實際需要來定;在串口打開后也可更改波特率,實際的波特率隨之更改。

d)ByteSize屬性

表示一個字節(jié)中,使用多少個數(shù)據(jù)位來收發(fā)數(shù)據(jù),根據(jù)具體的情況設(shè)定5、6、7、8等。

e)StopBits屬性

表示一個字節(jié)中,使用停止位的位數(shù),根據(jù)具體的情況設(shè)定1、1.5、2等。

f)SendDataEmpty 屬性

布爾屬性,為True時表示發(fā)送緩存為空,或者發(fā)送隊列里沒有信息;為False時表示發(fā)送緩存不為空,或者發(fā)送隊列里有信息。

1.1.2 方法

a)StartComm方法

用來打開通信串口,開始通信。如果失敗,則會導致串行口錯誤。錯誤類型大致分為串行口己處于打開狀態(tài),所以不能打開串行口,不能創(chuàng)建讀寫進程,不能建立串行口緩沖區(qū)等。

b)StopComm方法用來停止通信串行口的所有進程,關(guān)閉串口。c)WriteCommData(1)pDataToWrite: PChar;2)dwSizeofDataToWrite: Word)方法

這是帶有布爾型返回值的函數(shù),其中參量pDataToWrite是要寫入串行口的字符串,dwSizeof-DataToWrite是要寫入的字符串的長度。該函數(shù)通過一個寫線程向串行口輸出緩沖區(qū)發(fā)送數(shù)據(jù)。發(fā)送操作將在后臺默認執(zhí)行。如果寫線程PostMessage成功,則返回值是True;若寫線程失敗,則返回值是False。

1.1.3 事件

Spcomm串行通信控件具有多線程的特性,接收和發(fā)送數(shù)據(jù)分別在兩個線程內(nèi)完成,接收線程負責收到數(shù)據(jù)時觸發(fā)OnReceiveData事件;用WriteCommData()函數(shù)將待發(fā)送的數(shù)據(jù)寫入輸出緩沖器,發(fā)送線程在后臺完成數(shù)據(jù)發(fā)送工作。在接收和發(fā)送數(shù)據(jù)前需要初始化串口,用StartComm方法打開串口,退出程序時用StopComm方法關(guān)閉串口。

Spcomm應(yīng)用的核心在于主線程、讀線程和寫線程之間的消息傳遞機制,而通信數(shù)據(jù)相關(guān)信息的傳遞也是以消息傳遞的方式進行的。在使用Spcomm進行串口通信編程時,需要特別注意以下兩個問題:

a)Spcomm是通過ReadIntervalTimeout屬性的設(shè)置來確定所接收到的數(shù)據(jù)是否屬子同一幀數(shù)據(jù),其默認值是100 ms;也就是說,只要任何兩個字節(jié)到達的時間間隔小于100 ms,都被認為是屬于同一幀數(shù)據(jù),在與儀表機協(xié)同工作時,要特別注意這個問題[2]。

b)Spcomm的默認屬性設(shè)置是支持軟件流控制的,用于流控制的字符是13 H(XoffChar)和11 H(XonChar),當儀表以二進制方式發(fā)送數(shù)據(jù)時,必須要禁用Spcomm對于軟件流控制的支持;否則,在數(shù)據(jù)幀中出現(xiàn)的13 H和11 H會被Spcomm作為控制字符而加以忽略。

1.2 使用SPComm控件實現(xiàn)串口通信

由于Delphi 7中沒有直接集成串口控件,所以,首先需要把SPComm控件添加到Delphi 7中。

在Delphi 7.0中安裝SPComm串口通信控件的方法為:選擇 Delphi 7.0的 “Component” 菜單,點擊 “Install Component..” 菜單項,然后在彈出的Into existing package屬性頁中的Unit file name輸人框中選擇SPCOMM.pas文件,單擊兩次 “OK”按鈕后,就可以將SPComm控件安裝到Delphi 7.0的System組件頁上。

對SPComm控件進行初始化,初始化的指令如下:

1.3 Keithley 2000 RS-232 通信設(shè)置

1.4 通信指令組

正常的串口通信建立后,就可以由PC上位機通過SPComm控件提供函數(shù)WriteCommData(pDataToWrite:PChar; dwSizeofDataToWrite:Word):Boolean;向Keithley 2000發(fā)出操控指令。

以下是采集數(shù)據(jù)的指令舉例,可以完成電阻阻值的基本參數(shù)測量。

指令以回車符結(jié)束,如 “DATA?”指令的程序代碼如下:

1.5 基于SPComm控件的數(shù)據(jù)的接收及處理

由于SPComm采用事件驅(qū)動機制,只要儀表向PC機發(fā)送數(shù)據(jù),SPComm就觸發(fā)一次接收事件,相應(yīng)的數(shù)據(jù)存放在接收緩沖區(qū),SPComm以接收數(shù)據(jù)的時間間隔區(qū)分不同的事件,事件間隔在Read-InteralTimeout中設(shè)置。接收事件驅(qū)動機制的最大優(yōu)點是無需程序?qū)邮站彺嬉恢碧幱跈z查狀態(tài),只要有數(shù)據(jù)到達就會觸發(fā)接收事件而執(zhí)行相應(yīng)的程序代碼。

SPComm控件提供 OnReceiveData事件,當控件接收數(shù)據(jù)時執(zhí)行該事件,可在該事件中對接收到的數(shù)據(jù)進行分析處理。以下是對采集的數(shù)據(jù)進行分析的代碼,可以實現(xiàn)阻值的自動判定,超出指標,則顯示為紅色。

2 數(shù)據(jù)采集系統(tǒng)的性能分析

電阻初次測量阻值、溫度循環(huán)試驗后再次測量阻值,并計算兩次測量的阻值變化,每次測量值及變化量有相應(yīng)的指標范圍,針對筆者所在的實驗室測量樣品多,測試指標相對簡單的特點,為提高工作效率,采用Delphi 7編寫上位機軟件,通過RS 232接口連接Keithley儀表實現(xiàn)數(shù)據(jù)自動采集,系統(tǒng)界面如圖3所示。

圖3 系統(tǒng)界面

系統(tǒng)有如下特點:

系統(tǒng)對讀取的數(shù)值設(shè)置了量級和精度,可自定義量級和精度;實現(xiàn)了數(shù)據(jù)的自動計算、儲存整套數(shù)據(jù)及查詢,大大簡化了操作步驟,實現(xiàn)了全程無紙化測量,有效地避免人為誤差,極大地方便了后續(xù)數(shù)據(jù)處理;成功讀取數(shù)據(jù)后對樣品編號自動加一,便于讀取下一樣品數(shù)據(jù);對數(shù)據(jù)自動分析后,不合格的數(shù)據(jù)將用紅色標識;測試數(shù)據(jù)可以保存到Excel表中,方便保存及后期處理;系統(tǒng)出錯采用多媒體聲音報警,操作人員不必時刻監(jiān)視計算機和儀表了;配合USB串口轉(zhuǎn)換器即可實現(xiàn)Keithley全系列數(shù)字萬用表即插即用,沒有RS 232串口的計算機同樣可以方便地通過此軟件控制Keithley數(shù)字萬用表。

在實際的測量過程中,操作人員將樣品放置好后,直接按回車鍵即可完成所有的工作。如果這一測試工作同樣由人工手動完成,則不僅效率低下,而且測量精度也得不到保證。人工測試和自動采集性能的比較如表1所示。

表1 人工測試和自動采集性能比較

3 結(jié)束語

本系統(tǒng)采用計算機軟件技術(shù)實現(xiàn)數(shù)據(jù)自動采集,對傳統(tǒng)的人工測量電阻的測試方法進行了重大的改進,實現(xiàn)了電阻阻值的自動測量及溫度循環(huán)前后的阻值變化比較,大大提高了電阻阻值參數(shù)測試的自動化水平,減少了人員的工作量,提高了數(shù)據(jù)的可信度;另外,本系統(tǒng)也可對電壓、電流等參數(shù)進行測量。

[1]范逸之,陳立元.Delphi與RS-232串行通信控制[M].北京:清華大學出版社,2002.

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

猜你喜歡
發(fā)送數(shù)據(jù)阻值控件
移動自組網(wǎng)中MAC層協(xié)議研究
四線制阻值檢測電路實驗研究
勵磁線圈對插入式電磁流量計的影響
低電阻碳膜板制作及其阻值的優(yōu)化
對一道電學實驗題的思考
基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點性能分析
帶標記方式的CRDSA++協(xié)議性能分析*
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
使用IPSec安全傳輸數(shù)據(jù)
就這樣玩會VBA中常見的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
榆社县| 上蔡县| 油尖旺区| 苍溪县| 四会市| 海伦市| 宝坻区| 湘西| 水城县| 潜山县| 延长县| 衡东县| 卢湾区| 赤水市| 曲麻莱县| 玛曲县| 鄂托克前旗| 吉隆县| 高阳县| 宁波市| 明溪县| 抚顺市| 浑源县| 阳信县| 措勤县| 德令哈市| 长武县| 武威市| 贺兰县| 灵武市| 衡阳县| 寿阳县| 普格县| 永安市| 东丰县| 高雄市| 夏津县| 板桥市| 阜康市| 北安市| 铅山县|