1 引言?
某糖果廠于1985年從德國SIMON電子公司引進帶微電腦的計量進料器116EM型生產(chǎn)線,用于糖果生產(chǎn)。由于引進時間較長、圖紙資料不全、外方維護不便等原因,時有因電腦控制部分發(fā)生故障而影響生產(chǎn)的情況發(fā)生。從提高設備國產(chǎn)化比重、節(jié)約外匯、方便維護、保證生產(chǎn)出發(fā),本文應廠方要求,在對進口裝置的設備性能和電氣信號時序透徹分析的基礎上,開發(fā)了基于8031的嵌入式的微機自動計量進料系統(tǒng),該系統(tǒng)從性能要求、信號時序到外觀尺寸都與進口裝置完全匹配,成功地實現(xiàn)了進口設備控制系統(tǒng)國產(chǎn)化。?
2 計量進料器的稱量和計量進料原理?
啟動預先設置的計量進料程序后,計量系統(tǒng)首先稱量并存儲稱量鍋皮重,然后依次控制各種配料如牛奶、砂糖、水等進入稱量鍋,其中干物料用振動盤計量進料,粉末料由螺旋進料器計量進料,液體料則由液壓閥計量進料,糊狀物由泵進料。每一種配料都先后使用粗料和細料兩種進料方式,以保證稱量精度達到98%~99%。物料重量由安裝在支撐架上懸置稱量鍋的3個應變儀轉(zhuǎn)變?yōu)殡娦盘?,?jīng)A/D轉(zhuǎn)換讀入計算機進行重量計算,去除皮重后與設定值比較,其結(jié)果作為控制物料切換或粗、細進料轉(zhuǎn)換的依據(jù)。完成稱量的混合物通過活門排放至可加熱的儲藏缸、攪拌,再用泵打入溶解器,進入溶解制糖工序。?
3 系統(tǒng)功能要求?
為保證原進口裝置性能,要求計量進料自動控制系統(tǒng)具有如下功能:?
(1)實現(xiàn)多達5種原料的順序自動稱量,定時攪拌、排放;?
(2)在總重量不超過135 kg的范圍內(nèi)任意設定稱量值;?
(3)累計5種原料的班用量;?
(4)每個稱量循環(huán)完畢對稱重系統(tǒng)進行自檢,并能隨時執(zhí)行檢查命令;?
(5)能隨時暫停自動稱量灌裝;?
(6)若某種原料的灌裝系統(tǒng)故障,可跳過該原料的灌裝;?
(7)故障報警功能:?
無壓縮空氣報警,系統(tǒng)停止運行;?
電機聯(lián)接故障報警,系統(tǒng)停止運行;?
稱量鍋內(nèi)臟物超過10 kg,系統(tǒng)停止運行;?
儲藏缸液位超過設定值,系統(tǒng)停止運行;?
(8)顯示:凈重、毛重,自檢/檢查值等;?
(9)指示:重量上、下限,系統(tǒng)故障等;?
(10)自動/手動切換;?
(11)打?。汗潭ǜ袷降淖詣哟蛴『蛦五仭我辉蠑?shù)據(jù)打印。?
4 系統(tǒng)硬件結(jié)構?
根據(jù)上述系統(tǒng)功能要求,通過對原裝置傳感器、執(zhí)行部件的電氣信號分析,并考慮到安裝條件,硬件設計立足于低成本、國產(chǎn)化,采用了以MCS—51系列單片機8031為CPU,聯(lián)接A/D,鍵盤/顯示,撥碼盤,打印機等接口電路組成系統(tǒng)的設計方案。?
整個系統(tǒng)由如圖4—1所示的CPU板、A/D轉(zhuǎn)換板、開關量I/O板、顯示/鍵盤、打印機接口板、撥碼盤輸入板以及電源板組成。6塊板以插件形式安裝在兩只抽屜式機箱內(nèi),嵌入原裝置的控制器部位,實現(xiàn)與原裝置的電氣銜接。
?
其中8031最小系統(tǒng)由8031單片機通過總線驅(qū)動器擴展一片2764EPROM、一片6264RAM組成 。A/D轉(zhuǎn)換采用雙積分式12位A/D轉(zhuǎn)換芯片ICL7109及相應輔助芯片組成。ICL7109具有高精度 、低漂移、抗干擾能力強等優(yōu)點。采用8279作為鍵盤/顯示接口,CPU以中斷方式處理按鍵申請。五組四位BCD撥碼盤通過兩級譯碼,其控制端和8421數(shù)碼端經(jīng)8255與CPU相接。開關量I/O及打印機接口也均由8255實現(xiàn)。系統(tǒng)在保證功能的前提下體現(xiàn)了經(jīng)濟實效、立足國內(nèi)的原則。?
5 系統(tǒng)軟件設計?
系統(tǒng)應用軟件在DVCC—52與PC機聯(lián)合開發(fā)系統(tǒng)下,采用匯編語言與BASIC語言混合編程 、模塊化、結(jié)構化的設計方法。整個程序由系統(tǒng)診斷模塊、自動配料模塊、A/D及數(shù)據(jù)處理模塊、越限報警模塊、按鍵、顯示、打印模塊等組成。各模塊相對獨立又相輔相成,從而使采樣、運算、控制、顯示、參數(shù)設置等有條不紊,急緩有序的運行。在稱量精度、按鍵響應速度、故障報警能力等方面都達到了自動計量進料的要求。主程序框圖如圖5—1所示。
? 其中,診斷子程序包括CPU指令系統(tǒng)診斷、RAM診斷、EPROM診斷、A/D、I/O模板診斷以及為達到系統(tǒng)故障報警功能而進行的傳感器信號的檢測。?
自動配料子程序主要框圖如圖5—2所示??紤]到給料裝置的振動和慣性,程序中采用了把兩次采樣時間間隔Δt內(nèi)的重量增量Δg與設定值和稱量值之差e相比較,根據(jù)比較結(jié)果進行粗料、細料和換料的切換,以提高稱量精度。并用一個單元進行配料順序記數(shù),這樣5種配料可公用相同的程序,以達到優(yōu)化程序結(jié)構,節(jié)省程序存儲器空間的目的。
CPU以中斷方式處理按鍵請求。在鍵盤中斷服務子程序中,進行按鍵識別,并對相應的位標志變量進行設置。而其它各功能模塊則根據(jù)標志變量狀態(tài)控制程序走向。
6 系統(tǒng)可靠性設計?
本系統(tǒng)處于干擾較多的復雜工業(yè)現(xiàn)場,因此在設計中除采用光電隔離、電源濾波、屏蔽接地及地線處理等硬措施,以及用平均值加中位值復合濾波方法,克服信號采集中的周期性干擾和尖峰型干擾外,還采用了硬件自診斷技術和軟件抗干擾技術,以保證系統(tǒng)的稱量控制精度和可靠性。?
6.1 硬件故障自診斷技術?
本系統(tǒng)對關鍵的硬件設備采用了由上電自診斷、定時自檢、鍵控自檢相結(jié)合的自診斷方法,及時發(fā)現(xiàn)系統(tǒng)故障,保證精度,以避免系統(tǒng)帶病運行。具體診斷項目有:?
(1)CPU指令系統(tǒng)診斷8031指令系統(tǒng)能被正確地執(zhí)行是系統(tǒng)正常工作的前提,為此設計了一段涉及各種指令的測試程序,判斷其運行結(jié)果是否正確,以排除CPU失靈的可能性。?
(2)RAM診斷采取向關鍵RAM區(qū)依次進行寫入讀出操作,比較讀出與寫入內(nèi)容是否相同來判斷內(nèi)、外RAM芯片的好壞。上電時采用破壞性測試(不保護原有內(nèi)容),復位、按鍵診斷采用非破壞性測試(保護原有內(nèi)容)。
(3)EPROM診斷固化目標程序的EPROM在使用時間長,窗口密封不好等情況下,可能出現(xiàn)個別零星單元信息發(fā)生變化的情況,必須主動進行檢查。本文采用了“異或和”校驗法。在程序固化之前,利用開發(fā)裝置求出所有指令的異或和并把結(jié)果寫入最后一個空單元中,診斷時再求所有指令,包括“結(jié)果”的異或和,若和數(shù)為零,可以認為EPROM中的內(nèi)容是正確的 。
(4)采用硬件冗余聯(lián)合診斷技術進行A/D、I/O模板、重要參數(shù)傳感器診斷。?
6.2 軟件抗干擾技術?
當CPU本身受到干擾,程序計數(shù)器PC因干擾而改變內(nèi)容時,CPU將不能按正常狀態(tài)執(zhí)行程序,從而引起混亂,產(chǎn)生所謂程序“跑飛”現(xiàn)象。為此在軟件上采取了指令冗余、軟件陷阱 、純軟件watchdog技術以控制程序流向。?
(1)指令冗余當CPU受干擾后,會把操作數(shù)當指令碼引起混亂。分析MCS—51指令系統(tǒng),大多為單字節(jié)指令,最長不超過3字節(jié)。當程序彈飛到雙字節(jié)和3字節(jié)指令上時,繼續(xù)出錯的機會較大,而當彈飛到單字節(jié)指令上時,程序?qū)⒆詣蛹{入軌道。因此在程序中對程序流向起決定作用指令之前插入3條空操作指令(如轉(zhuǎn)移、子程序調(diào)用和對系統(tǒng)工作狀態(tài)至關重要的指令),并將跳轉(zhuǎn)指令冗余一次,以保證被正確執(zhí)行。指令冗余技術可減少彈飛次數(shù),使程序很快納入軌道。?
(2)軟件陷阱當程序彈飛到非程序區(qū)(EPROM未使用區(qū),數(shù)據(jù)區(qū)……)時,冗余指令將無能為力。為此設計了軟件陷阱,即在程序斷裂點(無條件跳轉(zhuǎn)指令、返回指令之后)和數(shù)據(jù)區(qū)末尾插入NOP NOP LJMP 3條指令。將空白區(qū)充滿LJMP指令,強行將捕獲的程序引向出錯處理程序入口。出錯處理程序的主要功能是實現(xiàn)系統(tǒng)恢復。因LJMP指令的操作碼是02H,故若把出錯處理程序入口安排在0202H,則可方便地利用開發(fā)系統(tǒng)中Debug功能把大片程序空白區(qū)固化為020202……,從而大批陷阱處理完畢。?
(3)純軟件Watchdog若指令彈飛在程序區(qū),但在遇到冗余指令之前已形成死循環(huán),則指令冗余和軟件陷阱均失效。為此本系統(tǒng)利用空閑的定時器T2設計了程序運行監(jiān)視系統(tǒng)(Watchdog);設T2為高優(yōu)先級,根據(jù)主控程序循環(huán)周期確定T2的定時常數(shù)和計數(shù)器的記數(shù)值 ,每次中斷對計數(shù)器加1,并判斷記數(shù)值若大于設定值,則轉(zhuǎn)出錯處理程序入口。同時在主程序中對計數(shù)器清零。如此,保證及時把程序從死循環(huán)中解放出來。?
7 結(jié)束語?
本文結(jié)合工廠實際,用經(jīng)濟的8031及外圍芯片設計了自動計量進料控制系統(tǒng),取代了原進口設備的控制裝置。經(jīng)幾年來運行證明,該系統(tǒng)功能完備,運行穩(wěn)定可靠,操作簡便,性能價格比高。該技術延長了設備使用壽命,創(chuàng)造了很好的經(jīng)濟效益,不失為進口設備國產(chǎn)化和傳統(tǒng)設備自動化的有益嘗試,在推進食品、飲料行業(yè)的國產(chǎn)化和自動化方面具有積極意義 。