亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        溫濕傳感器批量檢定系統(tǒng)的上位機(jī)設(shè)計(jì)

        2013-04-29 00:00:00關(guān)波
        無線互聯(lián)科技 2013年8期

        摘 要:主要闡述了自動站溫濕度傳感器數(shù)據(jù)采集及處理系統(tǒng)的軟件設(shè)計(jì),分析了其功能、結(jié)構(gòu)、界面設(shè)計(jì),介紹了數(shù)據(jù)的采集、存儲、查詢、證書打印等的實(shí)現(xiàn)算法。經(jīng)實(shí)踐驗(yàn)證,該系統(tǒng)提高了傳感器的檢定速度,節(jié)省了檢定人力。

        關(guān)鍵詞:溫濕傳感器批量檢定系統(tǒng);軟件設(shè)計(jì);用戶界面;數(shù)據(jù)管理

        目前對于國內(nèi)氣象站溫度、濕度及氣壓傳感器的檢定主要還是依靠自動站采集器,通過采集器監(jiān)控軟件顯示傳感器讀數(shù),由于受自動站采集器通道的限制,各傳感器的批量檢定還不能實(shí)現(xiàn),校準(zhǔn)數(shù)據(jù)和證書還是以人工輸入為主,在這種條件下使得傳感器的檢定耗時長、占用人力多[1]。為了改善這種狀況,在VC6.0環(huán)境下使用MSComm通信控件和SQL Sever 2000數(shù)據(jù)庫技術(shù),開發(fā)了自動站溫濕度傳感器數(shù)據(jù)采集及處理系統(tǒng),實(shí)現(xiàn)多路溫濕傳感器的數(shù)據(jù)批量采集,實(shí)現(xiàn)對于溫濕傳感器的批量檢定。

        1 軟件的主要功能、結(jié)構(gòu)和界面設(shè)計(jì)

        本系統(tǒng)主要通過對溫濕度傳感器的數(shù)據(jù)采集,實(shí)現(xiàn)對溫濕傳感器批量檢定。整個系統(tǒng)在Visual C++ 6.0環(huán)境下開發(fā),總共包括五大模塊:溫濕度傳感器數(shù)據(jù)檢測模塊、溫濕度傳感器數(shù)據(jù)存儲模塊、溫濕度傳感器合格與否自動判定模塊、溫濕度傳感器數(shù)據(jù)查詢模塊、相關(guān)證書的打印模塊。

        軟件的各功能菜單采用統(tǒng)一格式的用戶串口界面。其中,屏幕顯示的是以下幾個方面:⑴主界面,由背景界面和主菜單組成;⑵點(diǎn)擊檢測菜單時,顯示溫濕度傳感器的信息界面,所填的信息包括所測傳感器的信息和標(biāo)準(zhǔn)器的信息。⑶該系統(tǒng)的查詢功能可對檢測數(shù)據(jù)和檢測結(jié)論分別查詢。

        2 數(shù)據(jù)的采集、存儲和查詢

        2.1 串口通信實(shí)現(xiàn)數(shù)據(jù)的批量采集

        串行通信應(yīng)用廣泛,在數(shù)據(jù)通信、計(jì)算機(jī)網(wǎng)絡(luò)以及分布式工業(yè)控制系統(tǒng)中,經(jīng)常采用串行通信來交換數(shù)據(jù)和信息[2]。在Visual C++ 6.0環(huán)境下,一般使用控件‘MSComm’控件進(jìn)行串行通信開發(fā)。通過MSComm控件,上位機(jī)也可以實(shí)現(xiàn)對下位機(jī)的操作,比如實(shí)時顯示數(shù)據(jù),更改需要檢測的傳感器個數(shù)等。

        2.1.1 檢測數(shù)據(jù)的實(shí)時顯示

        該系統(tǒng)要求每隔3秒鐘一次顯示1號,2號,…,n號傳感器所檢測的溫度/濕度數(shù)據(jù),即要求實(shí)現(xiàn)數(shù)據(jù)的實(shí)時顯示。具體算法為:設(shè)置一個3秒定時器,每隔3秒向下位機(jī)發(fā)送一個數(shù)據(jù),用于通知單片機(jī)需要幾號傳感器的測量值,并且根據(jù)不同的數(shù)據(jù)告知單片機(jī)需要的是溫度值,還是濕度值,進(jìn)而可以區(qū)別測量溫濕度的值。在本系統(tǒng)中,當(dāng)需要傳感器檢測的溫度值時,上位機(jī)會向下位機(jī)發(fā)送0xF0-0xF7;需要傳感器檢測的濕度值時,上位機(jī)會向下位機(jī)傳送0xF8-0xFF。下位機(jī)根據(jù)上位機(jī)的數(shù)據(jù),選擇輸出不同的傳感器的溫度/濕度值。上位機(jī)接受到數(shù)據(jù)之后,顯示在相應(yīng)的編輯框中。

        2.1.2 傳感器有效個數(shù)的更改

        執(zhí)行更改需要檢測的傳感器個數(shù)的程序,具體的算法:根據(jù)用戶在下拉列表中選擇的個數(shù),調(diào)用CWnd中的子函數(shù)GetDlgItem()和EnableWindow()函數(shù)使得被選中的所有的傳感器相應(yīng)的編輯框有效。

        2.2 SQL-Server 2000數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)的存儲和查詢

        SQL-Server 2000是微軟公司開發(fā)的中型數(shù)據(jù)庫,它的可視化方面做得很好,在安全性等方面功能非常強(qiáng)大,并且有微軟的強(qiáng)大技術(shù)支持。連接和使用SQL Server數(shù)據(jù)庫有多種不同方法,包括ODBC,DAO和RDO等。ADO是Microsoft的主要數(shù)據(jù)訪問方法,故本系統(tǒng)采用ADO方法。ADO與OLE DB是Microsoft的Universal Data Access(UDA)策略中的關(guān)鍵組件。OLE DB定義一組COM接口,包括數(shù)據(jù)訪問服務(wù)。ADO是個高級對象模型,將OLE DB提供的數(shù)據(jù)提供給應(yīng)用程序。UDA(universal data access,通用數(shù)據(jù)訪問,也叫全局?jǐn)?shù)據(jù)訪問)是microsoft為企業(yè)應(yīng)用范圍內(nèi)各種類型信息存取所制定的一項(xiàng)新戰(zhàn)略,它提供對多種數(shù)據(jù)源進(jìn)行存取的一致界面。

        利用Microsoft OLE DB Provider for SQL Server(SQLOLEDB),可不必訪問另一ODBC API和驅(qū)動器層,可以直接訪問數(shù)據(jù)源。要使用這個數(shù)據(jù)提供者,經(jīng)連接字符串的Provider變元設(shè)置為SQLOLEDB。

        與DAO和RDO等數(shù)據(jù)訪問庫相比,ADO對象模型很簡單,主要有五個對象,可以實(shí)例化更多底層集合和對象。Connection對象,表示打開的數(shù)據(jù)源連接;Command對象,可以對SQL Server執(zhí)行命令;Recordset對象,是從SQL Server返回的一組記錄,但Recordset對象還提供了客戶機(jī)應(yīng)用程序中讀取、更新和操縱數(shù)據(jù)的機(jī)制[3]。本系統(tǒng)較多使用了Recordset對象對數(shù)據(jù)庫進(jìn)行操作;Record對象,表示層次式機(jī)構(gòu)中存放的數(shù)據(jù),Record對象也可表示Recordset中的行,利用這個對象可以管理文件系統(tǒng)中的目錄和文件,或e-mail系統(tǒng)中的文件夾與消息。

        本系統(tǒng)共需要三個表格:溫濕傳感器的信息(HTSensorI nfo)、溫濕傳感器濕度檢測數(shù)據(jù)(HTHSensorData)、溫濕傳感器溫度檢測數(shù)據(jù)(HTTSensorData),每個表格中包含所需要存儲的各個變量。這三個表格同在HTSensor數(shù)據(jù)庫中。

        使用SQLOLEDB連接SQL Server數(shù)據(jù)庫,連接字符串如下:

        \"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=HTSensor\";

        2.2.1 數(shù)據(jù)的存儲

        對于數(shù)據(jù)庫的存儲主要有兩個方面,一個是在沒有數(shù)據(jù)的情況下進(jìn)行數(shù)據(jù)的插入,另一個是原來存在數(shù)據(jù),則進(jìn)行數(shù)據(jù)的更新。

        插入數(shù)據(jù)用到的是SQL Server中的INSERT語句,例如:

        \"INSERT INTO HTSensorInfo(ChuChangNum,… …,Conclusion)VALUES('\"+ChuChangNum+\"',… …,'\"+Conclusion+\"')\";

        更新數(shù)據(jù)用到的是SQL Server中的UPDATE語句,例如:

        \"UPDATE HTSensorInfo SET SensorName='\"+SensorName+\"',… …,Conclusion='\"+Conclusion+\"'WHERE ChuChangNum='\"+ss+\"'\";//ss是參變量。

        2.2.2 數(shù)據(jù)的查詢

        數(shù)據(jù)的查詢主要用到了Visual C++的三個控件:ADO Data控件;DataGrid控件;DataCombo控件。

        ⑴ADO Data控件:使用ADO Data控件可以快速地創(chuàng)建一個到數(shù)據(jù)庫的連接,并且它調(diào)用Recordset對象提供對存儲在數(shù)據(jù)庫中的數(shù)據(jù)的訪問,并允許從一個記錄移動到另一個記錄,顯示和操縱記錄數(shù)據(jù)。ADO Data可以執(zhí)行大部分對數(shù)據(jù)庫的操作,但是它不能夠顯示數(shù)據(jù)庫中的數(shù)據(jù),一般會和數(shù)據(jù)察覺控件搭配使用,比如DataGrid控件、DataCombo控件、DataList控件。當(dāng)ADO Data控件中的當(dāng)前記錄發(fā)生變化時,數(shù)據(jù)查詢控件中的數(shù)據(jù)也隨之發(fā)生變化。

        本文中,對于每個用到的數(shù)據(jù)表格都關(guān)聯(lián)了相應(yīng)的ADO Data控件。這樣,就可以實(shí)現(xiàn)了將數(shù)據(jù)庫中的數(shù)據(jù)與數(shù)據(jù)察覺控件相聯(lián)系,顯示數(shù)據(jù)庫中的數(shù)據(jù)。

        ⑵DataGrid控件:DataGrid控件以表格的形式顯示結(jié)果集中的數(shù)據(jù),它需要ADO Data控件提供數(shù)據(jù)源。與關(guān)練了數(shù)據(jù)庫中相關(guān)表格大ADO Data控件相結(jié)合,DataGrid控件中便可以顯示測量的數(shù)據(jù)。

        ⑶DataCombo控件:DataCombo控件是數(shù)據(jù)綁定組合框。其外表是一個組合框的形式,它與一般的組合框的不同之處在于它需要一個ADO Data控件指定數(shù)據(jù)源,并且使用數(shù)據(jù)源中的一個字段填充。而這個字段將是顯示在這個組合框中的內(nèi)容。鑒于本系統(tǒng)的查詢要求,本系統(tǒng)用到的所有DataCombo控件都是和數(shù)據(jù)源中的儀器編號相聯(lián)系。

        本系統(tǒng)中的查詢界面由數(shù)據(jù)查詢和檢驗(yàn)結(jié)論查詢兩部分組成。使用兩個Adodc控件分別為DataCombo控件和DataGrid控件提供數(shù)據(jù)。利用SELECT語句實(shí)現(xiàn)查詢功能。舉例如下:

        CString strSql=\"SELECT Sensor_id,ChuChangNum AS 出廠編號,… …,Time AS檢校時間FROM HTSensorInfo\";

        3 調(diào)用EXCEL實(shí)現(xiàn)數(shù)據(jù)、證書的輸出打印

        因?yàn)樽C書有一定的格式,所以實(shí)現(xiàn)證書的打印,用到的算法為:預(yù)先設(shè)定好相應(yīng)的模板,在Visual C++環(huán)境中調(diào)用一定格式的Excel表格進(jìn)行數(shù)據(jù)的導(dǎo)出、證書的打印等。

        在Visual C++中根據(jù)模板創(chuàng)建EXCEL的程序?yàn)椋?/p>

        COleVariantcovOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

        if (!m_App.CreateDispatch(\"Excel.Application\",NULL))

        {

        AfxMessageBox(\"創(chuàng)建Excel服務(wù)失??!\");

        return;

        }

        m_App.SetVisible(1);

        //利用模板文件建立新文檔

        char path[MAX_PATH];

        GetCurrentDirectory(MAX_PATH,path);

        CString strPath = path;

        strPath += \"\\\"+moban;//‘moban’為參變量?!甿oban’不同,創(chuàng)建出的EXCEL表格便不相同。

        m_Books.AttachDispatch(m_App.GetWorkbooks(),true);……

        4 結(jié)束語

        該系統(tǒng)集數(shù)據(jù)采集、數(shù)據(jù)存貯、證書打印于一體,適用于鉑電阻溫度表、氣壓傳感器(模擬信號輸出)、濕度、風(fēng)向(模擬信號輸出)傳感器的批量校準(zhǔn),為自動氣象站傳感器室內(nèi)檢定、校準(zhǔn)發(fā)揮了重要作用。

        [參考文獻(xiàn)]

        [1]李光忠.基于單片機(jī)的溫濕度檢測系統(tǒng)的設(shè)計(jì)[D].山東大學(xué),2007.

        [2]李長林,高潔.Visual C++串口通信技術(shù)與典型實(shí)例[M].北京:清華大學(xué)出版社.2006,20-25.

        [3]孫鑫.VC ++深入詳解[M].北京:電子工業(yè)出版社.2008,752-767.

        久久国产精久久精产国| 精品国产黑色丝袜高跟鞋| 国产免费一级在线观看| 精品理论一区二区三区| 国产精品毛片极品久久| 国产激情无码一区二区| 亚洲精品久久无码av片软件| 欧美日韩中文字幕日韩欧美| 我想看久久久一级黄片| 美女扒开屁股让男人桶| 亚洲国产成人久久一区www| 国产精品jizz观看| 久久成人黄色免费网站| 国产精品亚洲一级av第二区| 99久久人妻无码精品系列| 婷婷四房播播| 日本一级淫片免费啪啪| 美女很黄很色国产av| 久久国内精品自在自线图片| 荡女精品导航| 亚洲双色视频在线观看| 亚洲国产精品久久又爽av| 亚洲国产成人影院在线播放| 国产精品后入内射日本在线观看| AV中文字幕在线视| 最新国产激情视频在线观看| 无码毛片内射白浆视频| 国产在线精品欧美日韩电影| 成人精品国产亚洲欧洲| 加勒比久久综合久久伊人爱| 欧美精品亚洲精品日韩专区| 国产nv精品你懂得| 一本色道久久88综合亚精品| 国产免费牲交视频| 97无码人妻福利免费公开在线视频| yw193.can尤物国产在线网页| 男女动态视频99精品| 国产午夜福利片在线观看| 色婷婷欧美在线播放内射| 久久免费网站91色网站| 手机看片久久第一人妻|