基于PIC16F877單片機(jī)的電子秤包裝機(jī)控制系統(tǒng)
包裝機(jī)系統(tǒng)可用于粉末東顆粒物料(如水泥、化肥、糧食等)的定時包裝,自動化程度、計量精度要求越來越高。針對用戶的要求,本系統(tǒng)設(shè)計了一種基于PIC16F877單片機(jī)控制的電子秤水泥包裝機(jī)控制系統(tǒng)。
本文引用地址:http://m.butianyuan.cn/article/172440.htm控制系統(tǒng)包括調(diào)零、調(diào)滿、設(shè)定粗細(xì)流閾值、插袋、喂料、壓袋、推包、破袋處理等控制功能。另外,對檢測的質(zhì)量進(jìn)行數(shù)碼顯示,對狀態(tài)采用LED指示。同時還完成了與上位機(jī)的通信,可以實時觀測質(zhì)量變化及控制狀態(tài)的情況,并在硬件和軟件上分別采用了抗干擾措施和系統(tǒng)保護(hù)措施。本系統(tǒng)硬件結(jié)構(gòu)簡單,運行穩(wěn)定可靠,軟硬兼?zhèn)?具有完善的控制功能和抗干擾能力。
1 控制器工作原理
電子秤是包裝機(jī)的一個獨立的控制部件,安裝在包裝機(jī)電控箱內(nèi),從包裝箱觀察窗可以看到電子秤的質(zhì)量顯示和狀態(tài)LED指示。其控制系統(tǒng)由檢測電路、控制電路、設(shè)定顯示電路及與上位機(jī)的通信電路等幾部分組成??刂破髟砜驁D如圖1所示。
系統(tǒng)經(jīng)過調(diào)零調(diào)滿后,發(fā)出插袋信號。當(dāng)檢測到包準(zhǔn)備好信號時開始喂料,此時粗細(xì)閾一起打開,CPU根據(jù)由荷重傳感器檢測的質(zhì)量信號,與由按鍵設(shè)定輸入的粗細(xì)閾流值進(jìn)行比較判斷,先后控制關(guān)閉粗細(xì)閾。再由檢測的推包位置到和皮帶脈沖到信號,發(fā)出推包控制信號。另外,閾值設(shè)定和與上位機(jī)的通信在軟件中通過中斷來控制實現(xiàn)。物料的質(zhì)量由數(shù)碼管實時顯示。
2 硬件電路設(shè)計
根據(jù)系統(tǒng)的控制功能,并結(jié)合包裝機(jī)機(jī)械構(gòu)件的工作原理,在軟件設(shè)計過程中,應(yīng)力求硬件結(jié)構(gòu)簡單,控制可靠。軟硬協(xié)調(diào),相得益彰。以下將對控制系統(tǒng)的CPU選擇及檢測部分、控制部分、顯示與閾值設(shè)定部分及串行通信部分的設(shè)計進(jìn)行介紹。
2.1 CPU的選擇
用戶要求包裝質(zhì)量精度比較高,即要求水漏質(zhì)量的測量具有很高的精度,這就要求系統(tǒng)的A/D轉(zhuǎn)換精度比較高。另外,在喂料過程中采用粗流細(xì)流兩種方式,CPU 需對粗流細(xì)流閾的設(shè)定值有掉電保護(hù)作用。美國Microship公司的PIC16F877單片機(jī)能滿足系統(tǒng)的這些要求。PIC16F877內(nèi)含10位的 A/D轉(zhuǎn)換器,價格便宜,外圍接口電路簡單,轉(zhuǎn)換精度高,對本系統(tǒng)而言控制精度可達(dá)0.05kg。這帶有256字節(jié)的電何擦寫的EEPROM存儲器。每次工作粗流細(xì)流閾值的設(shè)定值可以從EEPROM中讀出以前寫入的設(shè)定值,或重新按鍵設(shè)定并寫入EEPROM以備下次使用。另外PIC16F877有8K× 14bit的FLASH存儲器,386×8bit的數(shù)據(jù)SRAM及同步串行模塊。充足的資源可供以后開發(fā)改進(jìn)??撮T狗可以對軟件運行出錯提供保護(hù)功能。 RISC(精簡指令集計算機(jī))指令易學(xué)易用。
2.2 檢測電路
檢測部分主要介紹模擬輸入電路和狀態(tài)檢測電路兩部分,電路如圖2所示。
CPU的RA0、RA1、RA5為內(nèi)部A/D轉(zhuǎn)換器的輸入,分別外接調(diào)零、調(diào)滿、質(zhì)量檢測電路,RA2、RA3連接外部參考電壓。電位器RW1、RW2用于電子秤的標(biāo)定,定時檢查標(biāo)定,以免影響精度。另外,質(zhì)量的測量主要從測量精度出發(fā),荷重傳感器輸出電壓(0~5mV)經(jīng)放大電路產(chǎn)生0~5V電壓,放大電路的微分環(huán)節(jié)是為了確保動態(tài)垢過程中質(zhì)量測量的精度,用作動態(tài)校正。電位器RW5可以調(diào)節(jié)滿值。放大電路如圖3所示。
包裝機(jī)系統(tǒng)的工作是個順序的過程,需要檢測一系列的狀態(tài)信號。單片機(jī)的RE0、RE1、RE2口作為由電子秤外部產(chǎn)生的包準(zhǔn)備好、推包位置、皮帶脈沖到狀態(tài)信號的檢測口。各種檢測回路中接有發(fā)交二極管,指示狀態(tài)檢測情況。
2.3 顯示與閾值設(shè)定電路
顯示電路在喂料時用于顯示物料質(zhì)量,在閥值設(shè)定時用于顯示設(shè)定值。閾值設(shè)定由按鍵設(shè)定來實現(xiàn),電路如圖4所示。
物料質(zhì)量是不斷變化的,要求可以時刻觀測質(zhì)量的值,且精度可達(dá)到0.05kg。采用4個數(shù)碼管顯示,單片機(jī)的D口輸出8位二進(jìn)制顯示值經(jīng)電阻送到數(shù)碼管數(shù)據(jù)線。另外RB口的RB1、RB2、RB3、RB4經(jīng)反相驅(qū)動器ULN2003分別驅(qū)動4個數(shù)碼管,作為片選信號。顯示時考慮到視覺暫存現(xiàn)象,每次顯示通過軟件延時200ms,使顯示得以正常工作。
按鍵設(shè)定電路中,按鍵S3按下時,粗流設(shè)定開始,再按下時,細(xì)流設(shè)定開始,再按下就設(shè)定退出;按鍵S2、S1進(jìn)行設(shè)定值加減,并且每次按鍵按下都有對應(yīng)的設(shè)定值通過數(shù)碼管顯示。如此工作完成對粗細(xì)流閾值的設(shè)定工作。
2.4 控制電路
本系統(tǒng)完成的控制有壓袋、推包、喂料、粗流下料等,分別由單片機(jī)雙向I/O端口的RC0、RC1、RC2和RC3輸出控制。單片機(jī)輸出的控制信號經(jīng)過三極管放大、光耦隔離、又一級三極管放大,分別驅(qū)動控制繼電器K1、K2、K3和K4,使其按照控制的要求通電或斷電,繼而產(chǎn)生壓袋、粗流下料、喂料、推包等相應(yīng)的控制動作;同時,在繼電器開關(guān)回路中,接有發(fā)光二極管,用以顯示控制狀態(tài)。此控制電路中的光耦隔離,增加了系統(tǒng)的抗干擾性,也起到了保護(hù)作用。單片機(jī)的控制電路如圖5所示。
2.5 串行通信電路
本系統(tǒng)還要完成與上位機(jī)串行通信的功能。上位機(jī)為工控機(jī),用來監(jiān)測各種狀態(tài)。設(shè)置單片機(jī)的串行通信接口SC1為可以與工控機(jī)進(jìn)行通信的全雙工異步系統(tǒng)。 SCI是一種利用RC6、RC7兩個引腳作為通信線的二進(jìn)制串行通信接口。把RC6和RC7分別設(shè)置成串行通信接口的發(fā)送/時鐘(TX/CK)線和接收/ 數(shù)據(jù)(RX/DT)線,并把單片機(jī)的串行通信接口設(shè)置為從動方式,由上位控制發(fā)送、接收。單片機(jī)通過響應(yīng)中斷來實現(xiàn)與上位機(jī)的通信,其串行通信電路如圖6 所示。
串行通信接口(SCI)異步工作方式由以下重要部件組成:波特率發(fā)生器(BRG)、采樣電路、異步接收器、異步發(fā)送器。8位的BRG用來驅(qū)動來自振蕩器的時鐘產(chǎn)生標(biāo)準(zhǔn)的波特率頻率。接收線RX(RC7)上的數(shù)據(jù)通過1個三中取二檢測電路對其采樣3次,以決定RX(RC7)引腳上的電平是高電平還是低電平。 SCI的發(fā)送器和接收器在功能上是獨立的,但它們所用的數(shù)據(jù)格式和波特率是相同的。串行通信接口采用標(biāo)準(zhǔn)的不歸零(NRZ)格式,即1位起始位、8位數(shù)據(jù)位和1位停止位。SCI接收和發(fā)送順序是從最低位(LSB)開始的。
3 軟件設(shè)計
在軟件設(shè)計中,既綜合了系統(tǒng)的功能、性能要求及硬件電路,又考慮了軟件的易維護(hù)性。采用模塊化結(jié)構(gòu),并盡量做到模塊的獨立性,減少模塊之間的交疊。整個軟件設(shè)計由主程序、各個功能子程序、中斷服務(wù)程序組成。下面介紹主程序的設(shè)計及中斷服務(wù)程序的設(shè)計。
3.1 主程序設(shè)計
根據(jù)系統(tǒng)的工作原理,主程序由初始化、數(shù)據(jù)采集和處理、調(diào)零、調(diào)滿、讀設(shè)定值、顯示及檢測各種狀態(tài)位和控制各種狀態(tài)等幾部分組成。程序執(zhí)行行中不循環(huán)檢測各種狀態(tài)位,并執(zhí)行各種相關(guān)的子程序,完成控制任務(wù)。主程序流程如圖7所示。
3.2 中斷服務(wù)程序設(shè)計
在此系統(tǒng)程序設(shè)計中,中斷程序的設(shè)計是個難點。其中按鍵設(shè)定閾值產(chǎn)生外部中斷,另外與上位機(jī)的通信也采用中方式實現(xiàn),還有同部的定時中斷??紤]到多種中斷,存在中斷優(yōu)先級的問題,選用的PIC16F877單片機(jī)的中斷功能有其獨立特性,即它只有一個中斷入口地址0004h。每種中斷都要由此進(jìn)入中斷程序,因此中斷程序開始現(xiàn)場保存垢,要進(jìn)行各種中斷村污位的順序檢測和判斷。當(dāng)判斷到中斷標(biāo)志位時,轉(zhuǎn)到相應(yīng)的中斷服務(wù)子程序中。根據(jù)檢測標(biāo)志位的順序,可以人為地定義中斷優(yōu)先級。先判斷的優(yōu)先級就高。本系統(tǒng)根據(jù)實際情況,定義串行通信中斷優(yōu)先級最高,其次為定時中斷,然后是按鍵設(shè)定外部中斷,如圖8所示。
另外,中斷存在嵌套問題。由于中斷入口地址只有一個,因此,當(dāng)出現(xiàn)中斷嵌套時,各級中斷返回的地址正確與否是很關(guān)鍵的。由調(diào)試過程,總結(jié)出要處理好每次中斷的現(xiàn)場保護(hù)和恢復(fù)現(xiàn)場是很重要的,并要注意其中的換頁位置。
該系統(tǒng)結(jié)構(gòu)簡單,運行穩(wěn)定可靠,控制精度高,具有完善的保護(hù)功能;可繼承性好,并為以后的技術(shù)改進(jìn)留有一定的資源;成本低廉,經(jīng)用戶試和反應(yīng)良好。
評論