田淑眾
(山東農(nóng)業(yè)工程學(xué)院,山東 濟(jì)南 250100)
過(guò)去酒類自動(dòng)化生產(chǎn)線僅能完成產(chǎn)品的包裝、入庫(kù)等功能,隨著信息化技術(shù)的發(fā)展,酒類自動(dòng)化生產(chǎn)線采用先進(jìn)的信息技術(shù),自動(dòng)粘貼防偽、條形碼、二維碼等多個(gè)標(biāo)識(shí),以便于實(shí)現(xiàn)產(chǎn)品的防偽查詢、物流查詢,產(chǎn)品入庫(kù)、出庫(kù)、銷售、防竄貨等信息化管理。
在生產(chǎn)線上安裝工控計(jì)算機(jī)、光電開(kāi)關(guān)(俗稱電眼)、條碼采集器、剔除器、聲光報(bào)警器、頂顯等設(shè)備,以啟動(dòng)信息的采集,實(shí)現(xiàn)對(duì)標(biāo)識(shí)粘貼不合格產(chǎn)品的剔除和對(duì)合格產(chǎn)品的計(jì)數(shù)、報(bào)數(shù)功能,對(duì)現(xiàn)場(chǎng)發(fā)生的異常情況通過(guò)聲光報(bào)警提示。
對(duì)電眼、剔除器、聲光報(bào)警器的控制可以采用PLC技術(shù)實(shí)現(xiàn),但成本高,有點(diǎn)“大材小用”的感覺(jué);所以考慮利用單片機(jī)開(kāi)發(fā)數(shù)據(jù)采集控制器實(shí)現(xiàn)對(duì)上述設(shè)備的控制,以降低成本。
數(shù)據(jù)采集控制器采集電眼(輸入元件)信號(hào),當(dāng)檢測(cè)到信號(hào)由0到1或由1到0的跳變時(shí),通過(guò)RS232串口向工控計(jì)算機(jī)(上位機(jī))發(fā)送一組數(shù)據(jù),上位機(jī)收到數(shù)據(jù)后,根據(jù)控制策略向接口卡發(fā)送一組控制數(shù)據(jù),控制剔除器或聲光報(bào)警器(輸出元件)動(dòng)作。數(shù)據(jù)采集控制器可以接8路輸入元件、8路輸出元件。
根據(jù)數(shù)據(jù)采集控制器功能描述,將數(shù)據(jù)采集控制器分為單片機(jī)、輸入驅(qū)動(dòng)電路、輸出驅(qū)動(dòng)電路、與上位機(jī)通信電路四部分。
1、單片機(jī)電路設(shè)計(jì)教學(xué)。我院學(xué)生在校期間學(xué)習(xí)的是MCS51系列單片機(jī),實(shí)驗(yàn)室備有STC11(DIP40)單片機(jī)仿真器,為了便于程序調(diào)試,所以單片機(jī)選擇宏晶科技STC11F32XE型號(hào),封裝類型為DIP40,工作電壓為5V。考慮到與上位機(jī)通過(guò)串口通信,系統(tǒng)時(shí)鐘頻率選擇11.0592MHz。利用P1口與輸入電路連接,P2口與輸出電路連接。用Protel DXP2004畫(huà)出電路原理圖(SCH)如圖3所示。
圖1 單片機(jī)電路原理圖
2、輸入電路部分設(shè)計(jì)教學(xué)。(1)光電開(kāi)關(guān)介紹。選用歐姆龍光電開(kāi)關(guān)(E3F3-D12),工作電壓12V~24V,光電開(kāi)關(guān)被物體遮擋時(shí),OUT端輸出低電平,未被遮擋時(shí)輸出高電平,其接線圖如圖4所示。
圖2 電眼接線圖
(2)光電耦合器介紹。電眼的工作電壓選定DC24V,而單片機(jī)工作電壓的DC5V,通過(guò)光電耦合器可以實(shí)現(xiàn)電平轉(zhuǎn)換,選擇光電耦合器的另外一個(gè)原因就是可以避免電眼對(duì)單片機(jī)的干擾,提高接口卡的抗干擾能力。
(3)輸入電路功能分析。使用單片機(jī)P1口作輸入口,與光耦的集電極連接,如圖5所示。單片機(jī)P1.0~P1.7作為輸入口使用,電眼未被遮擋時(shí),INx=1,P1.x=0,電眼被遮擋時(shí),INx=0,P1.x=1,INx 與電眼的輸出信號(hào)(OUT)連接。因此通過(guò)讀取P1.x引腳的值就可以確定電眼是否被物體遮擋,如果P1.x出現(xiàn)由0至1的跳變,表示有物體過(guò)來(lái),反之P1.x出現(xiàn)由1至0的跳變,表示有物體離開(kāi)。
3、輸出電路部分設(shè)計(jì)教學(xué)。考慮到驅(qū)動(dòng)輸出元件的靈活性,所以輸出電路主要用來(lái)驅(qū)動(dòng)外接的繼電器,通過(guò)繼電器再連接輸出元件,如圖6所示,外接繼電器與保護(hù)二極管D11并聯(lián),繼電器選用施耐德RXM2LB2BD(24VDC、5A/250VAC)繼電器。
使用單片機(jī)P2口作輸出口,與外接的繼電器之間選用光電耦合器實(shí)現(xiàn)隔離,避免對(duì)單片機(jī)產(chǎn)生干擾??紤]到P2口的弱推挽驅(qū)動(dòng)能力不足,所以選用強(qiáng)推挽驅(qū)動(dòng)輸出。有一點(diǎn)同學(xué)們需要注意,那就是P2口作輸出口時(shí)必須外接上拉電阻(R31),上拉電阻的阻值不能太大,否則影響對(duì)繼電器的驅(qū)動(dòng)。
當(dāng)P2.x=1時(shí),OUT0=0,繼電器常開(kāi)觸點(diǎn)吸合,常閉觸點(diǎn)斷開(kāi);當(dāng)P2.x=0時(shí),OUT0=1,繼電器常開(kāi)觸點(diǎn)斷開(kāi),常閉觸點(diǎn)吸合。因此輸出元件應(yīng)與繼電器的常閉觸點(diǎn)連接。
4、與上位機(jī)通信電路部分設(shè)計(jì)教學(xué)。單片機(jī)與上位機(jī)通信采用RS232異步串行通信方式,上位機(jī)串口輸出的是RS232電平(達(dá)±15V),而單片機(jī)串口輸出的是TTL電平(+5V),二者不能直接連接,必須進(jìn)行電平轉(zhuǎn)換。
MAX232集成電路能夠?qū)崿F(xiàn)TTL電平與RS232電平的互相轉(zhuǎn)換,MAX232是一種雙組驅(qū)動(dòng)器/接收器,片內(nèi)含有一個(gè)電容性電壓發(fā)生器以便在單5V電源供電時(shí)提供RS232電平。用Protel DXP2004畫(huà)出與上位機(jī)通信電路原理圖(SCH)如圖7所示。
圖3 與上位機(jī)通信電路原理圖
5、印刷線路板(PCB)制作。首先使用Protel DXP2004軟件畫(huà)好原理圖,學(xué)會(huì)自建元件SCH、PCB庫(kù)文件,正確定義每個(gè)元件的屬性,利用PCB規(guī)則和約束編輯器設(shè)置電源線跟地線的線寬為20mil,然后自動(dòng)布線,檢查無(wú)誤后對(duì)線路板底層覆銅。
1、焊接說(shuō)明
(1)U1、U2 分別焊接 DIP40、DIP16 插座,不建議直接焊接芯片;
(2)輸入電路、輸出電路暫時(shí)焊接一路,調(diào)試正常后增加到8路,實(shí)際應(yīng)用時(shí)根據(jù)輸入元件、輸出元件的數(shù)量焊接相應(yīng)的路數(shù)。
2、安裝說(shuō)明
(1)J1 的 TX、RX、GND 與上位機(jī)串口的 2(RxD)、3(TxD)、5(GND)連接;
(2)J2、J3 分別連接開(kāi)關(guān)電源的 DC5V、DC24V,開(kāi)關(guān)電源的最大輸出電流建議選3A;
(3)JD1~JD8接光電開(kāi)關(guān),JT1~JT8接繼電器;
數(shù)據(jù)采集控制器單片機(jī)程序使用匯編語(yǔ)言編寫(xiě),由主程序和中斷處理程序構(gòu)成。
1、主程序功能
(1)初始化
①定時(shí)器1、串口的初始化
設(shè)定串行口為方式一,允許接收,從而確定SMOD的值為50H,串口通信波特率設(shè)定9600bps,從而確定TMOD=20H,計(jì)數(shù)初值TH1=TL1=0FDH。
②中斷系統(tǒng)初始化
因?yàn)橹挥写谝粋€(gè)中斷源,所以只需設(shè)置ES=EA=1。
③設(shè)置接收數(shù)據(jù)緩沖區(qū)和發(fā)送數(shù)據(jù)緩沖區(qū)
在IDATA區(qū)定義發(fā)送數(shù)據(jù)緩沖區(qū)(起始地址80H)和接收數(shù)據(jù)緩沖區(qū)(起始地址A0H),長(zhǎng)度均為16字節(jié),第1工作組的R0,R1指向發(fā)送緩沖區(qū)起始單元,第2工作組的R0,R1指向接收緩沖區(qū)起始單元,便于對(duì)兩個(gè)緩沖區(qū)同時(shí)訪問(wèn)。
同學(xué)們一定要熟練掌握工作寄存器組的切換方法。
④定義P2口為強(qiáng)推挽輸出
由特殊功能寄存器P2M1=0、P2M0=0FFH決定P2口均為強(qiáng)推挽輸出。
(2)電眼信號(hào)實(shí)時(shí)檢測(cè)程序
實(shí)時(shí)檢測(cè)P1.x的變化以判斷電眼的狀態(tài)。通過(guò)P1.0~P1.7可以獲取與之連接的8路電眼的序號(hào)(0~7),用01H表示由0至1的跳變,10H表示由1至0的跳變,將狀態(tài)發(fā)生改變的電眼信息寫(xiě)入數(shù)據(jù)發(fā)送緩沖區(qū)。每次檢測(cè)有電眼狀態(tài)發(fā)生改變時(shí)對(duì)應(yīng)向緩沖區(qū)寫(xiě)入數(shù)據(jù)包,并啟動(dòng)串行口向上位機(jī)發(fā)送數(shù)據(jù)。
數(shù)據(jù)包用5EH、7EH表示起始和停 止,例如某個(gè)時(shí)刻第0路,第6路電眼狀態(tài)發(fā)生改變,那么寫(xiě)入緩沖區(qū)中的數(shù)據(jù)為
00H,01H表示0號(hào)電眼信號(hào)發(fā)生了由0至1的跳變,06H,10H表示6號(hào)電眼信號(hào)發(fā)生了由1至0的跳變。需要同學(xué)們特別注意的是讀P1口數(shù)據(jù)之前,必須先向P1口寫(xiě)FFH。
(3)剔除器或報(bào)警器控制程序
實(shí)時(shí)監(jiān)測(cè)接收緩沖區(qū)是否有數(shù)據(jù),如果接收到上位機(jī)發(fā)送的數(shù)據(jù),則按數(shù)據(jù)約定將P2.x置1或清0,控制繼電器動(dòng)作,從而控制剔除器或聲光報(bào)警器動(dòng)作。
接收數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)格式為
00H,01H表示控制序號(hào)為0的繼電器動(dòng)作,P2.0由0變1,與之連接的繼電器常開(kāi)觸點(diǎn)由閉合到斷開(kāi);
06H,10H表示控制序號(hào)為6的繼電器動(dòng)作,P2.6由1變0,與之連接的繼電器常開(kāi)觸點(diǎn)由斷開(kāi)到閉合。
2、中斷處理程序功能
單片機(jī)串行口發(fā)送完或接收完數(shù)據(jù)后,由硬件將TI或RI置1,從而引起CPU中斷,進(jìn)入中斷處理后首先判斷TI=1還是RI=1,從而運(yùn)行相應(yīng)的發(fā)送或接收處理程序,同學(xué)們一定要注意TI或RI必須用CLR指令軟件清0。
(1)數(shù)據(jù)發(fā)送
將發(fā)送數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)通過(guò)寫(xiě)入串口的SBUF寄存器向上位機(jī)發(fā)送,發(fā)送完7EH后,將發(fā)送標(biāo)志置1。
(2)數(shù)據(jù)接收
接收上位機(jī)發(fā)送的數(shù)據(jù),將SBUF寄存器的數(shù)據(jù)寫(xiě)入接收數(shù)據(jù)緩沖區(qū),待接收到7EH后將接收標(biāo)志置1。
1、搭建仿真調(diào)試環(huán)境。使用Keil uVision2單片機(jī)仿真軟件,添加STC單片機(jī),選擇MCU型號(hào)為IAP12C5A60S2,output項(xiàng)選中 Create HEX File,debug 項(xiàng),選擇仿真器JY for STC 1TDriver。
2、調(diào)試方法。剛開(kāi)始可以跟蹤運(yùn)行調(diào)試,基本正常后,可以全速運(yùn)行調(diào)試。計(jì)算機(jī)安裝串口調(diào)試助手,運(yùn)行后可以顯示數(shù)據(jù)采集控制器接收到的電眼信號(hào),也可以向數(shù)據(jù)采集控制器發(fā)送控制數(shù)據(jù),觀察繼電器的動(dòng)作。
2、程序下載
程序調(diào)試完成后,將計(jì)算機(jī)串口與接口卡上的串口(J1)連接,運(yùn)行STC-ISP編程工具,完成程序下載。
通過(guò)講解生產(chǎn)線數(shù)據(jù)采集控制器的設(shè)計(jì)制作,讓同學(xué)們熟練掌握電子產(chǎn)品的開(kāi)發(fā)過(guò)程,學(xué)會(huì)使用常用的開(kāi)發(fā)工具,為將來(lái)從事相關(guān)行業(yè)打下堅(jiān)實(shí)的開(kāi)發(fā)基礎(chǔ)。