【摘要】介紹了采用VB開發(fā)ITE溫度變送器控件的基本方法和信號(hào)轉(zhuǎn)換的兩個(gè)線性化處理方案,解決了設(shè)計(jì)各儀表控件中的重點(diǎn)和難點(diǎn)—— 線性化輸入問題。
【關(guān)鍵詞】 控件設(shè)計(jì),儀表控件,ITE溫度變送器,界面設(shè)計(jì),線性化處理,線性化輸入
ABSTRACT The sic method of developing ITE temperature transmitter controlware via VB and two linear processing scheme for signal conversion is introduced,and the linear input problem as the focal point and difficulty in designing eontrolware of each instrument are solved.
KEYWORDS controlware design,instrument controlware,ITE temperaturetransmitter,interface design,linear processing,linear input
開發(fā)多功能模擬實(shí)驗(yàn)室需要解決兩大問題:一是儀表組件的開發(fā);二是實(shí)驗(yàn)系統(tǒng)的組建。儀表組件的開發(fā)是開發(fā)多功能模擬實(shí)驗(yàn)室的基礎(chǔ),就象建立實(shí)驗(yàn)室需要先購置實(shí)驗(yàn)儀器設(shè)備一樣。為此,我們把常用的儀器儀表設(shè)備設(shè)計(jì)成儀表控件的形式,為實(shí)驗(yàn)系統(tǒng)的組建提供所需的物質(zhì)基礎(chǔ)。我們之所以要把每塊儀表做成一個(gè)儀表控件來使用,是因?yàn)閮x表控件作為一個(gè)可視化的對(duì)象具有很好的封裝特性,封裝設(shè)計(jì)好的儀表控件,對(duì)用戶來說就象使用買來的真實(shí)設(shè)備一樣,無須知道其功能的內(nèi)部具體實(shí)現(xiàn),就可以方便使用其外部功能了 另外,對(duì)于設(shè)計(jì)好的儀表控件,可以在不同的儀表系統(tǒng)中重復(fù)使用,這樣就大大提高了程序開發(fā)的效率。
1 ITE溫度變送器的工作原理
ITE溫度變送器是I系列變送儀表單元的一個(gè)主要品種,它可與各種標(biāo)準(zhǔn)型號(hào)的熱電偶或熱電阻配合使用,連續(xù)不斷地將被測(cè)的溫度或溫差信號(hào)轉(zhuǎn)換成統(tǒng)一的1~5V,IX2或4~20mA,DC信號(hào)輸出,可作為顯示、記錄、調(diào)節(jié)儀表和工業(yè)控制機(jī)等的標(biāo)準(zhǔn)輸入信號(hào),其電路主要有線性化輸入回路和放大輸出回路兩大部分組成,整機(jī)按負(fù)反饋平衡原理進(jìn)行工作,其信息傳遞與轉(zhuǎn)換過程的組成方框圖如圖1所示 由圖1可知,被測(cè)溫度t經(jīng)熱電偶轉(zhuǎn)換成相應(yīng)的熱電勢(shì)E[sub]t[/sub]后,輸至溫度變送器的線性化輸入回路,與線性化電路輸出的反饋電壓V[sub]f[/sub],和零點(diǎn)調(diào)整及冷端補(bǔ)償電路輸出的電壓v[sub]t[/sub]進(jìn)行綜合運(yùn)算后再送至電壓和功率放大器放大并轉(zhuǎn)換成電流信號(hào) , 電流信號(hào)再經(jīng)隔離輸出回路轉(zhuǎn)換成1~5V,IX2或4~20mA,IX2信號(hào)輸出,與此同時(shí),J。信號(hào)還通過反饋回路的反饋電阻轉(zhuǎn)換成相應(yīng)的反饋電壓 V[sub]f[/sub],然后輸至線性化電路運(yùn)算處理后輸出電壓V[sub]t[/sub],反饋到電壓放大器的反相輸入端,實(shí)現(xiàn)整機(jī)的負(fù)反饋?zhàn)饔?當(dāng)整機(jī)電路處于平衡狀態(tài)時(shí),其輸出電流I。(或電壓V。)與被測(cè)溫度t成線性關(guān)系。溫度變送器的線性化電路主要是基于一次元件熱電偶輸出的熱電勢(shì)與被測(cè)溫度為非線性而進(jìn)行設(shè)計(jì)的,這是熱電偶溫度變送器控件設(shè)計(jì)中的特殊問題,也是設(shè)計(jì)的難點(diǎn)問題,其原理如圖2所示.
另外,ITE溫度變送器還具有熱電偶冷端溫度的自動(dòng)補(bǔ)償功能 實(shí)現(xiàn)這一功能對(duì)于實(shí)際儀表來說稍微麻煩一些,主要是需要感溫元件和補(bǔ)償線路,但對(duì)于模擬儀表來說,沒有實(shí)際溫度環(huán)境,所謂的冷端也是由用戶給出的,因此冷端補(bǔ)償問題就變成的代數(shù)補(bǔ)償問題,所以模擬起來就比較簡(jiǎn)單,不會(huì)成為該儀表開發(fā)中的主要問題。
2 儀表控件的設(shè)計(jì)
本設(shè)計(jì)是在操作系統(tǒng)Windows98下,利用3DMAX2.5進(jìn)行儀表的界面設(shè)計(jì),利用中文Visual tMsic6.0進(jìn)行控件設(shè)計(jì)和系統(tǒng)編程。
2 .1 儀表的界面設(shè)計(jì)
儀表界面的設(shè)計(jì)(即外形的設(shè)計(jì))是力爭(zhēng)做到與實(shí)際儀表相統(tǒng)一,這樣可以使用戶在使用時(shí)象在使用實(shí)際儀表一樣。以前設(shè)計(jì)的儀表都是在Windows操作環(huán)境下,用附件中的畫筆畫出來的,外表單一,缺乏立體感。為了增加真實(shí)感,我們用3D Studio MAX制作出逼真的三維模型,然后加以材質(zhì)、貼圖、燈光等,不管從何種角度都能看出逼真的三維效果。
2.2 儀表控件設(shè)計(jì)
控件的設(shè)計(jì)主要就是設(shè)計(jì)控件“成員函數(shù)”的實(shí)現(xiàn)代碼,即控件的“屬性”、“方法”及“事件”的實(shí)現(xiàn)代碼下面以ITE溫度變送器控件的設(shè)計(jì)來簡(jiǎn)單介紹一下ActiveX控件的開發(fā)過程。
首先,進(jìn)入VB應(yīng)用程序后選擇“ActiveX控件”工程,并將“工程名”設(shè)置為“溫度變送器”,將“用戶控件”的“name”屬性設(shè)置成“ITE”,將其“Tool boxbitmap”屬性設(shè)置成3D MAX所繪制的“儀表圖片名”,這樣就設(shè)計(jì)好了一個(gè)空的儀表控件,即不具有任何功能的儀表外殼。為了使儀表具有特定的功能就需要給儀表添加響應(yīng)的“屬性”、“方法”及“事件。
為了向控件添加“屬性”、“方法”及“事件”,應(yīng)選擇Tools菜單下的Add Procedure項(xiàng),這就打開Add Procedure框,在Name欄里給出屬性名(如Input),在“類型”中選擇“屬性”按鈕,在“范圍”中選擇“公有的”按鈕,然后單擊OK,這就為“Input”屬性刨建了兩個(gè)
過程:Let(賦值)和Get(取值)過程。
對(duì)于ITE溫度變送器來說它的主要作用是進(jìn)行信號(hào)的轉(zhuǎn)換,根據(jù)其使用特征,應(yīng)具有輸入和輸出信號(hào)屬性,儀表的測(cè)量范圍(儀表的量程)屬性及輸出型號(hào)類型(電壓或電流輸出)屬性等,還可以使它具有“復(fù)位 (Reset)方法和“壞值輸入”事件等。
下面是溫度變送器的主要屬性過程代碼:
因?yàn)闇囟茸兯推鳛樾盘?hào)轉(zhuǎn)換設(shè)備,因此,其輸出不能人為改變,只能隨輸入的變化而變化,因此,輸出屬性不需要有賦值(Let)屬性過程。
其它屬性過程與此類似,在此不再一一列出。對(duì)于控件的“方法”和“事件”相對(duì)更為簡(jiǎn)單,“方法”就是一個(gè)“公有過程 或“公有函數(shù)過程”,“事件 是在程序代碼中當(dāng)觸發(fā)事件的條件滿足時(shí),利用關(guān)鍵字“RaiseEvent”+ 事件名”便可使事件被激活,即用戶可以在使用該控件時(shí)對(duì)該事件進(jìn)行編程。
對(duì)于儀表控件的設(shè)計(jì),僅僅設(shè)計(jì)好控件“屬性”、“方法”及“事件”是遠(yuǎn)遠(yuǎn)不夠的,為了提供給用戶一個(gè)形象逼真,使用方便的儀表,還要考慮儀表使用過程中的動(dòng)態(tài)效果,如對(duì)于有顯示輸出的儀表來說,當(dāng)其輸入改變時(shí),儀表的指針應(yīng)跟著移動(dòng)等,另外儀表的精度同題,儀表控件的自動(dòng)縮放功能等,這些都是在控件設(shè)計(jì)時(shí)應(yīng)考慮的問題。
3 ITE溫度變送器的線性化處理
ITE型熱電偶溫度變送器的數(shù)學(xué)模型如下:
由于變送器的輸入只能為毫伏信號(hào),因此在耐熱電偶溫度變送器的線性化回路進(jìn)行仿真時(shí),只有通過索引相應(yīng)毫伏值對(duì)應(yīng)的溫度值來實(shí)現(xiàn),因此ITE型熱電偶溫度變送器的軟件實(shí)現(xiàn)就復(fù)雜一些。
目前,筆者有兩種方案來解決線性化輸入問題。
方案1;用office中的數(shù)據(jù)庫Access制作“熱電勢(shì)一溫度 對(duì)應(yīng)的分度表,利用熱電偶的輸出毫伏信號(hào)來索引溫度值,再將返回的溫度值代入輸出方程,求出輸出值。在用語言實(shí)現(xiàn)時(shí),熱電偶輸出信號(hào)即變送器的輸入值,利用VB與數(shù)據(jù)庫的連接功能,裝入分度表,并索引溫度值。例如:B分度時(shí),輸入熱電偶毫伏信號(hào)為13.820mV,那么我們可以索引分度表第138行2O列,找到溫度值為1820℃,代回輸出方程運(yùn)算,求出輸出結(jié)果。
方案2:在程序中定義一個(gè)多維數(shù)組,并對(duì)數(shù)組的每一個(gè)元素進(jìn)行賦值,數(shù)組維數(shù)即毫伏輸入值的轉(zhuǎn)化,數(shù)組的元素值即溫度值。例如:數(shù)組B(i, )對(duì)應(yīng)B分度表,當(dāng)輸入信號(hào)為13.820時(shí),則數(shù)組B(13.820)一1 820℃會(huì)自動(dòng)代入輸出方程,作為輸入進(jìn)行運(yùn)算。以上兩種方法都比較繁瑣,而且要在初始化階段將表裝入內(nèi)存或?qū)?shù)值賦值。但對(duì)資源占用方面,使用多維數(shù)組相對(duì)較少,可以在程序中動(dòng)態(tài)賦值,將降低對(duì)資源的耗用。因此筆者采用了第二種方案。
4 總結(jié)
要開發(fā)出一個(gè)完善的多功能模擬實(shí)驗(yàn)室是需要大量人力、物力和財(cái)力的,以上短文主要是就ITE溫度變送器的開發(fā)介紹一下儀表控件的開發(fā)思路和特殊問題(線性化)的處理辦法,希望能給對(duì)此感興趣的朋友一點(diǎn)啟迪,起到拋磚引玉的作用。
參考文獻(xiàn)
1 Cary Cornell,Dave Jezak著.Active x VB5 0控件建立版.北京:清華大學(xué)出版社,1998:全書
2 李海著.Visual Basic晉級(jí):Active x控件.北京 航空航天大學(xué)出版社.2000:全書
3 郭巧菊.可視化過程控制系統(tǒng)通用仿真軟件開發(fā).計(jì)算機(jī)應(yīng)用研究,2000.1(增刊) 69~70
ITE溫度變送器控件的開發(fā)及其線性化處理:PDF