• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      王勇,魏建中,陳波

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

      0 引言

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

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

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

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

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

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

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

      圖2 程序流程圖

      1.1 SPComm串口通信控件介紹

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

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

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

      1.1.1 基本屬性

      a)CommName屬性

      計(jì)算機(jī)串口端口號(hào)的名字,COM1、COM2……等;在打開(kāi)串口前,必須填寫(xiě)好此值。

      b)Parity屬性

      校驗(yàn)位None、Odd、Even、Mark和Space等。

      c)BaudRate

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

      d)ByteSize屬性

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

      e)StopBits屬性

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

      f)SendDataEmpty 屬性

      布爾屬性,為T(mén)rue時(shí)表示發(fā)送緩存為空,或者發(fā)送隊(duì)列里沒(méi)有信息;為False時(shí)表示發(fā)送緩存不為空,或者發(fā)送隊(duì)列里有信息。

      1.1.2 方法

      a)StartComm方法

      用來(lái)打開(kāi)通信串口,開(kāi)始通信。如果失敗,則會(huì)導(dǎo)致串行口錯(cuò)誤。錯(cuò)誤類(lèi)型大致分為串行口己處于打開(kāi)狀態(tài),所以不能打開(kāi)串行口,不能創(chuàng)建讀寫(xiě)進(jìn)程,不能建立串行口緩沖區(qū)等。

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

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

      1.1.3 事件

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

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

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

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

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

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

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

      對(duì)SPComm控件進(jìn)行初始化,初始化的指令如下:

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

      1.4 通信指令組

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

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

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

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

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

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

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

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

      圖3 系統(tǒng)界面

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

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

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

      表1 人工測(cè)試和自動(dòng)采集性能比較

      3 結(jié)束語(yǔ)

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

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

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

      猜你喜歡
      發(fā)送數(shù)據(jù)阻值控件
      移動(dòng)自組網(wǎng)中MAC層協(xié)議研究
      四線制阻值檢測(cè)電路實(shí)驗(yàn)研究
      勵(lì)磁線圈對(duì)插入式電磁流量計(jì)的影響
      低電阻碳膜板制作及其阻值的優(yōu)化
      對(duì)一道電學(xué)實(shí)驗(yàn)題的思考
      基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點(diǎn)性能分析
      帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      使用IPSec安全傳輸數(shù)據(jù)
      就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      建始县| 崇文区| 呈贡县| 荃湾区| 苏尼特右旗| 兴宁市| 游戏| 黄骅市| 松阳县| 黎城县| 鞍山市| 德安县| 三穗县| 迭部县| 文山县| 洱源县| 东方市| 景东| 且末县| 盐池县| 高陵县| 丁青县| 陆丰市| 南雄市| 南川市| 贵溪市| 绥化市| 军事| 衢州市| 都安| 临武县| 高唐县| 淮安市| 阜平县| 通山县| 建平县| 荔波县| 津南区| 安阳市| 沁源县| 锦州市|