石灰爐燒制石灰時爐內(nèi)各處的溫度可能不一樣,生產(chǎn)工藝要求得出爐內(nèi)四點的平均溫度,了解各點的溫度值,對平均值及各測量點的溫度進(jìn)行報警處理;若某處的信號不正常(傳感器損壞或斷線)能及時報警并排除在數(shù)據(jù)處理之外。本系統(tǒng)可完成以上功能,檢測處理石灰爐的溫度,并以4-20mA形式變送遠(yuǎn)傳溫度平均值或zui高一點的溫度。該產(chǎn)品的工作示意圖如下圖1所示,在該石灰爐內(nèi)有四個點分別放四個熱電偶,這四個熱電偶就是該系統(tǒng)的四路輸入信號來源。利用該系統(tǒng)測出如圖1所示:
系統(tǒng)硬件設(shè)計
1、系統(tǒng)結(jié)構(gòu)框圖及人機(jī)界面
系統(tǒng)的結(jié)構(gòu)框圖見圖二。系統(tǒng)硬件部分主要由前端輸入電路,A/D及D/A電路,人機(jī)界面電路,CPU及外圍電路組成。系統(tǒng)達(dá)到的主要功能是充許四路信號輸入,用戶可以通過參數(shù)設(shè)定選擇輸入熱電偶類型,平時顯示溫度平均值,若操作者需要可以按動面板上的按鍵查看任一路信號的溫度。四路信號是獨立的,有一路短路或斷線故障,不影響其它幾路信號的工作。儀表具有超限報警功能及熱電偶斷線提示功能。溫度平均值或溫度zui高的一路信號的變送為4-20mA電流信號輸出。系統(tǒng)具有掉電保護(hù)功能,當(dāng)?shù)綦姇r,設(shè)定數(shù)據(jù)可以保存。
系統(tǒng)設(shè)計有良好的人機(jī)界面,操作顯示面扳見圖3,在控制顯示面板上有兩排數(shù)碼管和四個按鍵,進(jìn)行系統(tǒng)工作的顯示和參數(shù)的修改。系統(tǒng)工作方式分為兩個狀態(tài)分別為編程和運行。利用一號鍵K1(狀態(tài)切換鍵)可以在兩種狀態(tài)間切換。在編程狀態(tài)時,上一排數(shù)碼管顯示參數(shù)代號,下排數(shù)碼管分別顯示對應(yīng)參數(shù)。在這種狀態(tài)下,利用二號鍵K2(移位鍵)可以順序變換不同的參數(shù)代號及參數(shù)。利用三號鍵K3(加鍵)和四號鍵K4(減鍵)可以對參數(shù)進(jìn)行修改。
在運行狀態(tài)時,上一排數(shù)碼管顯示各個信號回路順序號(1~~5),下排數(shù)碼管分別顯示對應(yīng)溫度。其中1~4路分別顯示四路回路號及其溫度,5路顯示四路中溫度平均值。這五路自動循環(huán)顯示,利用四號鍵K4(定位鍵)可以使顯示內(nèi)容停在當(dāng)前回路上。在編程或運行狀態(tài)下,無論何時按下K1,都可使?fàn)顟B(tài)變換到另一種狀態(tài)的初始階段。
電路設(shè)計中沒有擴(kuò)展總線及程序存儲器及I/O口,CPU的四個并行口全作為普通I/O口使用,CPU及外圍電路都是標(biāo)準(zhǔn)用法,在此重點介紹有設(shè)計特色的A/D及D/A電路和人機(jī)界面電路及電源電路。
2、數(shù)據(jù)采集電路與放大電路
數(shù)據(jù)采集部分電路如圖4所示,限流電阻R1和穩(wěn)壓管TL431產(chǎn)生2.5V標(biāo)準(zhǔn)電壓。系統(tǒng)共有7路模擬輸入信號,4路熱電偶信號輸入(EXT1————EXT4),1路冷端補(bǔ)償信號,一路基準(zhǔn)信號,一路地信號(EXT5)。2.5V電壓加在10K電阻和外接二極管串聯(lián)支路上,構(gòu)成熱電偶的冷端補(bǔ)償電路,它是利用二極管正向工作的電壓-溫度特性測量冷端溫度,基準(zhǔn)信號利用2.5V電壓和分壓電阻產(chǎn)生。因此采用了8選1多路模擬開關(guān)CD4051,由單片機(jī)的P2.0、P2.1、P2.2三個引腳高低電平控制模擬通道的選擇。由于輸入熱電偶分度號由用戶設(shè)定,不同分度號信號大小不一,故設(shè)計了由OP07和4051(U2)組成的程控放大器,輸入信號經(jīng)放大后進(jìn)入A/D,經(jīng)采集處理后得出各路信號值。程控放大是利用單片機(jī)對4051的控制,選擇不同的通道,同時也就選擇了不同的放大倍數(shù)。4051外接的電阻是:R25=20K,R26=47K,R27=2.4K,R28=3.9K,R29=1.9K,共有4個不同的放大倍數(shù),分別為放大倍數(shù)1=(20+47+2.4+3.9+1.6)/(47+2.4+3.9+1.6)≈1.3倍、放大倍數(shù)2=(20+47+2.4+3.9+1.6)/(2.4+3.9+1.6)≈10倍、放大倍數(shù)3=(20+47+2.4+3.9+1.6)/(3.9+1.6)≈14倍、放大倍數(shù)4=(20+47+2.4+3.9+1.6)/1.6≈46倍。1.3倍的放大倍數(shù)主要用于冷端補(bǔ)償二極管信號的采集,電路中四個22M上拉電阻完成熱電偶斷線撿測功能。
石灰爐內(nèi)4點放四只熱電偶,作為系統(tǒng)的四路m號輸入端。熱電偶信號被選通輸入后進(jìn)入程控放大電路,信號分度號不同則mV值的高低也不同,通過軟件選擇不同的放大倍數(shù),使這些放大后的信號zui大值接近A/D的zui大充許值;以充分利用A/D資源,保證測量精度。設(shè)放大倍數(shù)為A,則從程控放大出來的信號即為AX。各種信號的放大倍數(shù)的確定和后面A/D器件的模擬輸入有關(guān),本電路的A/D選擇7135(五位半),基準(zhǔn)電壓為0.5V,7135的模擬輸入的范圍為0~1V電壓。例如B、S標(biāo)準(zhǔn)熱電偶,放大倍數(shù)應(yīng)選擇46,K、E、標(biāo)準(zhǔn)熱電偶放大倍數(shù)應(yīng)選擇14。冷補(bǔ)二極管信號為0.65V左右,采用1.3倍放大倍數(shù),現(xiàn)以一路信號的轉(zhuǎn)換計算為例說明,測量某路熱電偶輸入時依次采集外接熱電偶輸入毫伏值、冷端補(bǔ)償二極管電壓降、基準(zhǔn)電壓及模擬地。從4051的X2端輸入V基是己知電壓,并固化于程序中,D基、D零、Dx分別是基準(zhǔn)、零點及輸入熱電偶信號的實時A/D采集值,通過下式可以完成零點滿度的自校正,計算出VX值。由于V基、Vx及地三個信號經(jīng)過同樣的硬件輸入通道,硬件的離散性誤差及零點滿度漂移對三者的影響相同,通過下面公式可以校正零點、放大倍數(shù)及A/D各環(huán)節(jié)的誤差,在用一般器件的情況下可保證系統(tǒng)的測量精度。
D基-D零/Dx-D零=Vx/V基
由于熱電偶mV溫度間關(guān)系是非線性的,我們采用了折線法進(jìn)行非線性校正,VX通過分段非線性數(shù)據(jù)處理,可以算出對應(yīng)溫度CX,加上通過測量冷端補(bǔ)償二極管電壓得出的冷端補(bǔ)償溫度C0,就得到該路的實際測量溫度C,即C=CX+C0。
同時由于熱電偶的原因,在測量端的電壓值會被抵消了一部分。這種情況造成的誤差影響較大。必須對它進(jìn)行冷端補(bǔ)償。因為二極管在溫度變化時,其正向?qū)妷鹤兓€(wěn)定,為-2mV/℃,因此我們采用二極管測冷端濕度進(jìn)行補(bǔ)償,具體做法如下:
*步,我們冷端補(bǔ)償輸入端輸入一標(biāo)準(zhǔn)電壓0.7V得到一個AD采樣值D0,然后我們再輸入一標(biāo)準(zhǔn)電壓0.6V再得到一個AD采樣值D1。兩者相減得到一個值ΔD,根據(jù)二極管的特性,每1℃電壓變化2mV,我們輸入的第1個標(biāo)準(zhǔn)信號和第2個標(biāo)準(zhǔn)信號相差為100mV,相當(dāng)于二極管正向電壓變化100mV,對應(yīng)冷端溫度變化50℃,就可以求出冷端溫度每變化1℃時其對應(yīng)AD值變化多少的系數(shù)K=ΔD/50,由于冷端溫度變化范圍?。?-50℃),相對精度要求不高,因此設(shè)計產(chǎn)品批量生產(chǎn)時把該系數(shù)直接固化于程序中。當(dāng)把冷補(bǔ)二極管1N4148接入輸入端后,據(jù)上面所述,可以根據(jù)該系數(shù)及冷端AD采集值變化量的大小推算出冷端溫度變化的大小。
第二步:我們在儀表設(shè)置狀態(tài)輸入當(dāng)前環(huán)境溫度Ta,并及時測得二極管1N4148所在端電壓經(jīng)放大AD轉(zhuǎn)換后的值Da,并將Ta、Da其存儲到EEPROM里面,以后儀表處于工作狀態(tài)時我們實時地測出二極管AD轉(zhuǎn)換后的值Db,再把兩者相減得ΔDab=Da-Db,ΔDab除以K(代表每一個1℃的AD采樣值的大?。┑玫揭粋€溫度值差Y。然后Y加上設(shè)置環(huán)境溫度初值Ta得到實際冷端溫度C0=Y+Ta。這種冷端補(bǔ)償有一定誤差,當(dāng)環(huán)境溫度變化時,所測的實際冷端溫度C0將會跟隨變化,在一定時期內(nèi)環(huán)境溫度的變化不大,因此它引起的誤差和熱電偶相比十分的小,可以忽略。但當(dāng)環(huán)境變化較大時,比如從冬天到夏天的變化,其變化為幾十℃,如果冷補(bǔ)誤差大于1度,我們可以重新輸入基準(zhǔn)Ta校正。
3、A/D電路
A/D電路主要由74LS157、ICL7135芯片組成,7135采用0.5V基準(zhǔn)信號,模擬電壓輸入范圍為0-1V。ICL7135采用動態(tài)掃描BCD碼輸出方式,即萬、千、百、十、個各字位BCD碼輪流出現(xiàn)在B8,B4,B2,B1端上出現(xiàn),并在D5-D1各端同步出現(xiàn)字位選通脈沖。采集到的微弱信號經(jīng)程控放大后,經(jīng)過AD轉(zhuǎn)換變成數(shù)字信號。使用了74LS157四2選1選擇器,使"萬"位數(shù)據(jù)輸出和其它的三標(biāo)志信號(超量程、欠量程、極性輸出)與BCD碼數(shù)據(jù)輸出的B8、B4、B2、B1共用C52的P0.0-P0.3四條I/O口線,分時傳送是通過D5控制74LS157的選擇端SEL實現(xiàn)。SEL輸入低電平時選擇1A-4A輸出,輸入高電平時選擇1B-3B輸出。因為"萬"位數(shù)據(jù)只能輸出0或1,是個半位。所以,正好和OR(過量程)、UR(欠量程)和POL(正負(fù)極性)三位構(gòu)成四位數(shù)據(jù)輸出,供單片機(jī)讀取。與C52的硬件接口方式是查詢方式,軟件上利用對D5、D4、D3、D2、D1查詢來實現(xiàn)"萬"、"千"、"百"、"十"、"個"上的數(shù)據(jù)輸出。
4、控制面板電路
該部分電路包括兩部分:按鍵控制電路和顯示電路。具體電路見圖5。電路采用ZLG7289作為核心芯片,通過三個引腳與單片機(jī)連接,單片可完成動態(tài)顯示掃描及按鍵查詢,節(jié)約了單片機(jī)I/O口硬件資源及時間資源。實際電路中Zlg7289的選片/CS接地時鐘線CLK接P2.7口數(shù)據(jù)線DIO接P2.6口鍵信號線KEY接P2.5口。
zlg7289具有SPI串行接口功能的可同時驅(qū)動8位共陰極數(shù)碼管(或64只獨立LED)的智能顯示驅(qū)動芯片,無須外圍元件可直接驅(qū)動八位LED數(shù)碼管并可同時連接多達(dá)64鍵盤的鍵盤矩陣,單片即可完成LED顯示及按鍵的擴(kuò)展。zlg7289內(nèi)部含有譯碼器,可直接接受BCD碼或16進(jìn)制碼,并同時具有2種譯碼方式,此外,還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等。本系統(tǒng)用了兩排4位數(shù)碼管,數(shù)碼管用的是動態(tài)顯示的。根據(jù)zlg7289的要求,數(shù)碼管選用共陰極的,Zlg7289的18腳~25腳接數(shù)碼管的位驅(qū)動端,10腳~17腳接數(shù)碼管的段驅(qū)動端,通過數(shù)據(jù)線和時鐘線可以把要顯示內(nèi)容送入7289。本電路只設(shè)計了四個按鍵,當(dāng)有鍵按下時,KEY引腳電平發(fā)生變化通知CPU通過數(shù)據(jù)線和時鐘線讀取鍵值。
5、報警電路及信號輸出電路
報警有兩種:上限報警和下限報警,兩個報警繼電器分別通過PNP驅(qū)動三極管接在單片機(jī)的P0.5和P0.7,低電平有效。軟件設(shè)計當(dāng)四路信號及平均值超過各自所定的上*,繼電器就發(fā)出報警,同時在控制面板的上排數(shù)碼管的zui后一位顯示H字樣;同樣,當(dāng)四路信號及平均值低于設(shè)定的下*,繼電器也報警,并在同一個位置顯示L字樣。
模擬輸出部分的電路圖如圖6所示。單片機(jī)根據(jù)設(shè)定參數(shù)選擇把溫度平均值或溫度zui高那一測量點信號送到十位D/A芯片7520,配合LM741放大器得到電壓輸出;zui后經(jīng)再經(jīng)過一個LM741構(gòu)成的V/I轉(zhuǎn)換電路,得到模擬電流4-20mA及1-5V電壓形式輸出。
6、開關(guān)電源電路
本變送器采用DDZ-Ⅲ型的電動單元組合儀表24V直流電源,這種供電方式的優(yōu)點是各單元省掉了電源電壓器,沒有工頻電源進(jìn)入單元儀表,既解決了儀表發(fā)熱問題,也為儀表的防爆提供了有利條件。由于內(nèi)部需要±5V,所以該系統(tǒng)采用了DC/DC開關(guān)電源,生成5V和-5V電壓。電源部分電路如圖7。
電源電路采用的MC34063是一種集成了DC-DC變換主要功能電路的芯片,它能被設(shè)計完成升(降)壓和極性變換的功能,而且所需外接元件少。外輸入24V電壓,經(jīng)過MC34063電壓可以轉(zhuǎn)換為+5V,而后,該電壓又經(jīng)過ICL7660變成-5V電壓。24V電壓可以同時供內(nèi)部4-20mA輸出電路使用。電路工作時5Vzui大電流0.4安培,-5vzui大電流0.02安培。
軟件設(shè)計及調(diào)試
軟件設(shè)計主要有主程序,ICL713/D轉(zhuǎn)換程序,BCD碼轉(zhuǎn)換程序,運算比較程序,讀寫24C02子程序,查表程序,功能鍵子程序等功能模塊。主程序流程圖如圖8所示。
主程序主要包括兩大分支,一個是編程狀態(tài),一個是運行狀態(tài)。
單片機(jī)首*行初始化,程序的初始狀態(tài)設(shè)置為運行狀態(tài),除剛通電進(jìn)入運行狀態(tài)外,以后程序須判斷狀態(tài)標(biāo)志位,根據(jù)判斷結(jié)果程序進(jìn)入編程或運行狀態(tài)。在運行狀態(tài)下無法對各參數(shù)進(jìn)行編輯,只能從24C02讀出各種運行工作參數(shù),巡回測量輸入信號,zui后通過零點滿度自校正處理,冷端補(bǔ)償計算,查表處理得出各測量點溫度值。在該狀態(tài)下可通過←鍵選擇顯示測量、報警、故障信息等各種運行參數(shù)。在編輯參數(shù)的狀態(tài)下系統(tǒng)不進(jìn)行測量,剛進(jìn)入編程狀態(tài)時要求輸入編程充許密碼,在輸入密碼正確的前提下,可以通過←鍵選擇各設(shè)定各參數(shù),并可通過↑↓按鍵修改,存入24C02中,停止按鍵操作5分鐘后不管是否按狀態(tài)鍵均自動轉(zhuǎn)入運行狀態(tài)。
單片機(jī)在運行狀態(tài)時,上面四位數(shù)碼管顯示回路號(zui合二位顯示報警及故障信息),下面四位數(shù)碼管分別顯示對應(yīng)數(shù)據(jù),可通過K4鍵來切換顯示不同的回路及其參數(shù)。其中回路號1-4表示不同的四路信號,平均值在第五路顯示。比較后其中zui大的一路及四路平均值可以通過參數(shù)的設(shè)定選擇以4-20mA形式變送輸出。軟件確定4051與AT89C52相連四路信號選擇電平,選擇的模入信號經(jīng)程控4051和運放放大后,進(jìn)入ICL7135進(jìn)行A/D轉(zhuǎn)換,由電壓信號轉(zhuǎn)化為BCD碼(由萬位到個位,五位地址輸出)。利用轉(zhuǎn)換子程序把BCD碼轉(zhuǎn)換為十六進(jìn)制數(shù),zui后進(jìn)行各種數(shù)據(jù)處理得出溫度值,求出zui大值及平均值,并進(jìn)行報警及信號故障判別處理。