王景輝
(中興利聯(lián)國(guó)際貿(mào)易(上海)有限公司,上海 201611)
單片機(jī)ATMEGA16應(yīng)用案例
王景輝
(中興利聯(lián)國(guó)際貿(mào)易(上海)有限公司,上海 201611)
本文介紹AVR單片機(jī)ATmega16設(shè)備改造中的一個(gè)應(yīng)用案例。根據(jù)客戶要求,描述設(shè)計(jì)過(guò)程和原理,涉及到外部中斷INT0、INT1、INT2以及中斷定時(shí)器time0的應(yīng)用。利用外部中斷引腳監(jiān)測(cè)打印信號(hào)、編碼器信號(hào)以及剔除工位的瓶觸發(fā)信號(hào)等,應(yīng)用移位指令對(duì)運(yùn)動(dòng)中的產(chǎn)品進(jìn)行跟蹤控制。軟件采用ICCV7 for AVR,對(duì)程序中主要控制語(yǔ)句進(jìn)行說(shuō)明。
ATmega16 外部中斷 定時(shí)中斷 移位指令
CVC302貼標(biāo)機(jī)上,原有的剔除方式是把剔除裝置與前端貼標(biāo)裝置進(jìn)行分別計(jì)數(shù)。機(jī)器運(yùn)行之前,先要把輸送帶上的產(chǎn)品清空,然后在操作界面上執(zhí)行產(chǎn)品平衡計(jì)數(shù)清零,使得兩個(gè)計(jì)數(shù)器都從零開(kāi)始計(jì)數(shù)。貼標(biāo)裝置部分有一個(gè)計(jì)數(shù)器,剔除部分有一個(gè)計(jì)數(shù)器。每當(dāng)有一個(gè)產(chǎn)品過(guò)來(lái)時(shí),在貼標(biāo)裝置計(jì)數(shù)器加1計(jì)數(shù)。如果這個(gè)被貼標(biāo)產(chǎn)品需剔除,程序會(huì)把這個(gè)數(shù)值標(biāo)記為剔除。經(jīng)過(guò)剔除位置的產(chǎn)品也會(huì)被剔除計(jì)數(shù)器進(jìn)行加1計(jì)數(shù)。當(dāng)其數(shù)值與之前標(biāo)記的數(shù)相等時(shí),對(duì)此產(chǎn)品執(zhí)行剔除。不過(guò),當(dāng)其中一個(gè)計(jì)數(shù)器產(chǎn)生計(jì)數(shù)錯(cuò)誤時(shí),會(huì)出現(xiàn)剔除錯(cuò)位,且不易被操作人員發(fā)覺(jué)。比如,中間被人為拿走一個(gè)產(chǎn)品、計(jì)數(shù)傳感器信號(hào)不穩(wěn)定等,都可能導(dǎo)致計(jì)數(shù)出現(xiàn)問(wèn)題。一旦錯(cuò)位,如果不處理,它會(huì)一直錯(cuò)位下去,直到停機(jī)清空產(chǎn)品,重新平衡計(jì)數(shù)再啟動(dòng)機(jī)器,才能恢復(fù)正常,這對(duì)生產(chǎn)廠商來(lái)說(shuō)不可接受。印有問(wèn)題的產(chǎn)品進(jìn)入下游生產(chǎn)線,是嚴(yán)重的質(zhì)量問(wèn)題。因此,改造該設(shè)備,刻不容緩。
1.1 項(xiàng)目要求
項(xiàng)目名稱是《CVC302貼標(biāo)機(jī)CCD像機(jī)印字檢測(cè)不合格及漏貼標(biāo)產(chǎn)品剔除》??蛻粢螅簩?duì)標(biāo)簽上的印字進(jìn)行照像檢測(cè);對(duì)于缺字、印字偏斜過(guò)大、偏移過(guò)大進(jìn)行檢測(cè);檢測(cè)不合格,要可靠剔除。另外,對(duì)瓶表面進(jìn)行標(biāo)簽檢測(cè),沒(méi)有帖上標(biāo)簽的產(chǎn)品剔除。
1.2 貼標(biāo)機(jī)相關(guān)部分介紹
直線式圓瓶貼標(biāo)機(jī)CVC302,對(duì)不合格品的剔除不如星輪轉(zhuǎn)接方式的貼標(biāo)機(jī)實(shí)現(xiàn)剔除那么可靠。因?yàn)樾禽嗈D(zhuǎn)接的貼標(biāo)機(jī)把產(chǎn)品限位在星輪齒槽里,通過(guò)專門(mén)的計(jì)數(shù)方式容易跟蹤。而直線式貼標(biāo)機(jī)對(duì)一個(gè)產(chǎn)品進(jìn)行貼標(biāo)時(shí),出完標(biāo)簽,瓶子在輸送帶上運(yùn)送時(shí),產(chǎn)品沒(méi)有被限位,在滾貼過(guò)程中或輸送過(guò)程中都存在一定的偏移或滑動(dòng),難以進(jìn)行準(zhǔn)確定位。
2.1 相機(jī)安裝與控制(電路圖參見(jiàn)圖1-1)
圖1為其電路圖。做可調(diào)三維固定架,把像機(jī)固定于打印機(jī)左測(cè),用像機(jī)對(duì)印字進(jìn)行檢測(cè)。對(duì)于文字偏移過(guò)大、文字重疊、缺字、斷字等情況進(jìn)行檢測(cè)。像機(jī)照在距出標(biāo)剝離板的第五張標(biāo)簽上,像機(jī)觸發(fā)由CVC302貼標(biāo)機(jī)PLC的打印輸出點(diǎn)上升沿信號(hào)給出(如電路圖到J14插座),經(jīng)過(guò)控制電路的光耦,把信號(hào)傳到單片機(jī)的PD2引腳。通過(guò)中斷引腳由單片機(jī)中斷程序進(jìn)行處理后,由PC0引腳把觸發(fā)信號(hào)經(jīng)光耦傳到J13-3即CCD-TRIG端發(fā)給像機(jī)。像機(jī)拍照后,把不合格信號(hào)發(fā)到J13-4即CCD1(合格品信號(hào)為0,不合品信號(hào)為24V),進(jìn)入單片機(jī)的PD6引腳,讓單片機(jī)程序處理信號(hào)。
圖1 電路圖
2.2 控制邏輯
通過(guò)軟件形成兩個(gè)軟件隊(duì)列:一個(gè)是標(biāo)簽隊(duì)列,另一個(gè)是輸送隊(duì)列。標(biāo)簽隊(duì)列:貼標(biāo)機(jī)每送出一張標(biāo)簽打印一次,標(biāo)簽隊(duì)列每送出一張標(biāo)簽(電路中取的打印信號(hào))移動(dòng)一位,同時(shí)像機(jī)拍照一次,并存儲(chǔ)像機(jī)拍照結(jié)果(結(jié)果為1是不合格品,為0是合格品)。這個(gè)結(jié)果在移送到出標(biāo)工位時(shí),會(huì)傳送到輸送隊(duì)列。輸送隊(duì)列:輸送帶主軸上有一個(gè)1000P/R編碼器,編碼器每過(guò)67個(gè)脈沖產(chǎn)生一次移位。通過(guò)編碼進(jìn)行位置控制,當(dāng)不合格品移送到達(dá)剔除位時(shí),會(huì)由電磁閥產(chǎn)生準(zhǔn)確的剔除動(dòng)作。
2.3 硬件選型
(1)像機(jī)選用邦納BANNAR A4 130萬(wàn)像素相機(jī),光源選紅光,鏡頭焦距16mm,做可調(diào)固定支架,國(guó)產(chǎn)工業(yè)平板電腦。
(2)標(biāo)簽有熒光,漏標(biāo)檢測(cè)傳感器選兩只SICK SU620熒光檢測(cè)傳感器,測(cè)瓶傳感器選SENSERDATA的FB20小光點(diǎn)激光,根據(jù)剔除位置做傳感器固定支架,剔除出料口。
(3)剔除吹氣嘴定做,做固定支架。
(4)控制電路采用AVR單片機(jī)控制,型號(hào)ATMEGA16,繪制線路圖,生成PCB板,接口部分的部分電路如圖1所示。
(5)電磁閥:二位五通電磁閥SMC SY5120-5g-01。(6)電磁閥采且NPN三極管C1815驅(qū)動(dòng),輸出端并接二極管保護(hù)。
(7)CCD像機(jī)接口J13:本例只用了DC24V電源信號(hào),觸發(fā)信號(hào)CCD-TRIG及結(jié)果輸出信號(hào)CCD1。像機(jī)的觸發(fā)信號(hào)由單片機(jī)經(jīng)光耦與PNP晶體管結(jié)合產(chǎn)生PNP信號(hào)觸發(fā)像機(jī)拍照。
3.1 中斷程序INT0(參見(jiàn)圖2-2移位說(shuō)明)
中斷程序INT0,見(jiàn)圖2移位說(shuō)明。
圖2 中斷程序INT0的移位說(shuō)明
標(biāo)簽隊(duì)列:用一個(gè)無(wú)符號(hào)型字符變量,程序里定義為label_queue,有八個(gè)位,對(duì)應(yīng)實(shí)物貼標(biāo)頭上剝離板前的六張標(biāo)簽。當(dāng)CCD檢測(cè)位有不合格品時(shí),就把第七位置1,每貼一張標(biāo)簽(電路里取的是打印信號(hào))變量中的8位會(huì)右移一次。第4位對(duì)應(yīng)馬上要往瓶上貼的那張標(biāo)簽。從檢測(cè)到不合格標(biāo)簽開(kāi)始,要移5個(gè)位才貼到瓶子上。
對(duì)應(yīng)程序段說(shuō)明:
打印信號(hào)觸發(fā)進(jìn)入中斷INT0
3.3 外部中斷程序INT2
輸送帶隊(duì)列:用一個(gè)無(wú)符號(hào)長(zhǎng)整型變量,程序中定義為convey_queue,共有32個(gè)位。對(duì)實(shí)物輸送帶的32塊鏈板,它會(huì)跟隨輸送帶軸編碼器脈沖移動(dòng)。67個(gè)脈沖會(huì)移動(dòng)一次,可以設(shè)想它是間歇式移動(dòng),實(shí)物每移過(guò)一個(gè)鏈板,變量右移一次。
當(dāng)貼標(biāo)隊(duì)列的出標(biāo)位label_queue第四位為1時(shí),向瓶上貼標(biāo)簽時(shí)會(huì)把數(shù)值0x3E存入到輸送帶隊(duì)列的第三字節(jié)。如圖2的當(dāng)前狀態(tài),它同時(shí)置位了5個(gè)工位,給了被剔除產(chǎn)品足夠的冗余量,即在這五塊鏈板上的瓶子都會(huì)被剔除,這樣能可靠地把不合格的一瓶剔除出來(lái)。當(dāng)生產(chǎn)速度很快時(shí),瓶間距很密集的情況下可能會(huì)有兩到三瓶被剔除。這一點(diǎn)客戶也認(rèn)可,因?yàn)檫@個(gè)剔除量概率比較小,剔除品會(huì)由人工進(jìn)行再檢查。
程序說(shuō)明:
編碼器:
3.4 外部中斷程序INT1
圖3為外部中斷程序INT1示意圖。
剔除工位:在變量第byte0的第三個(gè)位為1時(shí),對(duì)于這個(gè)鏈板上的西林瓶施行剔除。當(dāng)漏標(biāo)檢測(cè)傳感器檢測(cè)瓶到位,測(cè)到瓶到時(shí)進(jìn)入中斷程序,通過(guò)剔除電磁閥對(duì)吹氣嘴產(chǎn)生動(dòng)作。只要這個(gè)工位為1,只要過(guò)來(lái)一個(gè)瓶子就會(huì)檢測(cè)瓶子執(zhí)行剔除,這是CCD檢測(cè)不合格產(chǎn)生的剔除。另外,它還通過(guò)兩個(gè)熒光傳感器對(duì)瓶身進(jìn)行照射檢測(cè)。瓶到位時(shí),采樣兩個(gè)熒光傳感器的狀態(tài),當(dāng)兩個(gè)熒光傳感器此刻都沒(méi)檢測(cè)到熒光,說(shuō)明標(biāo)簽沒(méi)有貼在瓶上,剔除電磁閥執(zhí)行剔除動(dòng)作,把瓶子吹掉。
圖3 外部中斷程序INT1示意圖
當(dāng)瓶到達(dá)瓶觸發(fā)傳感器時(shí),觸發(fā)INT1中斷:
3.5 關(guān)于程序的其他部分
關(guān)于程序的其他部分:初始化及變量定義,中斷初使化等。
本文主要介紹項(xiàng)目過(guò)程的控制原理及程序分析,本例已在客戶現(xiàn)場(chǎng)使用兩年,反饋一切正常,客戶很滿意。從應(yīng)用角度來(lái)說(shuō),不論是采用單片機(jī)還是采用PLC,在機(jī)電設(shè)備控制中用移位方式處理一些實(shí)際問(wèn)題都比較方便,尤其與編碼器結(jié)合后,能夠?qū)崿F(xiàn)較為復(fù)雜的應(yīng)用。采用單片機(jī)處理問(wèn)題,便于定制,PCB板體積小,接線集成方便,速度快功能專一,安裝靈活,非常適合一些對(duì)于空間有限的場(chǎng)合。
MCU ATMEGA16 Application Case
WANG Jinghui
(Zhongxing Lilian International Trading (Shanghai) Co., Ltd., Shanghai 201611)
This paper introduces the ATmega16 microcontroller AVR used in a modification of a CVC302 labeller, According to customer requirements, describes the design process and principles; related to the external interrupt INT1, INT2, INT0, and the application of interrupt timer time0. Using external interrupt pin to monitor the print signal, encoder signal and bottle trigger signal in rejection station, the application of the shift instruction on the motion of the product tracking control. Software using for AVR ICCV7, the statement of the main program instructions.
ATmega16, external interrupt, timing interrupt, shift instruction