花勇





摘 要:自動(dòng)供料單元是自動(dòng)生產(chǎn)線的初始單元。其包含傳感器信號(hào)檢測(cè)系統(tǒng)、機(jī)械本體、PLC單元、輸入、輸出端子以及執(zhí)行機(jī)構(gòu)等零件。但是,基于PLC控制設(shè)備的開(kāi)發(fā)成本較高、中小型企業(yè)較難普及。本文采用Arduino開(kāi)發(fā)板作為控制單元,采用啟保停電路編程思路將SFC指令改編成適合Arduino運(yùn)行的程序,有效降低了設(shè)備的開(kāi)發(fā)成本,是用Arduino替代PLC實(shí)現(xiàn)自動(dòng)化控制的一次有效嘗試,具有一定的參考價(jià)值。
關(guān)鍵詞:PLC;自動(dòng)供料單元;Arduino;自動(dòng)化控制
中圖分類號(hào):TP273 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1003-5168(2019)14-0012-04
An Improved Design and Implementation of Automatic
feed Unit Control System Based on Arduino
HUA Yong
(Jiangsu Food & Pharmaceutical Science College,Huaian Jiangsu 223003)
Abstract: Automatic feeding unit is the initial unit of automatic production line. It includes sensor signal detection system, mechanical body, PLC unit, input and output terminals, and actuator parts. However, the development cost of PLC-based control equipment is high, and it is difficult for small and medium-sized enterprises to popularize. In this paper, Arduino development board was used as control unit, SFC instructions were adapted to Arduino operation program by using start-stop circuit programming idea, which effectively reduced the development cost of equipment. It is an effective attempt to realize automatic control by replacing PLC with Arduino, which has a certain reference value.
Keywords: PLC;automatic feeding unit;Arduino;the automatic control
目前,自動(dòng)化控制技術(shù)被廣泛用于農(nóng)業(yè)、化工、交通運(yùn)輸?shù)阮I(lǐng)域。自動(dòng)生產(chǎn)線指由下料、加工、裝配、搬運(yùn)、存儲(chǔ)等單元組成,并按照產(chǎn)品生產(chǎn)工藝要求的順序,自動(dòng)完成全部或部分制造過(guò)程的生產(chǎn)系統(tǒng)。通常,自動(dòng)生產(chǎn)線的各個(gè)單元由PLC根據(jù)工藝流程編寫的合理程序自動(dòng)完成加工工序。本文的研究對(duì)象是自動(dòng)生產(chǎn)線的初始單元,即供料單元。其包含傳感器信號(hào)檢測(cè)系統(tǒng)、機(jī)械本體、PLC單元、輸入和輸出端子以及執(zhí)行機(jī)構(gòu)等零件。PLC控制雖然具有控制靈活、編程簡(jiǎn)單、可靠性高等優(yōu)點(diǎn),但開(kāi)發(fā)基于PLC的自動(dòng)生產(chǎn)線需要相當(dāng)?shù)难邪l(fā)力量和行業(yè)經(jīng)驗(yàn),這對(duì)小批量生產(chǎn)的產(chǎn)品來(lái)說(shuō),造價(jià)和開(kāi)發(fā)成本太高,不利于產(chǎn)品的推廣和驗(yàn)證。本文著重闡述利用傳感器、電磁換向閥、Arduino元器件來(lái)設(shè)計(jì)自動(dòng)生產(chǎn)線控制系統(tǒng)的控制電路,利用IDE軟件來(lái)設(shè)計(jì)供料單元的控制程序,最終實(shí)現(xiàn)對(duì)供料單元的控制。
1 控制系統(tǒng)總體方案
1.1 控制系統(tǒng)組成
自動(dòng)供料單元由鋁合金型材、氣路控制元件、傳感器、按鈕和Arduino Pro mini工控板等組件構(gòu)成。氣路控制元件主要由氣動(dòng)三聯(lián)件、單向兩位五通電磁閥組、兩支雙作用直線氣缸提供動(dòng)力控制。電氣控制主要由光電傳感器、磁性開(kāi)關(guān)、金屬傳感器、Arduino Pro mini工控板等替代PLC實(shí)現(xiàn)對(duì)供料單元的自動(dòng)控制。本文研究的重點(diǎn)是如何對(duì)Arduino Pro mini工控板編程,使其替代PLC,實(shí)現(xiàn)對(duì)供料單元的自動(dòng)控制。
1.2 工作流程
第一步:初始步(M0),出料臺(tái)沒(méi)有工件,頂料氣缸和推料氣缸都縮回;第二步(M1),頂料氣缸桿伸出,頂緊上一層的工件并保持該狀態(tài);第三步(M2),頂料氣缸桿伸出,將底層工件推到物料臺(tái)上;第四步(M3),完成推料后,推料氣缸桿先縮回;第五步(M4),頂料氣缸桿縮回,上層工件落入底層,料倉(cāng)向下移動(dòng)一個(gè)工件,為下一次推出工件做好準(zhǔn)備。自動(dòng)供料單元控制流程圖如圖1所示。
1.3 供料單元控制電路的設(shè)計(jì)方案
1.3.1 Arduino Pro mini開(kāi)發(fā)板結(jié)構(gòu)。自動(dòng)供料控制單元主要包括基于Arduino Pro mini的單片機(jī),其外接端子編程時(shí)可以定義成輸入或輸出。端子包括數(shù)字量和模擬量,并且每個(gè)外接端子都與MCU各端口互相隔離,支持在線編程。Arduino Pro mini開(kāi)發(fā)板由帶有螺釘端子的主電路PCB底板、Arduino單片機(jī)和標(biāo)準(zhǔn)的輸入/輸出擴(kuò)展模塊以及電源等組成,通過(guò)輸入/輸出擴(kuò)展模塊使Arduino與標(biāo)準(zhǔn)工業(yè)控制母線接軌(通常為24V電壓標(biāo)準(zhǔn)),形成可用的工業(yè)控制器。
1.3.2 數(shù)字隔離電壓輸入、輸出模塊。Arduino外接信號(hào)通過(guò)數(shù)字隔離輸入、輸出模塊傳輸。觸點(diǎn)閉合時(shí)輸入點(diǎn)有效,最大有4路隔離觸點(diǎn)閉合輸入。共陽(yáng)極,Ve端需要外接正電源端供電,COM端不接任何電器。觸點(diǎn)閉合時(shí)輸出為低,Arduino單片機(jī)需要設(shè)置為輸入上拉電阻狀態(tài)。該模塊用于少于4路輸入時(shí),不影響Arduino或MCU單片機(jī)其他IO口使用。數(shù)字隔離電壓輸入模塊的結(jié)構(gòu)如圖2所示。
1.3.3 I/O地址分配。根據(jù)自動(dòng)供料單元I/O信號(hào)分配和工作任務(wù)的要求,Arduino的I/O信號(hào)分配如表1所示。
2 系統(tǒng)控制程序設(shè)計(jì)
2.1 自動(dòng)供料單元控制流程
順序功能圖(SFC)是專用于工業(yè)電氣控制設(shè)計(jì)的一種重要方法,常用于PLC順序控制系統(tǒng)中的程序設(shè)計(jì)。順序功能圖由活動(dòng)步、有向線段、轉(zhuǎn)移條件三部分組成,常見(jiàn)的編程方法有三類:起保停電路編程、以轉(zhuǎn)換為中心編程和STL指令編程。其中,起保停電路編程通用性最好,也適用于改造成單片機(jī)語(yǔ)言。本文將利用Arduino Pro mini工控板編寫SFC編程語(yǔ)句[1]。
2.2 基于Arduino語(yǔ)言的SFC編程
自動(dòng)供料單元SFC編程屬于單分支的順序結(jié)構(gòu)。當(dāng)轉(zhuǎn)換條件I0.0得電時(shí),當(dāng)前活動(dòng)步M1通過(guò)轉(zhuǎn)換條件進(jìn)入M2,M1從活動(dòng)步變成非活動(dòng)步,M2將變成當(dāng)前活動(dòng)步;用M3的常閉觸電作為互鎖觸點(diǎn),同時(shí)并聯(lián)一個(gè)M2觸點(diǎn)自鎖,狀態(tài)M2變成活動(dòng)步后,保證當(dāng)前活動(dòng)步只有一個(gè)M2,頂料氣缸伸出保持,同時(shí)推料氣缸伸出,將工件推出到物料臺(tái)[2]。自動(dòng)供料單元控制流圖利用起保停進(jìn)行PLC編程如圖3所示。
將圖3中工作步梯形圖描述成Arduino語(yǔ)言結(jié)構(gòu)步驟如下:
Start=1;
while(1)
{
輸入掃描部分
工作步流程部分
輸出部分
}
①進(jìn)入有效工作步。啟動(dòng)Arduino IDE可以設(shè)置一個(gè)局部變量start,該變量在while (1)循環(huán)語(yǔ)句執(zhí)行前為1,在循環(huán)語(yǔ)句結(jié)束前使該變量為0。這樣該局部變量只在第一個(gè)while (1)循環(huán)中為1,因此可以作為進(jìn)入有效工作步的條件[3]。
②輸入掃描部分是啟動(dòng)按鈕、行程開(kāi)關(guān)、傳感器等信號(hào)。本文輸入掃描信號(hào)是來(lái)自單片機(jī)外部的光電傳感器輸入的信號(hào)I0.0,表示頂料氣缸伸出到位。
③工作步流程部分。工作步流程部分是Arduino語(yǔ)言描述SFC編程的關(guān)鍵部分,其包括以下兩個(gè)條件。一是工作步得電的條件。該步的上一個(gè)工作步是有效工作步,而該步的下一步?jīng)]有工作,這時(shí)若出現(xiàn)轉(zhuǎn)移條件,則該工作步就會(huì)得電變成有效工作步。二是工作步失電的條件。該步的下個(gè)工作步得電,則該工作步失電。一般情況下工作步都需要自鎖。
假設(shè)自動(dòng)供料單元的當(dāng)前工作步為M1表示頂料氣缸伸出到位后,推料氣缸伸出。工作步的得電條件是上一步M1是活動(dòng)工作步,若M2沒(méi)有工作且出現(xiàn)轉(zhuǎn)移條件I0_0得電,則M2變成有效工作步,M1失電,所以工作步M2都需要自鎖;若出現(xiàn)轉(zhuǎn)移條件I0_2得電,則M2失電,M3變成有效工作步,同時(shí)M2變成非活動(dòng)步,所以程序要串聯(lián)一個(gè)M3常閉出點(diǎn)互鎖,保證當(dāng)前活動(dòng)狀態(tài)只有一個(gè)。依據(jù)上述要求用if-else語(yǔ)句描述工作步得失電過(guò)程。
if(((M1&& I0_0)||M2) &&!M3) //頂料氣缸伸出到位I0_2
M2=1;
else M2=0;
④工作步的輸出。輸出部分就是描述對(duì)應(yīng)各個(gè)工作步的輸出動(dòng)作。從圖3可以看出,當(dāng)控制流程進(jìn)入工作步M1時(shí)頂料氣缸已經(jīng)伸出,在滿足條件頂料氣缸伸出到位后工作步M2變成活動(dòng)狀態(tài),此時(shí)頂料氣缸和推料氣缸同時(shí)伸出,采用if語(yǔ)句描述工作步輸出的Arduino程序[4]。
if(M2)
{
digitalWrite(Q0_0,HIGH); ?//頂料氣缸伸出
if(I0_0) ? ? ? ? ? ? ? ? //頂料氣缸伸出到位
digitalWrite(Q0_1,HIGH); ?//推料氣缸伸出
}
其中,高電平表示氣缸線圈得電,低電平表示氣缸線圈失電。
2.3 實(shí)驗(yàn)研究
將Arduino Pro mini控制板用螺釘固定在亞克力板底面,電磁閥和氣動(dòng)三連件固定在亞克力底板上,進(jìn)行調(diào)壓通氣。將光電傳感器和磁性開(kāi)關(guān)接入Arduino工控板輸入端。下載Arduino程序并通電測(cè)試,Arduino Pro mini控制板能順利讀取傳感器信號(hào),且能實(shí)現(xiàn)供料單元頂料推料的動(dòng)作,達(dá)到預(yù)定的目標(biāo),安裝調(diào)試如圖4所示。
3 結(jié)語(yǔ)
本文按照供料單元的工作順序與驅(qū)動(dòng)要求,完成供料單元硬件設(shè)計(jì)與組裝調(diào)試。此外,通過(guò)對(duì)SFC順序控制指令的分析研究,利用Arduino IDE編寫基于C語(yǔ)言的SFC指令,實(shí)現(xiàn)對(duì)供料單元控制系統(tǒng)的模擬仿真,最終實(shí)現(xiàn)基于Arduino自動(dòng)供料單元控制系統(tǒng)的改進(jìn)設(shè)計(jì)。在本項(xiàng)目實(shí)施過(guò)程中,由于能力及條件限制,還存在一些不
足的地方。例如:考慮到Arduino開(kāi)發(fā)板的成本與體積,目前使用的Arduino Pro mini開(kāi)發(fā)板最多有22個(gè)IO端口與工業(yè)檢測(cè)控制設(shè)備連接,對(duì)于自動(dòng)生產(chǎn)線中IO接口較少的單元基本可以滿足要求;但是,當(dāng)控制單元IO端口需求較多時(shí),需要將開(kāi)發(fā)板的控制核心升級(jí)到Arduino Mega2560(54路數(shù)字輸入輸出)。另外,由于研究時(shí)間短,像設(shè)備供料數(shù)量的計(jì)數(shù)、無(wú)線藍(lán)牙控制和基于Android的手機(jī)APP程序的開(kāi)發(fā)等還沒(méi)有完成,可在后續(xù)的學(xué)習(xí)中繼續(xù)完善,使設(shè)備控制更加方便可行。
總的來(lái)說(shuō),本文的研究有助于把Arduino引入自動(dòng)生產(chǎn)線的改進(jìn)設(shè)計(jì)中,節(jié)約了設(shè)計(jì)成本,具有一定的實(shí)用價(jià)值和現(xiàn)實(shí)意義。
參考文獻(xiàn):
[1]張毅.基于自動(dòng)生產(chǎn)線的仿真教學(xué)系統(tǒng)設(shè)計(jì)與研究[D].南京:南京理工大學(xué),2014.
[2]王麗.基于自動(dòng)生產(chǎn)線控制系統(tǒng)的研究與應(yīng)用[D].合肥:合肥工業(yè)大學(xué),2010.
[3]夏路易.單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐[M].北京:電子工業(yè)出版社,2008.
[4]衛(wèi)東,金燁,范秀敏,等.自動(dòng)生產(chǎn)線中搬運(yùn)機(jī)械手動(dòng)態(tài)調(diào)度策略的實(shí)現(xiàn)[J].制造技術(shù)與機(jī)床,2000(5):17-18.