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