• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于VC++的室內(nèi)環(huán)境測(cè)試系統(tǒng)

    2013-11-05 06:42:18高秋燕姚舜才
    電子測(cè)試 2013年2期
    關(guān)鍵詞:采集卡溫度傳感器開(kāi)發(fā)者

    高秋燕 姚舜才 李 健 閆 穎

    (中北大學(xué) 信息與通信工程學(xué)院,山西 太原 030051)

    1 引言

    串行通行是工業(yè)監(jiān)控系統(tǒng)中直觀重要的環(huán)節(jié),而且,在通常的控制系統(tǒng)中,上位機(jī)與下位機(jī)之間實(shí)現(xiàn)通信的方法和應(yīng)用平臺(tái)很多,而且不同的方法具有不同的特點(diǎn)[1]。在眾多集成可視化開(kāi)發(fā)環(huán)境中,Visual C++是編程環(huán)境的最佳選擇,其中MFC它提供了相當(dāng)齊備的類(lèi)和友好的界面環(huán)境,應(yīng)用Visual C++可以輕松開(kāi)發(fā)出功能強(qiáng)大、速度快、應(yīng)用廣泛、占用資源少的應(yīng)用程序。本文主要是在Visual C++環(huán)境下,借助iUSBDAQ - U120816采集卡和NTC熱敏溫度傳感器進(jìn)行連接來(lái)進(jìn)行數(shù)據(jù)采集的,在這里使用的是熱敏溫度傳感器的模塊,經(jīng)過(guò)熱敏溫度傳感器后,溫度信號(hào)轉(zhuǎn)換成相應(yīng)的電壓信號(hào),然后經(jīng)過(guò)iUSBDAQ- U120816采集卡,把該電壓信號(hào)送進(jìn)AI0,即模擬量輸入的第一個(gè)通道,進(jìn)過(guò)采集卡的信號(hào)然后進(jìn)過(guò)串口送給USB接口直接與PC機(jī)連接,通過(guò)對(duì)Visual C++編程來(lái)進(jìn)行溫度采集、曲線的繪制,以及采集數(shù)據(jù)的存儲(chǔ)[2-3]。

    1.1 Visual C++的集成開(kāi)發(fā)環(huán)境/MFC開(kāi)發(fā)Windows程序的優(yōu)勢(shì)

    Visual C++是Windows平臺(tái)上的C++編程環(huán)境,VC作為一個(gè)主流的開(kāi)發(fā)平臺(tái)一直深受編程愛(ài)好者的喜愛(ài),VC++應(yīng)用程序的開(kāi)發(fā)主要有兩種模式,一種是WIN API方式,另一種則是MFC方式,傳統(tǒng)的WIN API開(kāi)發(fā)方式比較繁瑣,而MFC則是對(duì)WIN API再次封裝,所以MFC相對(duì)于WIN API開(kāi)發(fā)更具備效率優(yōu)勢(shì),MFC是Win32API的包裝類(lèi),需要理解文檔視圖類(lèi)的結(jié)構(gòu),窗口類(lèi)的結(jié)構(gòu),消息流向等等[4]。

    MFC借助C++的優(yōu)勢(shì)為Windows開(kāi)發(fā)開(kāi)辟了一片新天地,同時(shí)也借助ApplicationWizzard使開(kāi)發(fā)者擺脫離了那些每次都必寫(xiě)基本代碼,借助ClassWizard和消息映射使開(kāi)發(fā)者擺脫了定義消息處理時(shí)那種混亂和冗長(zhǎng)的代碼段。更令人興奮的是利用C++的封裝功能使開(kāi)發(fā)者擺脫Windows中各種句柄的困擾,只需要面對(duì)C++中的對(duì)象,這樣一來(lái)使開(kāi)發(fā)更接近開(kāi)發(fā)語(yǔ)言而遠(yuǎn)離系統(tǒng)[5]。

    正因?yàn)镸FC是建立在C++的基礎(chǔ)上,所以我強(qiáng)調(diào)C/C++語(yǔ)言基礎(chǔ)對(duì)開(kāi)發(fā)的重要性。利用C++的封裝性開(kāi)發(fā)者可以更容易理解和操作各種窗口對(duì)象;利用C++的派生性開(kāi)發(fā)者可以減少開(kāi)發(fā)自定義窗口的時(shí)間和創(chuàng)造出可重用的代碼;利用虛擬性可以在必要時(shí)更好的控制窗口的活動(dòng)。而且C++本身所具備的超越C語(yǔ)言的特性都可以使開(kāi)發(fā)者編寫(xiě)出更易用,更靈活的代碼。在MFC中對(duì)消息的處理利用了消息映射的方法,該方法的基礎(chǔ)是宏定義實(shí)現(xiàn),通過(guò)宏定義將消息分派到不同的成員函數(shù)進(jìn)行處理[6-7]。

    2 硬件部分設(shè)計(jì)

    室內(nèi)環(huán)境測(cè)試系統(tǒng)的溫度采集的硬件部分如下圖1所示:

    圖1 溫度數(shù)據(jù)采集硬件連接圖

    2.1 NTC熱敏溫度傳感器

    在上圖1中,小的那個(gè)模塊是NTC熱敏溫度傳感器的模塊,MF52 型熱敏電阻器是采用新材料、新工藝生產(chǎn)的小體積的樹(shù)脂包封型NTC 熱敏電阻器,具有高精度和快速反應(yīng)等優(yōu)點(diǎn).在實(shí)際中,我們使用的是該溫度傳感器的模塊,經(jīng)過(guò)溫度傳感器后,溫度信號(hào)轉(zhuǎn)換成了相應(yīng)的電壓信號(hào),模擬量輸出的電壓0-3.5V之間,并且該傳感器模塊需要5V的直流電源進(jìn)行供電。NTC 熱敏電阻器特點(diǎn):測(cè)試精度高;體積小、反應(yīng)速度快;.能長(zhǎng)時(shí)間穩(wěn)定工作;互換性、一致性好。

    2.2 iUSBDAQ - U120816采集卡

    USBDAQ – U120816可用于工業(yè)過(guò)程監(jiān)控,,它的主要功能有一下幾點(diǎn):

    1.USB 2.0/1.1 全 速 界 面(full speed interface)以及USB電纜線供電;

    2.8 個(gè)單端(Single-Ended),12-Bit 模擬輸入(Analog Inputs),100Ks/s ADC ;

    3.0 -4.096 V 模擬輸入電壓范圍(Analog Input Range),解析度為 1mv ;

    4.在連續(xù)STREAMING模式下能實(shí)時(shí)將數(shù)據(jù)不間斷的采集到PC,總通過(guò)率多至32 kSamples/Sec,單通道的通過(guò)率多至13 kSamples/Sec for Streaming Mode多 至13kSamples/Second for Streaming Mode采集輸入。

    5.一個(gè)外部觸發(fā)線供給STREAMING模式下數(shù)據(jù)采集和一個(gè)16-Bit計(jì)數(shù)器(Counter);

    3 軟件設(shè)計(jì)部分

    在這里設(shè)計(jì)的是工程名為“單通道溫度數(shù)據(jù)采集”的單文檔應(yīng)用程序,其中在MFC AppWizard-Step 6 of 6 對(duì)話框中,我們選擇的CMyView的基類(lèi)是CFormView。

    3.1 采集系統(tǒng)分一個(gè)用戶登錄界面和一個(gè)實(shí)時(shí)數(shù)據(jù)采集顯示界面

    (1)用戶登錄界面的設(shè)計(jì)

    系統(tǒng)登錄模塊用于驗(yàn)證用戶登錄系統(tǒng)時(shí)輸入的用戶名、密碼是否正確,只有合法的用戶才可以進(jìn)入系統(tǒng)。

    圖2 用戶登錄界面

    首先點(diǎn)擊視圖欄中ResourceView按鈕,單擊Dialog樹(shù)狀文件夾展開(kāi),右擊,插入一個(gè)Dialog子對(duì)話框,用于繪制用戶登錄對(duì)話框,可以按照如下圖對(duì)登錄界面對(duì)按鈕進(jìn)行編程。

    圖3 登錄界面流程圖

    (2)主界面的設(shè)計(jì)

    通過(guò)采集卡的USB數(shù)據(jù)線實(shí)現(xiàn)模擬量到數(shù)字量的轉(zhuǎn)換,輸入到計(jì)算機(jī),通過(guò)該系統(tǒng)對(duì)輸入的信號(hào)進(jìn)行處理,其中包括實(shí)時(shí)動(dòng)態(tài)曲線顯示模塊,均值、最大值、最小值模塊,采集個(gè)數(shù),數(shù)據(jù)存儲(chǔ)模塊。繪制流程圖如圖3.1所示:

    圖4 標(biāo)準(zhǔn)的軟件流程圖

    根據(jù)上面如圖所示的流程圖來(lái)進(jìn)行對(duì)每個(gè)區(qū)域的編程,下面介紹詳細(xì)的如何進(jìn)行數(shù)據(jù)采集以及實(shí)時(shí)曲線繪制:

    第一,先將iUsbApi.h和iUSBDAQ.h加入到工程文件中。

    第二,在“單通道溫度數(shù)據(jù)采集View.cpp”的開(kāi) 頭 處 添 加 #include“iUsbApi.h”和 #include“iUSBDAQ.h”。

    第三,在開(kāi)始對(duì)數(shù)據(jù)采集前,必須先視類(lèi)的初始 化 時(shí) OnInitialUpdate()中 添 加 LoadLibrary(“iUSBDAQ”),加載 iUSBDAQ - U120816采集卡的庫(kù)函數(shù)、打開(kāi)采集卡以及打開(kāi)要采集的數(shù)據(jù)通道,之后在該函數(shù)中讀取該采集卡和打開(kāi)設(shè)備。

    第四,開(kāi)始對(duì)數(shù)據(jù)進(jìn)行采集是還得先用IUSBDAQReadChannels,來(lái)設(shè)置打開(kāi)的通道是哪個(gè)通道,在該采集系統(tǒng)中設(shè)計(jì)的是用第一個(gè)通道,來(lái)進(jìn)行該通道數(shù)據(jù)的讀取。

    第五,在讀取數(shù)據(jù)時(shí),還必須定義一個(gè)時(shí)鐘,在這里設(shè)計(jì)的是每1000ms采集一次數(shù)據(jù),我們?cè)O(shè)計(jì)了兩個(gè)采集數(shù)據(jù)的按鈕,一個(gè)連續(xù)采集的按鈕,一個(gè)間斷采集的按鈕,可以根據(jù)需要來(lái)選擇使用哪種方式進(jìn)行數(shù)據(jù)的采集[8]。

    第六,對(duì)界面進(jìn)行編程時(shí),對(duì)實(shí)時(shí)數(shù)據(jù)采集的顯示,在對(duì)溫度進(jìn)行采集時(shí),得到的是單位為V的對(duì)應(yīng)的電壓值,方便及直觀我們,在圖像上的縱坐標(biāo)顯示的是1400-1000*m_caiji(MV);橫坐標(biāo)對(duì)應(yīng)的是時(shí)間[9]。

    第七,界面設(shè)計(jì)中包括圖像顯示區(qū)、按鈕選擇區(qū)、實(shí)時(shí)數(shù)據(jù)顯示區(qū)和上下限指示區(qū),在界面的右下角我們還設(shè)計(jì)了一個(gè)當(dāng)時(shí)的時(shí)間顯示。每一個(gè)區(qū)都分為一個(gè)模塊,使得我們的界面更加清晰,漂亮。

    最后,我們還對(duì)所采集的數(shù)據(jù)進(jìn)行了數(shù)據(jù)的存儲(chǔ)等的編程,以便為了以后對(duì)數(shù)據(jù)進(jìn)行分析研究。下面為數(shù)據(jù)存儲(chǔ)的代碼,可以在0nPaint()函數(shù)中添加:

    {

    CString strTmp;

    strTmp.Format(“%d“,m_caiji);

    str += strTmp;

    CStdioFile file(“d :data.txt “,CFile::modeWrite);

    // 數(shù)據(jù)存儲(chǔ)位置

    file.WriteString(str);// 數(shù)據(jù)寫(xiě)入

    file.Close(); // 關(guān)閉文件夾

    }

    數(shù)據(jù)采集界面以及實(shí)時(shí)曲線如圖5所示:

    圖5 溫度數(shù)據(jù)采集的界面顯示

    4 結(jié)論

    使用NTC熱敏溫度傳感器對(duì)室內(nèi)的溫度進(jìn)行采集,再使用USB數(shù)據(jù)采集板與基于VC++6.0的PC機(jī)進(jìn)行通信。通過(guò)溫度傳感器將溫度信號(hào)轉(zhuǎn)換成電壓信號(hào),通過(guò)采集板的AI0通道將模擬信號(hào)輸進(jìn)來(lái),經(jīng)過(guò)采集板將該模擬信號(hào)轉(zhuǎn)換成數(shù)字量傳輸?shù)接?jì)算機(jī)上在界面中顯示出來(lái)。利用MFC的編程思想,在可視化的界面中,可以直觀的看見(jiàn)我們需要采集的數(shù)據(jù)。

    在該系統(tǒng)中,我們使用的USB數(shù)據(jù)采集卡是多通道輸入的,而在這里我們只是利用單通道對(duì)室內(nèi)環(huán)境溫度進(jìn)行測(cè)試,很有很多需要改進(jìn)的地方,在以后的工作中,可以利用多通道對(duì)室內(nèi)的多個(gè)量進(jìn)行采集分析,然后做出更加多功能的可視化界面,并且可以對(duì)采集到的數(shù)據(jù)來(lái)借助MATLAB進(jìn)行濾波等的數(shù)據(jù)分析與研究。

    [1] 陳天華.面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C++6.0教程.北京:清華大學(xué)出版社,2006.7-20.

    [2] 孫鑫 .VC++深入詳解.[M].北京: 電子工業(yè)出版社,2012;100-160.

    [3] 田敏,鄭瑤,李江全.Visual C++數(shù)據(jù)采集與串口通信測(cè)試應(yīng)用實(shí)踐.人民郵電出版社.2010.7-81.

    [4] 陳志泊,王春玲,孟偉.北京.面對(duì)對(duì)象的程序設(shè)計(jì)語(yǔ)言,人民郵電出版社.2007.8-20.

    [5] 鄭阿奇,丁有和.Visual C++應(yīng)用教程.北京:人民郵電出版社,2008.100-123.

    [6] 張立科.Visual C++6.0程序設(shè)計(jì)與開(kāi)發(fā)技術(shù)大全.北京:人民郵電出版社,2004.70-81.

    [7] 幸長(zhǎng)安,梅林.VC++編程技術(shù)與難點(diǎn)剖析.北京:清華大學(xué)出版社,2002.32-45.

    [8] 羅斌.Visual C++編程技巧精選.北京:中國(guó)水利水電出版社,2005.101-132.

    [9] 湛為芳.高效實(shí)用Visual C++庫(kù)函數(shù)設(shè)計(jì).北京:清華大學(xué)出版社.2010.50-54.

    猜你喜歡
    采集卡溫度傳感器開(kāi)發(fā)者
    高精度AD采集卡性能測(cè)試及評(píng)價(jià)方法研究
    溫度傳感器DS18B20在溫度計(jì)設(shè)計(jì)中的應(yīng)用
    電子制作(2019年12期)2019-07-16 08:45:44
    一種高性能CMOS溫度傳感器
    XTR105電流變送器在溫度傳感器中的應(yīng)用
    電子制作(2018年12期)2018-08-01 00:47:40
    面向數(shù)控機(jī)床的多通道傳感數(shù)據(jù)采集卡設(shè)計(jì)
    并行高速采樣在地震物理模擬采集中的應(yīng)用
    16%游戲開(kāi)發(fā)者看好VR
    CHIP新電腦(2016年3期)2016-03-10 13:06:42
    PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
    電子器件(2015年5期)2015-12-29 08:43:12
    iOS開(kāi)發(fā)者調(diào)查
    電腦迷(2015年8期)2015-05-30 12:27:10
    iOS開(kāi)發(fā)者調(diào)查
    電腦迷(2015年4期)2015-05-30 05:24:09
    新余市| 信丰县| 炉霍县| 广州市| 双峰县| 本溪| 来凤县| 阿巴嘎旗| 陆川县| 新泰市| 冀州市| 筠连县| 江西省| 乳山市| 和政县| 婺源县| 嘉峪关市| 景德镇市| 房产| 胶南市| 巧家县| 枞阳县| 甘孜县| 灵台县| 镶黄旗| 铜鼓县| 大姚县| 平顶山市| 中西区| 河西区| 昌都县| 宁武县| 旬邑县| 周宁县| 新野县| 顺义区| 永德县| 桐梓县| 迁西县| 湘潭市| 庆城县|