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