劉忠超,殷華文,郭抒穎
(1.南陽(yáng)理工學(xué)院 電子與電氣工程學(xué)院,南陽(yáng) 473004;2.北京林業(yè)大學(xué) 工學(xué)院,北京 100083)
儀表是工業(yè)控制系統(tǒng)中的核心組成部分,而傳統(tǒng)的控制儀表精度不高、功能單一、通信聯(lián)網(wǎng)功能不強(qiáng),鑒于此,開(kāi)發(fā)了基于MSP430單片機(jī)的智能儀表,該儀表具備檢測(cè)K型熱電偶、Pt100熱電阻溫度信號(hào)、4~20 mA/1~5 V模擬信號(hào)、繼電器信號(hào)、高速脈沖信號(hào)等多種信號(hào)輸入功能,同時(shí)還具有繼電器控制輸出、變送輸出、上位機(jī)通訊、組網(wǎng)等多種功能。
智能儀表硬件設(shè)計(jì)的核心是控制器的選型和硬件電路的設(shè)計(jì),該智能儀表主控模塊選用當(dāng)前工業(yè)應(yīng)用中使用最多的超低功耗MSP430單片機(jī)作為控制器[1];雙向多路開(kāi)關(guān)CD4051作為多路開(kāi)關(guān)選擇器;可編程儀用放大器AD526作為儀用放大器;并行輸入模數(shù)轉(zhuǎn)換器TLC7528CN作為A/D轉(zhuǎn)換器;同時(shí)基于MAXIM公司的電平轉(zhuǎn)換芯片MAX232和MAX485,設(shè)計(jì)了光耦隔離型RS-232和RS-485的通訊接口。設(shè)計(jì)的智能儀表系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 智能儀表結(jié)構(gòu)圖Fig.1 Diagram of intelligent instrument structure
為了能讓儀表具有簡(jiǎn)易PLC的部分功能,設(shè)計(jì)了8路具有光耦隔離的數(shù)字量輸入電路。數(shù)字量輸入電路如圖2所示。為減少電氣干擾,提高可靠性,使用PC817線性光電耦合器使之前端與負(fù)載完全隔離,圖2中R62和R69組成分壓電路,保護(hù)光耦不被損壞,R71和C38組成RC低通濾波器,濾除干擾。工作原理是當(dāng)外接的按鈕1、2端子接通時(shí),PC817光耦導(dǎo)通,連接到主控器MSP430相應(yīng)的引腳檢測(cè)到高電平,當(dāng)外接按鈕斷開(kāi)時(shí),PC817光耦不會(huì)導(dǎo)通,單片機(jī)的檢測(cè)管腳為低電平信號(hào),即表示外部開(kāi)關(guān)量斷開(kāi),從而可進(jìn)一步的在程序中處理[2]。
圖2 數(shù)字量輸入電路Fig.2 Digital input circuit
智能儀表需有檢測(cè)多種輸入信號(hào)的能力,而每種輸入信號(hào)因信號(hào)性質(zhì)不一樣,因此有不同的檢測(cè)電路,在使用時(shí)通過(guò)多路切換開(kāi)關(guān)CD4051來(lái)實(shí)現(xiàn)相應(yīng)信號(hào)的檢測(cè),其檢測(cè)電路如圖3所示。為節(jié)約成本,該智能儀表A/D轉(zhuǎn)換方式采用分時(shí)復(fù)用技術(shù),圖4是采用CD4051模擬多路開(kāi)關(guān)的電路圖[3]。圖中CD4051的管腳A、B、C的控制端來(lái)自單片機(jī)發(fā)送的控制信號(hào),通過(guò)外接不同輸入信號(hào)發(fā)送相對(duì)應(yīng)的地址來(lái)選通相應(yīng)的通道進(jìn)入A/D中進(jìn)行處理。
圖3 信號(hào)檢測(cè)輸入電路Fig.3 Detection signal input circuit
圖4 輸入端多路選擇電路Fig.4 Input multiplexer circuit
由于不同的檢測(cè)信號(hào)其需要進(jìn)行放大的倍數(shù)也不一樣,所以設(shè)計(jì)了增益為1、10、16和50的4種程控放大器,放大器增益倍數(shù)通過(guò)軟件控制MSP430的單片機(jī)管腳來(lái)控制CD4051的A、B、C管腳,從而可以選通相對(duì)應(yīng)的增益通道。程控放大電路如圖5所示。
智能儀表4~20 mA電流輸出是其最基本的功能,大多數(shù)儀表直接使用集成芯片來(lái)產(chǎn)生4~20 mA電流,如儀表中經(jīng)常使用的XTR101芯片,但是專用集成芯片價(jià)格較昂貴,為節(jié)約成本,該儀表采用PWM調(diào)制方式輸出電流信號(hào)[3],其原理如圖6所示。為防止干擾,該電路中數(shù)字量和模擬量之間用TP521光電耦合器進(jìn)行隔離,并使用二極管IN4148進(jìn)行單向保護(hù)。電路中單片機(jī)產(chǎn)生的PWM信號(hào)通過(guò)光耦TP521輸入,并且由R42和C19無(wú)源低通濾波器來(lái)濾除干擾。為了能夠產(chǎn)生恒定電流輸出,使用運(yùn)算放大器OP07和9013三極管按照電流負(fù)反饋連接,運(yùn)算放大器輸出端通過(guò)控制三極管產(chǎn)生恒定的電流信號(hào),單片機(jī)通過(guò)調(diào)節(jié)PWM信號(hào)的占空比來(lái)產(chǎn)生4~20 mA相對(duì)應(yīng)的電流輸出。
圖5 程控放大電路Fig.5 Programmable amplifying circuit
圖6 4~20 mA電流輸出電路Fig.6 Circuit of 4~20 mA current output
如圖7所示為繼電器輸出電路,電阻R14為三極管Q2基極的限流電阻,同樣采用PC817光電耦合器來(lái)防止信號(hào)之間的干擾。單片機(jī)產(chǎn)生的通斷控制信號(hào)通過(guò)光耦PC817來(lái)控制三極管Q2的導(dǎo)通,Q2工作在開(kāi)關(guān)模式下,當(dāng)Q2導(dǎo)通時(shí)使繼電器線圈吸合,常開(kāi)觸點(diǎn)閉合。二極管D4為TVS瞬態(tài)抑制單極性二極管,它的作用是泄流,通過(guò)D4放掉繼電器斷開(kāi)時(shí)上線圈中所帶的電荷,防止反向擊穿,其工作電壓為12 VDC,并鉗制線圈電壓不超過(guò)額定電壓[4]。
圖7 繼電器輸出電路Fig.7 Relay output circuit
設(shè)計(jì)的智能儀表在運(yùn)行時(shí)要有條不紊地完成初始化、通信、顯示、檢測(cè)、控制、輸出和報(bào)警等相關(guān)任務(wù),在設(shè)計(jì)的主程序中,單片機(jī)通過(guò)循環(huán)監(jiān)控來(lái)捕捉相應(yīng)的中斷服務(wù)子程序,比如按鍵程序、溫度補(bǔ)償程序、非線性校正程序、通訊處理等。軟件系統(tǒng)功能模塊劃分如圖8所示。
智能儀表軟件系統(tǒng)中的各個(gè)功能模塊采用在主程序中輪詢檢測(cè)等待的方式去執(zhí)行,即每到一定時(shí)間執(zhí)行相應(yīng)函數(shù)。智能儀表上電工作時(shí)首先完成初始化,并打開(kāi)中斷輪詢檢測(cè)標(biāo)志位。程序中功能軟件的監(jiān)控標(biāo)志設(shè)置為定時(shí)信號(hào)和動(dòng)作信號(hào)組成,比如檢測(cè)到時(shí)間到并且A/D轉(zhuǎn)換標(biāo)識(shí)到后執(zhí)行相應(yīng)的A/D轉(zhuǎn)換,各個(gè)標(biāo)志位沒(méi)有到來(lái)時(shí)主程序不斷循環(huán)檢測(cè)等待,直到有相應(yīng)的功能程序標(biāo)識(shí)的到來(lái),監(jiān)控程序流程圖如圖9所示。
圖8 軟件系統(tǒng)功能模塊Fig.8 Software system function module
圖9 監(jiān)控程序流程圖Fig.9 Monitor program flow chart
Modbus協(xié)議是世界上第一個(gè)真正實(shí)際用于工業(yè)現(xiàn)場(chǎng)的總線協(xié)議,是由Modicon在1979年發(fā)明的,其可以采用ASCII和RTU 2種模式進(jìn)行傳輸。該智能儀表采用Modbus的ASCII協(xié)議與上位機(jī)進(jìn)行通訊,在消息中的每個(gè)8位字節(jié)都作為2個(gè)ASCII字符發(fā)送。這種方式的主要優(yōu)點(diǎn)是字符發(fā)送的時(shí)間間隔可達(dá)到1 s而不產(chǎn)生錯(cuò)誤,通訊穩(wěn)定[5]。通訊協(xié)議中ASCII信息幀采用的格式如表1所示。
表1 Modbus協(xié)議的ASCII信息幀格式Tab.1 Modbus protocol of ASCII information frame format
起始位為1字節(jié)值為3AH的ASCII碼;設(shè)備地址為 1字節(jié) 2個(gè) ASCII碼,范圍 0~255(即 0~0x0ffH);標(biāo)志為 1字節(jié) 2個(gè) ASCII碼,即 bit0~bit7,當(dāng) bit0=0為讀,bit0=1為寫,bit1=0時(shí)不打包。bit3bit2=00時(shí)數(shù)據(jù)類型為字節(jié)。bit3bit2=01時(shí)數(shù)據(jù)類型為字。bit3bit2=1x時(shí)數(shù)據(jù)類型為浮點(diǎn)數(shù)。數(shù)據(jù)地址為2字節(jié)4個(gè)ASCII碼即0x0000~0xffff;數(shù)據(jù)字節(jié)數(shù)為1字節(jié)2個(gè)ASCII碼,其值為實(shí)際讀寫的數(shù)據(jù)的字節(jié)數(shù)。數(shù)據(jù)就是實(shí)際傳送的數(shù)據(jù)轉(zhuǎn)換為ASCII碼,個(gè)數(shù)為字節(jié)數(shù)乘2。LRC校驗(yàn)比較簡(jiǎn)單,檢測(cè)了消息域中除了開(kāi)始和結(jié)束的標(biāo)識(shí)外的內(nèi)容,它僅僅是把每一個(gè)需要傳輸?shù)臄?shù)據(jù)按字節(jié)疊加后取反加1即可;結(jié)束標(biāo)識(shí)位以回車換行結(jié)束,其為十六進(jìn)制的0x0D和0x0A[6]。
智能儀表具有控制器功能,其在控制算法上采用專家PID,專家PID控制的實(shí)質(zhì)是基于受控對(duì)象和控制規(guī)律的各種知識(shí),無(wú)需知道被控對(duì)象的精確模型,利用專家經(jīng)驗(yàn)來(lái)設(shè)計(jì)PID參數(shù)。專家PID控制是一種直接型專家控制器。
令e(k)為離散化后的當(dāng)前采樣時(shí)刻的誤差值,e(k-1)、e(k-2)分別表示前 1 個(gè)采樣時(shí)刻和前 2 個(gè)采樣時(shí)刻誤差,M1、M2是設(shè)定的誤差界限,M1>M2>0;則有
根據(jù)當(dāng)前采樣時(shí)刻的誤差及其變化率,該智能儀表設(shè)計(jì)的專家PID控制算法按5種情況設(shè)計(jì):
①當(dāng)∣e(k)∣>M1時(shí),表明此時(shí)誤差的絕對(duì)值已經(jīng)很大,無(wú)論誤差變化率趨勢(shì)如何,都應(yīng)該考慮控制器按定值輸出,已達(dá)到能迅速調(diào)整誤差,使誤差以最快的速度減小,同時(shí)避免產(chǎn)生超調(diào)。此時(shí)控制器相當(dāng)于實(shí)施開(kāi)環(huán)控制。
②當(dāng) e(k)Δe(k)>0 或 Δe(k)=0 時(shí),表明此刻誤差在朝誤差絕對(duì)值增大的方向變化,或者此時(shí)誤差為某一常數(shù)。
如果|e(k)|<M2,說(shuō)明此刻雖然誤差朝絕對(duì)值增大的方向變化,但是誤差絕對(duì)值并不是很大,可以考慮施加一般的控制作用,改變誤差變化趨勢(shì)減小誤差,控制器輸出為
③當(dāng) e(k)Δe(k)<0,Δe(k)Δe(k-1)>0,或者Δe(k)=0時(shí)說(shuō)明此時(shí)誤差的絕對(duì)值往減小的方向變化,或者已經(jīng)達(dá)到了平衡的狀態(tài),應(yīng)該使控制器的輸出保持不變。
④當(dāng) e(k)Δe(k)<0,Δe(k)Δe(k-1)<0,表明誤差處于極值狀態(tài),如果此時(shí)可以考慮施加較強(qiáng)的控制作用,即:
⑤當(dāng) e(k)≤ε(精度)時(shí),表明此時(shí)誤差絕對(duì)值很小,此時(shí)加入積分環(huán)節(jié),進(jìn)一步減小穩(wěn)態(tài)誤差。
上述算法中 em(k)是誤差 e的第 k個(gè)極值,u(k)是控制器第k次輸出;u(k-1)是控制器第k-1次輸出;k1為增益放大倍數(shù),k1>1;k2是抑制系數(shù),0<k2<1;k是控制周期序號(hào);ε是任意小的正實(shí)數(shù)。
設(shè)計(jì)的智能儀表功能強(qiáng)大,可接多路信號(hào)。該智能儀表性能的測(cè)試主要通過(guò)工業(yè)中常用的溫度控制對(duì)象來(lái)測(cè)試。溫度檢測(cè)使用Pt100熱電阻溫度傳感器,內(nèi)部自編專家PID算法,通過(guò)繼電器控制加熱,系統(tǒng)原理圖如圖10所示。
通過(guò)編寫Modbus通信協(xié)議,在上位PC機(jī)的組態(tài)王軟件中實(shí)現(xiàn)溫度監(jiān)控結(jié)果如圖11所示。
圖10 溫度控制原理圖Fig.10 Temperature control principle diagram
圖11 鍋爐溫度控制曲線圖Fig.11 Boiler temperature control curve
在圖11的溫度測(cè)控中,當(dāng)設(shè)定溫度值由45℃階躍到55℃時(shí),根據(jù)調(diào)試,把專家PID算法的相關(guān)參數(shù)分別設(shè)置為誤差上限M1根據(jù)控制要求分別設(shè)置為 3.0、1.0、0.8;誤差下限 M2=0.2,增益放大系數(shù)k1=1.5,抑制系數(shù)k2=0.4,ε=0.1。經(jīng)過(guò)專家PID控制調(diào)試最終使其溫度能夠穩(wěn)定在55℃,穩(wěn)態(tài)誤差為±0.18%,而且可以達(dá)到?jīng)]有超調(diào)。
以MSP430單片機(jī)為核心設(shè)計(jì)的多功能智能儀表可分為信號(hào)采集處理、程序算法控制、上位機(jī)軟件監(jiān)控3部分。該智能儀表功耗低,工作穩(wěn)定可靠,集多信號(hào)檢測(cè)、多形式輸出、顯示、聯(lián)網(wǎng)、存儲(chǔ)、控制等功能于一體,經(jīng)實(shí)際測(cè)試各項(xiàng)功能均能正常實(shí)現(xiàn),智能化程度高,具有很好的市場(chǎng)應(yīng)用前景。
[1]葛士斌,張志,鄭恩明,等.基于MSP430單片機(jī)的無(wú)線測(cè)溫裝置設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2014(5):18-22.
[2]何濤燾,文華北,田陸.基于STM32的智能鋼水測(cè)溫定氧儀表[J].儀表技術(shù)與傳感器,2014(1):44-46.
[3]夏云生,吳勝繼,徐橋松.工業(yè)智能儀表標(biāo)準(zhǔn)電流信號(hào)輸出電路設(shè)計(jì)[J].電子測(cè)試,2011(9):74-76.
[4]彭大恒,李元寶,張濤,等.串行通信在多路溫度智能儀表中的應(yīng)用[J].煤礦機(jī)械,2013,34(8):216-218.
[5]李娜.基于MODBUS協(xié)議的智能儀表的設(shè)計(jì)[D].北京:北京郵電大學(xué),2008.
[6]劉忠超,翟天嵩.基于AVR的智能儀表的嵌入式以太網(wǎng)接口設(shè)計(jì)[J].中國(guó)農(nóng)機(jī)化,2012(1):169-172.