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