技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于Delphi7.0的精密溫度控制儀數(shù)據(jù)采集系統(tǒng)的研制

基于Delphi7.0的精密溫度控制儀數(shù)據(jù)采集系統(tǒng)的研制

時(shí)間:2006-11-13 10:09:00來源:lvjing

導(dǎo)語:?WSH_A型精密溫度控制儀是我們自主研發(fā)的一種以微型計(jì)算機(jī)為核心的智能三點(diǎn)溫度控制儀器。
1.引 言 WSH_A型精密溫度控制儀(以下簡稱:溫控儀)是我們自主研發(fā)的一種以微型計(jì)算機(jī)為核心的智能三點(diǎn)溫度控制儀器。溫控儀可以與各種型號(hào)的熱電偶配接,實(shí)現(xiàn)高精度的溫度檢測與控制。其檢測精度為0.05%,控制精度可達(dá)0.1%,現(xiàn)已成功應(yīng)用于半導(dǎo)體生產(chǎn)行業(yè)的溫度控制中。在實(shí)際應(yīng)用過程中,用戶往往需要同時(shí)觀察多臺(tái)溫控儀的運(yùn)行狀態(tài)并且記錄運(yùn)行數(shù)據(jù)供分析使用。 本文介紹的精密溫度控制儀數(shù)據(jù)采集系統(tǒng)在Delphi7.0環(huán)境下實(shí)現(xiàn)了多臺(tái)溫控儀的監(jiān)測、數(shù)據(jù)存儲(chǔ)、溫度曲線繪制、歷史曲線、數(shù)據(jù)查詢、報(bào)表等功能,大大方便了用戶的管理要求,系統(tǒng)采用RS485通信,最多可同時(shí)監(jiān)測16臺(tái)溫控儀。 2.硬件結(jié)構(gòu)及系統(tǒng)組成 2.1溫控儀的硬件結(jié)構(gòu) 溫控儀的硬件結(jié)構(gòu)及通信模塊原理圖如圖1所示: 圖1 溫控儀功能原理圖 在MAX485后加保護(hù)繼電器輸出,繼電器采用系統(tǒng)電源5V供電,系統(tǒng)未上電或異常斷電時(shí)斷開通信模塊與網(wǎng)絡(luò)的連接,從而使整個(gè)網(wǎng)絡(luò)更加穩(wěn)定可靠[1]。 2.2系統(tǒng)組成 溫控儀具有光電隔離的RS485通信接口模塊,RS485具有傳輸距離遠(yuǎn)、抗干擾性好等特點(diǎn),是工業(yè)現(xiàn)場中應(yīng)用較多的一種通信方式[4]。輸入給溫控儀的三點(diǎn)溫度模擬量經(jīng)過溫控儀內(nèi)部功能模塊轉(zhuǎn)換后送給上位機(jī)的串口。系統(tǒng)的連接圖如圖2所示: 圖2 通信系統(tǒng)結(jié)構(gòu)圖 上位機(jī)和溫控儀的通信方式采用廣播方式[4]。在運(yùn)行過程中,上位機(jī)處于主動(dòng)地位,溫控儀被動(dòng)接收到上位機(jī)發(fā)送的命令后,判斷地址是否和本機(jī)地址相同,進(jìn)而決定是否與上位機(jī)進(jìn)行數(shù)據(jù)傳輸。上位機(jī)按照地址號(hào)順序讀完所有連接在總線上的溫控儀稱為一個(gè)讀周期[1]。 3.通信協(xié)議的制定及通信實(shí)現(xiàn) 為了提高上位機(jī)的實(shí)時(shí)性,應(yīng)盡量減小每個(gè)讀周期的通信信息量,制定通信協(xié)議的重點(diǎn)是合理安排讀命令字,使修改頻率高的信息在每個(gè)讀周期都進(jìn)行傳輸,而修改頻率低的信息只有在修改后才進(jìn)行傳輸。 3.1設(shè)置命令字 溫控儀數(shù)據(jù)采集系統(tǒng)需要檢測的信息按更新頻率分為: 〔1〕檢測參數(shù):一套設(shè)備中三個(gè)測點(diǎn)的當(dāng)前溫度值,溫控儀當(dāng)前運(yùn)行段號(hào)、段運(yùn)行時(shí)間、運(yùn)行總時(shí)間,環(huán)境溫度和設(shè)定溫度、溫控儀當(dāng)前輸出控制量以及部分開關(guān)量狀態(tài)。這些參數(shù)修改頻率高,應(yīng)在每個(gè)讀周期內(nèi)進(jìn)行傳輸。 〔2〕控制參數(shù):PID控制參數(shù)、溫度修正參數(shù),采樣時(shí)間,溫度報(bào)警值,熱電偶類型,以及根據(jù)工藝要求所設(shè)定的20段溫度工藝曲線參數(shù)。這些參數(shù)修改頻率低,在修改后才需要進(jìn)行傳輸。 上位機(jī)和溫控儀發(fā)送數(shù)據(jù)采用廣播方式,上位機(jī)下傳命令均為6個(gè)字節(jié),其格式為: [#]+[XX](地址)+[XX]+$0D。 其中:第1字節(jié)為頭字節(jié),第2、3字節(jié)為溫控儀地址,第4、5字節(jié)表示具體讀取內(nèi)容,如[RE]為讀取當(dāng)前溫度值及控制量參數(shù);[CT]為讀取控制參數(shù);[PI]為讀取PID及修正參數(shù);[LT]為讀取20段溫度工藝曲線參數(shù)。 3.2設(shè)置命令字優(yōu)先級 設(shè)置[RE]為關(guān)鍵命令字,具有高優(yōu)先級,在每個(gè)讀周期中讀取各溫控儀的檢測參數(shù)。在溫控儀上傳數(shù)據(jù)中設(shè)置一個(gè)狀態(tài)標(biāo)志位[X],監(jiān)視對應(yīng)的溫控儀有無控制參數(shù)修改,同時(shí)用來表示其它命令字的優(yōu)先級。如果用戶修改了溫控儀的控制參數(shù),則置狀態(tài)標(biāo)志位為1,相應(yīng)讀控制參數(shù)命令字的優(yōu)先級變高,上位機(jī)發(fā)送讀控制參數(shù)命令字,溫控儀接收到上位機(jī)發(fā)送的讀控制參數(shù)命令字并確定上傳數(shù)據(jù)后復(fù)位狀態(tài)標(biāo)志位。 3.3通信過程 本系統(tǒng)在通信協(xié)議中設(shè)置關(guān)鍵命令字,把通信過程中常用的查詢工作方式變?yōu)橹袛喙ぷ鞣绞?,大大提高了系統(tǒng)工作效率,通信過程的流程圖如圖3所示: 圖3 通信流程圖 3.4使用MSComm控件實(shí)現(xiàn)串口通信 MSComm控件是Visual Basic中提供的一個(gè)串口控件,使用簡單、性能良好,編程時(shí)不需要考慮復(fù)雜的API函數(shù),是串口通信中經(jīng)常使用的控件。 MSComm提供了事件驅(qū)動(dòng)方式和查詢方式兩種處理通信的方法。通信軟件編寫中,讀命令字的發(fā)送比較簡單,下位機(jī)返回?cái)?shù)據(jù)的接收部分要謹(jǐn)慎處理,要根據(jù)實(shí)際情況選擇是用事件驅(qū)動(dòng)方式還是查詢方式,事件驅(qū)動(dòng)方式必需保證每次下位機(jī)返回的存放在接收緩沖區(qū)的數(shù)據(jù)長度等于RThreshold屬性的設(shè)定值,以便激發(fā)OnComm( ) 事件,如果下位機(jī)對上位機(jī)發(fā)送的不同命令返回的數(shù)據(jù)長度不同就必須選擇查詢方式接收數(shù)據(jù)[4]。 注意,用查詢方式接收數(shù)據(jù)時(shí),在向輸出緩沖區(qū)發(fā)送完讀命令后,設(shè)置適當(dāng)時(shí)間的延時(shí)非常重要,一般可以用延時(shí)函數(shù)Sleep( )延時(shí),并根據(jù)返回?cái)?shù)據(jù)的長度設(shè)置合理的延時(shí)時(shí)間。 發(fā)送讀命令并延時(shí)合適時(shí)間后,輸入緩沖區(qū)就會(huì)返回對應(yīng)此命令的數(shù)據(jù),判斷數(shù)據(jù)是否正確的條件有三個(gè):數(shù)據(jù)頭為[#];數(shù)據(jù)尾為$0D;數(shù)據(jù)長度等于通信協(xié)議規(guī)定的長度。 4.系統(tǒng)功能及軟件結(jié)構(gòu)設(shè)計(jì) 4.1系統(tǒng)功能 本系統(tǒng)根據(jù)生產(chǎn)中用戶的需求設(shè)計(jì)所要實(shí)現(xiàn)的功能。 〔1〕 實(shí)現(xiàn)對連接在總線上溫控儀的工作狀態(tài)的監(jiān)測,溫控儀的工作狀態(tài)有檢測狀態(tài)、控制狀態(tài)和故障狀態(tài)。 〔2〕 參數(shù)讀?。鹤x取每個(gè)溫控儀的檢測參數(shù)和控制參數(shù)并實(shí)現(xiàn)數(shù)據(jù)庫存儲(chǔ)及實(shí)時(shí)三點(diǎn)溫度曲線繪制。 〔3〕 實(shí)現(xiàn)歷史數(shù)據(jù)查詢并顯示歷史溫度曲線功能。 〔4〕 實(shí)現(xiàn)報(bào)表及數(shù)據(jù)導(dǎo)出功能。 4.2軟件結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)的軟件實(shí)現(xiàn)分為三部分:第一部分實(shí)現(xiàn)溫控儀數(shù)據(jù)的讀入、處理、傳輸;第二部分實(shí)現(xiàn)數(shù)據(jù)分類顯示、存儲(chǔ)、曲線繪制;第三部分實(shí)現(xiàn)歷史數(shù)據(jù)及溫度曲線查詢、報(bào)表打印等功能。各部分的重點(diǎn)工作如下: 〔1〕 數(shù)據(jù)讀入:根據(jù)對溫控儀不同數(shù)據(jù)的讀取頻率的不同寫成兩個(gè)子過程ReadTemperature()和ReadPIDQX(),ReadTemperature()過程發(fā)送關(guān)鍵命令字,讀檢測參數(shù),ReadPIDQX()過程用來讀取控制參數(shù),子過程的形式參數(shù)是溫控儀的地址。ReadTemperature()子過程核心代碼: procedure ReadTemperature (adress1,adress2:byte); var send_ReadTOrder:variant;//關(guān)鍵命令字用variant變量存儲(chǔ) wendu_inputstring:string;//上傳的原始數(shù)據(jù)放在wendu_inputstring字符串里 InputLen,string_dingwei:integer;//數(shù)據(jù)長度和wendu_inputstring定位 Begin send_ReadTOrder:= VarArrayCreate([0,5], varByte); send_ ReadTOrder [0]:=$23; send_ ReadTOrder [3]:=$52; send_ ReadTOrder [1]:=adress1; send_ ReadTOrder [4]:=$45; send_ ReadTOrder [2]:=adress2; send_ ReadTOrder [5]:=$0D; if MainForm.MSComm.PortOpen then //如果串口已經(jīng)打開,則發(fā)送讀溫度命令 begin MainForm.mscomm.InBufferCount:=0; //清空輸入緩沖區(qū) MainForm.mscomm.OutBufferCount:=0;//清空輸出緩沖區(qū) MainForm.MSComm.Output:= send_ReadTOrder; //向輸出緩沖區(qū)發(fā)送讀溫度命令 sleep(600);//適當(dāng)延時(shí) InputLen:=MainForm.MSComm.InBufferCount;//讀入輸入緩沖區(qū)里的返回?cái)?shù)據(jù)長度 wendu_inputstring:=MainForm.MSComm.Input;//直接以ASCII碼形式接收數(shù)據(jù) string_dingwei:=pos(’*’,wendu_inputstring);//定位讀入的字符串 state:=copy(string_dingwei,wendu_inputstring) if(InputLen>=50)&&(copy(string_dingwei,wendu_inputstring)=’*’) &&( copy(string_dingwei+50,wendu_inputstring)=’ ’) then//注意入口條件,尤其是(InputLen>50)條件,50是通信協(xié)議中規(guī)定的返回?cái)?shù)據(jù)的長度 Begin If (state==’1’)then Begin //發(fā)送ReadPIDQX()并做相應(yīng)數(shù)據(jù)處理 End else ……//處理數(shù)據(jù)并傳輸 End; end; 〔2〕 數(shù)據(jù)顯示及溫度曲線繪制:數(shù)據(jù)顯示部分使用專業(yè)工業(yè)控件Iocomp,曲線繪制采用Teechartpro6版本,數(shù)據(jù)庫為Access2003。繪制溫度曲線時(shí),首先將溫控儀儲(chǔ)存的20段溫度工藝曲線以紅色畫出來,三點(diǎn)檢測溫度曲線則以藍(lán)、黃、綠三色畫出。注意圖像的縮放、托動(dòng)等輔助功能不使用Teechart的自帶功能,加兩個(gè)Scrollbar控件,用Srollbar的postion屬性控制時(shí)間軸(溫度軸)的min屬性實(shí)現(xiàn)時(shí)間軸(溫度軸)的拖動(dòng),溫度和時(shí)間軸的步長可以自由設(shè)置,實(shí)現(xiàn)曲線在時(shí)間軸(溫度軸)上的縮放。系統(tǒng)的主界面如圖4所示: 圖4 系統(tǒng)主界面 〔3〕數(shù)據(jù)存取及歷史數(shù)據(jù)查詢:每個(gè)溫控儀的歷史數(shù)據(jù)記錄按其運(yùn)行時(shí)間查詢,同時(shí)畫出運(yùn)行時(shí)的20段溫度工藝曲線和三點(diǎn)的歷史溫度曲線。每次系統(tǒng)運(yùn)行時(shí),用getlocaltime()函數(shù)取系統(tǒng)當(dāng)前時(shí)間,格式為xxYxxMxxDxxHxxM作為數(shù)據(jù)庫的表名,此次運(yùn)行記錄的數(shù)據(jù)都存在這個(gè)表里,這樣非常方便用戶的查詢,選擇儀表地址,就會(huì)在Listbox里顯示此儀表的所有歷史數(shù)據(jù)記錄,選擇要查詢的表名顯示記錄的數(shù)據(jù),同時(shí)將歷史曲線畫出,報(bào)表用Rave5制作[3],歷史數(shù)據(jù)也可以導(dǎo)出到Excel中編輯打印[2]。 5.結(jié)束語 本文所研制的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)配合WSH_A型精密溫度控制儀已經(jīng)應(yīng)用在半導(dǎo)體芯片生產(chǎn)的溫度控制中。在通信協(xié)議中設(shè)置關(guān)鍵命令字,把通信過程中通常使用的查詢工作方式變?yōu)橹袛喙ぷ鞣绞剑Y(jié)構(gòu)的優(yōu)化使系統(tǒng)運(yùn)行穩(wěn)定,實(shí)時(shí)性強(qiáng)。Teechart,Iocomp等第三方控件的靈活運(yùn)用使界面顯示曲線繪制更加專業(yè),滿足了用戶需求,并取得了良好的經(jīng)濟(jì)效益。 6.參考文獻(xiàn) [1] 王媛婷,楊耿杰,郭謀發(fā). Delphi+MSComm控件開發(fā)串行通信程序 [J].工業(yè)控制,2004,7(2):8-11. [2] 賽奎春,陳紫鴻,宋坤.Delphi數(shù)據(jù)庫開發(fā)關(guān)鍵技術(shù)與實(shí)例應(yīng)用[M].北京:人民郵電出版社,2004.5 197-227. [3] 肖慶航,陸定淑.Delphi7數(shù)據(jù)庫開發(fā)教程[M].北京:清華大學(xué)出版社,2004.3 216-231. [4] 趙蘭濤,蘇彥華.Delphi串口通信技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2004.6 56-77.

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:線路通尋線器的使用方法

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

相關(guān)資訊

網(wǎng)站簡介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)