工控網(wǎng)首頁
>

應(yīng)用設(shè)計(jì)

>

一種實(shí)用的計(jì)算機(jī)溫度采集系統(tǒng)

一種實(shí)用的計(jì)算機(jī)溫度采集系統(tǒng)

2003/11/24 0:00:00
一、前言 隨著計(jì)算機(jī)技術(shù)的發(fā)展和成熟,計(jì)算機(jī)的應(yīng)用也越來越廣泛。在自動(dòng)化領(lǐng)域,計(jì)算機(jī)已經(jīng)成為控制系統(tǒng)的首選平臺(tái),應(yīng)用計(jì)算機(jī)對(duì)生產(chǎn)和試驗(yàn)進(jìn)行實(shí)時(shí)、遠(yuǎn)程監(jiān)控是現(xiàn)代自動(dòng)化發(fā)展的主要方向。將計(jì)算機(jī)應(yīng)用于工業(yè)實(shí)時(shí)控制的前提是現(xiàn)場(chǎng)數(shù)據(jù)的實(shí)時(shí)獲取。在生產(chǎn)和科學(xué)實(shí)驗(yàn)中,常常要測(cè)控很多參數(shù),諸如溫度、壓力、轉(zhuǎn)速等,通常的方法是使用專用的儀表人為觀測(cè)、記錄處理數(shù)據(jù)、做出判斷,這就會(huì)帶來人為的誤差,而且應(yīng)用范圍也會(huì)受到現(xiàn)場(chǎng)條件、響應(yīng)速度等因素的限制。而自動(dòng)的實(shí)時(shí)監(jiān)控系統(tǒng)能很好的解決這些問題。本文以一種簡(jiǎn)單實(shí)用的溫度實(shí)時(shí)采集系統(tǒng)為實(shí)例,討論了一種利用計(jì)算機(jī)進(jìn)行遠(yuǎn)程測(cè)控的框架結(jié)構(gòu)和實(shí)現(xiàn)方法。 二、硬件構(gòu)成
系統(tǒng)結(jié)構(gòu)如圖1所示,其中: COMPUTER為普通PC機(jī),要求能夠運(yùn)行Windows98操作系統(tǒng)和開發(fā)環(huán)境VB6.0,具有標(biāo)準(zhǔn)的RS232串口或RS485口,主要功能為數(shù)據(jù)采集處理和系統(tǒng)控制,是人機(jī)交互平臺(tái)。實(shí)驗(yàn)中使用的是PIII800的計(jì)算機(jī)。 ADAM4521為研華科技公司的接口轉(zhuǎn)換模塊,能將RS485或RS422信號(hào)轉(zhuǎn)換為RS232信號(hào)。由于普通PC只具有RS232接口,而一般工業(yè)測(cè)試信號(hào)符合RS485或RS422標(biāo)準(zhǔn),所以在這里要進(jìn)行一下轉(zhuǎn)化。研華科技公司的ADAM4521模塊有以下特點(diǎn):可尋址;內(nèi)置微處理器;傳輸速度115.2Kbps;1000VDC高壓隔離;RS485浪涌電壓保護(hù);輸入輸出可置不同的波特率;無需握手信號(hào)。 ADAM4013為研華科技公司的熱敏電阻輸入模塊,能將熱敏電阻的模擬信號(hào)轉(zhuǎn)換為RS485數(shù)字信號(hào)。ADAM4013模塊利用內(nèi)置的微處理器控制A/D轉(zhuǎn)換器把電流、電壓或熱敏電阻的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),模塊提供信號(hào)調(diào)整、A/D轉(zhuǎn)換、測(cè)量范圍調(diào)整、RS485通訊等功能,良好的光隔能有效的保護(hù)設(shè)備的安全。模塊的主要特點(diǎn)有:內(nèi)置看門狗;3000VDC高壓隔離;采樣率10次/秒;誤差小于0.05%。這些參數(shù)能滿足絕大多數(shù)場(chǎng)合的應(yīng)用。 溫度傳感器選用鉑電阻Pt100測(cè)量-100℃到+100℃的溫度,ADAM4013模塊測(cè)溫系數(shù)a設(shè)為0.00385??筛鶕?jù)測(cè)量范圍和測(cè)量精度的要求選擇不同的溫度傳感器,在軟件設(shè)計(jì)時(shí)進(jìn)行相應(yīng)的參數(shù)配置即可。 試驗(yàn)中的介質(zhì)是兩種液體的化學(xué)反應(yīng)。鉑電阻Pt100將化學(xué)反應(yīng)溫度轉(zhuǎn)化為模擬電信號(hào)傳到ADAM4013模塊,經(jīng)過采樣處理轉(zhuǎn)化為RS485數(shù)字信號(hào),在經(jīng)過ADAM4521模塊的轉(zhuǎn)換,變成計(jì)算機(jī)可以接收的RS232信號(hào),計(jì)算機(jī)收到數(shù)據(jù)后,實(shí)時(shí)顯示,繪制溫度曲線,同時(shí)進(jìn)行后臺(tái)處理、存儲(chǔ),以備他用。 三、軟件實(shí)現(xiàn) 系統(tǒng)軟件主要是用VB6.0對(duì)RS232串口編程,實(shí)現(xiàn)硬件之間的通訊。軟件框圖如圖2所示。
1、MSComm控件簡(jiǎn)介 VB6.0對(duì)RS232串口編程主要通過MSComm控件來實(shí)現(xiàn)。下面簡(jiǎn)單介紹一下MSComm控件: MSComm控件為應(yīng)用程序提供串行通訊功能??丶峁┫铝袃煞N處理通訊的方式: 事件驅(qū)動(dòng)通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時(shí)需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 線上一個(gè)字符到達(dá)或一個(gè)變化發(fā)生時(shí)。在這些情況下,可以利用 MSComm 控件的 OnComm 事件捕獲并處理這些通訊事件,無論何時(shí)當(dāng) CommEvent 屬性的值變化時(shí),就產(chǎn)生 OnComm 事件,標(biāo)志發(fā)生了一個(gè)通訊事件或一個(gè)錯(cuò)誤。另一種方法是通過檢查 CommEvent 屬性的值來查詢事件和錯(cuò)誤。如果應(yīng)用程序較小,并且是自保持的,這種方法可能是更可取的,它只對(duì)某一特定的事件響應(yīng)。 每個(gè)使用的 MSComm 控件對(duì)應(yīng)著一個(gè)串行端口。如果應(yīng)用程序需要訪問多個(gè)串行端口,必須使用多個(gè) MSComm 控件。MSComm 控件主要屬性: CommPort:設(shè)置并返回通訊端口號(hào); Settings: 以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位; PortOpen: 設(shè)置并返回通訊端口的狀態(tài)。也可以打開和關(guān)閉端口; Input: 從接收緩沖區(qū)返回和刪除字符; Output: 向傳輸緩沖區(qū)寫一個(gè)字符串。 更詳細(xì)的信息請(qǐng)參閱Microsoft的聯(lián)機(jī)文檔MSDN。 2、ADAM模塊常用命令介紹 ADAM模塊時(shí)通過特殊的約定字符來實(shí)現(xiàn)相應(yīng)的操作的,常用的有: "%0101210600":設(shè)置端口,0-100度,科學(xué)單位; "#01" : 讀串口1數(shù)據(jù); "#02" : 讀串口2數(shù)據(jù); "$010" : 模塊自動(dòng)校準(zhǔn); "$011" : 偏移量校準(zhǔn); "$012" : 讀端口信息; "$01M": 讀模塊名。 3、主界面及部分代碼 VB6.0具有強(qiáng)大的界面編輯功能,是一種完全面向?qū)ο蟮木幊陶Z言,用它實(shí)現(xiàn)的人機(jī)界面直觀友好、易操作易實(shí)現(xiàn),下面就是試驗(yàn)中所作的界面(圖3):
從界面可以看出,系統(tǒng)能實(shí)現(xiàn)溫度采集的設(shè)置、數(shù)據(jù)顯示處理功能。 關(guān)鍵代碼如下: Const CMDconfig = "%0101210600" 設(shè)置端口命令字符,0-100度,科學(xué)單位 Const CMDdataIn1 = "#01" 讀串口1數(shù)據(jù)命令字符 Const CMDdataIn2 = "#02" 讀串口2數(shù)據(jù)命令字符 Const CMDspanCalibration = "$010" 校準(zhǔn)命令字符 Const CMDoffsetCalibration = "$011" 偏移量校準(zhǔn)命令字符 Const CMDconfigStatus = "$012" 讀端口信息命令字符 Const CMDmoduleName = "$01M" 讀模塊名命令字符 Private Sub CmdStart_OnClick() 開始命令子程序 MSComm1.CommPort = COMnum 設(shè)置串口號(hào) If MSComm1.PortOpen = False Then 打開串口 MSComm1.PortOpen = True End If If COMnum = 1 Then CMDdataIn = CMDdataIn1 Else CMDdataIn = CMDdataIn2 End If MSComm1.Output = CStr(CMDdataIn) & vbCr 發(fā)出讀數(shù)命令 TimeDelay 500 延時(shí)500ms Picture1.CurrentX = 0 繪制曲線坐標(biāo)起點(diǎn) Picture1.CurrentY = temperature Timer1.Enabled = True 開始計(jì)時(shí) End Sub Private Sub MSComm1_OnComm() 事件響應(yīng)子程序 Select Case MSComm1.CommEvent 判斷MSComm1通訊事件 Case comEvReceive 收到Rthreshold個(gè)字節(jié)產(chǎn)生的接收事件 MSComm1.RThreshold = 0 關(guān)閉OnComm事件接收 TimeDelay 20 延時(shí)20ms temperatureShow = Right(MSComm1.Input, 7) 讀取第一個(gè)數(shù)據(jù)字節(jié)(BCD碼高位字節(jié)) temperature = Val(temperatureShow) 數(shù)值組合,標(biāo)定小數(shù)點(diǎn) MSComm1.Output = CStr(CMDdataIn) & vbCr 發(fā)送讀命令 MSComm1.InBufferCount = 0 清空緩存 MSComm1.RThreshold = 1 關(guān)閉OnComm事件接收 Case comEventBreak 收到 Break。 … Case Else End Select End Sub 程序中一般會(huì)用到系統(tǒng)時(shí)鐘來計(jì)時(shí),這是要用到系統(tǒng)動(dòng)態(tài)連接庫kernel32.dll。有一點(diǎn)需要注意,由于串口速度有限,系統(tǒng)運(yùn)行速度也有限,所以設(shè)置采樣間隔一般不能小于15毫秒,否則會(huì)出現(xiàn)延時(shí)錯(cuò)誤。 四、結(jié)論 本系統(tǒng)最大的特點(diǎn)就是容易實(shí)現(xiàn),不需要數(shù)據(jù)采集卡,不需要硬件驅(qū)動(dòng)程序,硬件連接方便,軟件編制也比較容易掌握,有一點(diǎn)兒VB的基礎(chǔ),再了解一下串口控件應(yīng)用就可以了,特別適合較小的測(cè)溫系統(tǒng)。由于ADAM模塊是可尋址的,所以可以用多個(gè)模塊實(shí)現(xiàn)多個(gè)參量的測(cè)量采集。整個(gè)系統(tǒng)的開發(fā)周期較短,調(diào)試方便,運(yùn)行可靠,可根據(jù)需要制作相應(yīng)的操作界面。系統(tǒng)只占用PC機(jī)的一個(gè)串口,占用資源少,對(duì)硬件要求不高,各模塊在不同的場(chǎng)合可靈活應(yīng)用。 參考文獻(xiàn): [1]李鋒,曾德良,基于VB6.0的串口通訊程序設(shè)計(jì),現(xiàn)代電子技術(shù),2002.10,54-57; [2]鄭春生,于贇等,計(jì)算機(jī)連續(xù)實(shí)時(shí)溫度采集系統(tǒng)的研究,鑄造技術(shù),2003.024(003),193-194; [3]周六順,基于VB編程的微機(jī)溫度采集系統(tǒng)設(shè)計(jì),化工設(shè)計(jì)通訊,2002.028(003),47-48; [4]李時(shí)惠,計(jì)算機(jī)多點(diǎn)溫度采集系統(tǒng)的設(shè)計(jì)與現(xiàn)實(shí),計(jì)算技術(shù)與自動(dòng)化,2001.020(001),71-74; [5]ADAM采集模塊使用手冊(cè),研華科技股份有限公司; [6]Microsoft Corporation 微軟(中國(guó))有限公司,Microsoft Visual Basic 6.0中文版程序員指南,北京希望電腦公司 1998.01; [7]范逸之,陳立元,Visual Basic與RS-232串行通訊控制(最新版),中國(guó)青年出版社,2002.01. 作者簡(jiǎn)介: 1喬治宏,北京工業(yè)大學(xué)電控學(xué)院檢測(cè)專業(yè)2001級(jí)碩士研究生,研究方向,信號(hào)處理; 2吳晴,北京工業(yè)大學(xué)電控學(xué)院檢測(cè)專業(yè)副教授,研究生導(dǎo)師,研究方向,信號(hào)檢測(cè)與處理
投訴建議

提交

查看更多評(píng)論