于存謙 魏 巍 張 吉
(沈陽機床股份有限公司,遼寧沈陽 110142)
隨著汽車市場產(chǎn)品的更新要求加快,汽車制造越來越呈現(xiàn)出注重產(chǎn)品多元化、小批量生產(chǎn)和以市場需求為導(dǎo)向等發(fā)展新趨勢。因此,汽車零部件生產(chǎn)線也向著適應(yīng)多品種、小批量、低成本的高速化、柔性化和高效設(shè)備的生產(chǎn)方式發(fā)展。輪轂的制造工藝、裝備和檢測一直是發(fā)動機生產(chǎn)中的重點,其加工精度和一致性的好壞對汽車整體性能的影響很大。面對我國廣闊的汽車市場,汽車關(guān)鍵零部件升級換代的速度加快,生產(chǎn)廠家必須考慮生產(chǎn)線不僅要滿足當前生產(chǎn),而且也要考慮將來生產(chǎn)線改造的可能。在未來幾年,國內(nèi)汽車關(guān)鍵零部件生產(chǎn)線的市場非常廣闊。
在國家的大力扶持下,國內(nèi)數(shù)控機床行業(yè)在近年來有了很大的進步,對生產(chǎn)線的部分關(guān)鍵技術(shù)展開研究,取得了一定的成果,在國內(nèi)汽車零部件生產(chǎn)線制造市場占有一定的份額。由于我國機床制造商僅能提供一些較低水平的生產(chǎn)線,還不能滿足中國汽車行業(yè)發(fā)展需要。因此,開展汽車發(fā)動機關(guān)鍵零部件生產(chǎn)線技術(shù)研究,對于滿足我國汽車行業(yè)快速發(fā)展和提升機床制造企業(yè)的競爭能力都是十分迫切和必要的。
單元功能:本單元為自動生產(chǎn)線,可同時加工1~5個輪轂,加工過程安全高效。
設(shè)備組成:本輪轂加工單元由立式車削中心、立式加工中心、機器人、PLC單元、上位機監(jiān)控系統(tǒng)、厚度測量裝置、視覺檢測裝置和傳感器等設(shè)備組成。
單元結(jié)構(gòu):本單元共設(shè)9個工位(圖1),有上料臺、儲料區(qū)、立車前工位、立車加工區(qū)、立車沖洗區(qū)、厚度測量站、視覺檢測區(qū)、立加加工區(qū)和不合格品區(qū)。
本單元可實現(xiàn)1~5個輪轂的自動加工,為了清楚地展示多輪轂的加工過程,首先介紹單個輪轂的加工流程,如圖2。
多輪轂狀態(tài)較單個輪轂復(fù)雜得多,因為涉及到單元中各部分可能同時加工、同時發(fā)出動作請求的情況,即多輪轂多動作。此時,如何安排各動作的次序和前后邏輯關(guān)系以及如何向立車、立加和機器人發(fā)出信號,并保證整個單元能夠有序無誤地運行下去,就是一個難點。
我們遵循著工件先出后進的原則,同時使用大量的存儲器和計時器,保證機器人在執(zhí)行某個搬運動作的同時也可以接受單元中其他部分傳來的動作請求,并保證單元多工件時的高效運行。例如,當“8-1運送”和“5-6運送”請求同時到來時,機器人將首先執(zhí)行“8-1工位間工件運送”,完成后再執(zhí)行動作“5-6運送”。
首先與機械設(shè)計人員溝通制定工件加工工序,與單元其他部分電氣設(shè)計人員溝通論證時序和工序的邏輯合理性,這是編寫程序的基礎(chǔ)。其次確定負責(zé)通信的變量名稱和物理地址,名稱統(tǒng)一使用漢語拼音或英文命名,并與上位機設(shè)計人員、機床電氣設(shè)計人員和機器人程序設(shè)計人員溝通一致,確保雙方變量名稱一致。
整個程序設(shè)計一個主程序,作為整個程序的入口,并設(shè)計有開關(guān)和初始化部分——如測量站部分的重置量程和零點過程。對于邏輯部分和伺服控制部分分別設(shè)計兩個主程序,在PLC中循環(huán)掃描執(zhí)行,并設(shè)置邏輯部分掃描時間大于伺服控制程序掃描時間且為整數(shù)倍。將涉及9個工位的9個搬運動作和測量動作等,分別作為13個子程序單獨設(shè)計,獨立運行,而后由主程序進行調(diào)用。因為涉及到“多輪轂多動作”的要求,程序設(shè)計的難點就在于充分考慮其中的邏輯矛盾和關(guān)系。對于IO變量,因為需要和兩臺機床及機器人進行通信,所以需要將其設(shè)計成全局變量ix%、ox%(這是施奈德PLC所要求的),然后將這些全局分別轉(zhuǎn)換成內(nèi)部變量mx%以便在程序中進行邏輯運算。
針對一些危險動作和可能發(fā)生錯誤的動作,我們均設(shè)計了急停,并將急停命令同時傳送給機床和機器人,并做標記,以便監(jiān)測人員進行后續(xù)的修改和調(diào)試。
針對一些傳感器容易受到外界條件影響而導(dǎo)致誤操作的(如光電傳感器受高強光線影響而傳遞假信號),我們在程序中為每一個傳感器分別設(shè)置了信號門限,對于達到一定時間長度的傳感器信號才予以考慮。最后,在充分仿真模擬的基礎(chǔ)上,進行實物調(diào)試。
2.2.1 硬件構(gòu)成
本PLC單元設(shè)備及伺服控制器均選用施奈德電氣產(chǎn)品。選型見表1。
表1 硬件選型
使用SoMachine軟件中的檢索和拖動功能,選取所需模塊,拖至指定區(qū)域,軟件將自動連線并配置相應(yīng)接口。雙擊單個模塊可對其具體參數(shù)進行配置。如圖3所示,為各模塊連接情況。
2.2.2 主要組態(tài)
(1)變量的地址分配
先將所需變量填寫在全局變量表中(局部變量不能被IO綁定),然后在模塊中綁定。如圖4為數(shù)字量輸入模塊TM2DDI16DT的變量綁定實例。變量一列為已經(jīng)在全局變量表GVL_IO中設(shè)定好的變量名稱,地址一列為實際物理地址,類型列說明變量類型,帶有貫穿橫線的說明已經(jīng)被綁定。
(2)任務(wù)配置
兩個任務(wù)——邏輯任務(wù)MAST,伺服任務(wù)SERVO,掃描類型均設(shè)置為循環(huán),循環(huán)間隔分別設(shè)置為40 ms和20 ms。這樣設(shè)置的目的有兩個,一是SERVO掃描的時間較短,保證可以接收到MAST傳來的任何指令;二是40 ms和20 ms都可以整除心跳時間200 ms,保證CANopen總線的通信連接,理由參見(3)②中解釋。
(3)伺服控制器組態(tài)
①使用SoMove軟件為伺服控制器配置組態(tài),在本方案中我們主要設(shè)置了伺服波特率為500 k(波特率為數(shù)據(jù)傳輸?shù)乃俾?,距離越遠波特率需要設(shè)置的越低——衰減原因,反之越高),節(jié)點ID為3;
②同時在SoMachine軟件中配置CANopen總線組態(tài),且保證波特率和節(jié)點ID與SoMove中設(shè)置一致;心跳時間設(shè)置為200 ms,心跳時間的作用為每隔一段時間,伺服控制器與PLC進行一次“握手”,確保兩端為連接狀態(tài),心跳時間需設(shè)置成所有任務(wù)掃描時間的整數(shù)倍,如此例中設(shè)置為20 ms和40 ms的公倍數(shù)。
(4)以太網(wǎng)模塊組態(tài)
為PLC與上位機通信服務(wù),采用MODBUS總線,以太網(wǎng)協(xié)議,介質(zhì)為RS485。需在模塊中設(shè)置尋址為從站,給定地址,同時配置IP地址、子網(wǎng)掩碼和缺省網(wǎng)關(guān),詳見圖5。
采用結(jié)構(gòu)化文本STL語言編寫,程序主要分為四部分:(1)程序主入口Start塊;(2)子程序執(zhí)行部分,各單步塊,測量塊,數(shù)據(jù)傳輸塊;(3)伺服控制部分Servo塊;(4)此外還有全局變量模塊和專為伺服控制器設(shè)計的結(jié)構(gòu)體模塊。
2.3.1 邏輯部分主程序——程序主入口Start塊
功能如下:
(1)測量站零點和量程的初始化;
(2)伺服使能賦值;
(3)工作模式選擇——自動或者手動;
(4)工作正常信號檢測:必須在立車、立加和機器人同時存在工作正常信號的情況下,才能啟用單步運行程序,調(diào)用程序塊Unit_run。
程序段“initial CeLiangZhan”負責(zé)初始化測量站,包括置零點和測量程兩部分;程序段“for CeLiang-ZhuangZhi ShenSuo”的目的是為了保證測量裝置在未收到伸出命令時保持縮回狀態(tài),以防止意外伸出造成損害和人員傷害;程序段“Enable the Servo”的作用是為伺服程序的使能變量賦1,而后伺服開始初始化,保證程序在每次運行時,伺服都能夠正常工作;程序段“Select the Model of service”的作用是選擇整個單元的服務(wù)方式,其中包含自動和手動兩種方式;最后的程序段“check if the servo is running”的作用是檢查伺服是否旋轉(zhuǎn),并將伺服狀態(tài)信息傳遞給上位機以進行實時監(jiān)控。
整個程序的核心為程序段“Select the Model of service”,該段中不僅包含模式選擇功能,同時也會讀取實際 IO物理地址變量信息,調(diào)用子程序 VAR_TRANS_READSTATUS將這些變量轉(zhuǎn)換為PLC內(nèi)部變量為其后的邏輯運算部分做準備,原因是與物理地址捆綁的全局變量無法準確參與邏輯運算。同時,該段中還包括急停后的程序自動恢復(fù)功能,保證操作員即使在無編程基礎(chǔ)的情況下,也能輕松恢復(fù)整個單元狀態(tài),保證生產(chǎn)繼續(xù)進行。代碼如下:
2.3.2 子程序執(zhí)行部分
13個子程序,包括讀寫IO程序(1個),邏輯部分程序(10個),測量站模擬量換算程序(2個)。
(1)Unit_run:各單步程序入口,按順序調(diào)用各自單步動作程序,也包括關(guān)機急停功能,再啟動自動清除急停功能;
(2)Step1_2:上料臺旋轉(zhuǎn)、1-2運送功能;
(3)Step3:2-3運送功能;
(4)Step4:3-5準備和運送功能;
(5)Step5:工件清洗和5-6運送功能;
(6)Step6:6號位工件檢測,控制頂針和測量裝置動作,同時調(diào)用Measure子程序;
(7)Step7:6-3運送功能;
(8)Step8:3-7運送功能;
(9)Step9:3-7相應(yīng)功能;
(10)Step10_11:拍照和7-8運送功能;
(11)Step12:8-1準備和運送功能;
(12)VAR_TRANS_Q:負責(zé)實際IO和PLC內(nèi)部寄存器變量的轉(zhuǎn)換;
(13)Measure:通過設(shè)置1個整形變量lgFmHd_I利用模擬量輸入模塊的電流原理,測算輪轂厚度。
由于篇幅有限,下面我們僅就子程序Step1_2進行舉例介紹。
該子程序主要實現(xiàn)目的有:輪轂在1號位的識別、頂針伸出定心與固定工件、旋轉(zhuǎn)工件以識別并調(diào)整工件氣門孔位置、發(fā)送1號位到2號位的運送通知命令、通知立車輪轂已進入,同時還有急停保護功能等。
首先,如果1號位的紅外線傳感器檢測沒有輪轂,同時頂針沒有伸出,且此時也無8號位到1號位的運送動作的話,啟動“DingZhen ShenChu”程序塊。在該程序塊中,當程序檢測到輪轂已放置好后,頂針伸出,頂針有3個,每個相隔120°,伸出后既可以起到固定輪轂的作用,同時也將使輪轂的中心與1號位的中心重合。然后,先后有6個計時器,分段工作,負責(zé)控制伺服的6個動作的計時功能,伺服旋轉(zhuǎn)的作用是讓接近開關(guān)檢測輪轂上的突臺,該突臺的作用是識別輪轂的角度,當接近開關(guān)檢測到突臺后,電動機向反方向旋轉(zhuǎn)一個特定角度后,輪轂位置固定完畢。而后啟動“DingZhen SuoHui”程序段,該段中使用一個計時器,負責(zé)在幾秒鐘的時間之中將頂針縮回到位,釋放輪轂,并將賦值給一些標識變量,以通知后續(xù)程序繼續(xù)進行,同時又不會重復(fù)之前的旋轉(zhuǎn)動作。最后啟動“1-2 YunSong”程序段,其作用是向機器人發(fā)出1-2號位的運送通知、在運送動作完成后告知立車輪轂已經(jīng)到位,以及將所有計時器全部重新置位,標識變量全部清零,準備接收下一個輪轂;該段中還有在負責(zé)危險動作的急停功能。
“Avoid the servo is failed,and make the program keep running on”程序段較特殊,其作用是在伺服與PLC的通信意外中斷或伺服程序出現(xiàn)混亂的情況下,將程序強行執(zhí)行下去,其中包含的一些標識變量可以保證程序繼續(xù)順利運行,避免重復(fù)之前動作,并自動將程序切換到無伺服控制狀態(tài)。代碼如下:
2.3.3 伺服程序
施奈德專門為伺服編寫的結(jié)構(gòu)體和伺服FB程序,可滿足Jog模式,走速度,走增量,走絕對值等功能。只要在邏輯子程序中修改相應(yīng)變量,即可實現(xiàn)功能。
設(shè)計中使用該程序塊的走增量功能,控制上料臺電動機旋轉(zhuǎn),來幫助輪轂定位。其中用到等待WAIT,上電POWER_ON,待命READY等功能,通過結(jié)構(gòu)體變量AxisStep來選擇使用哪個功能塊。伺服控制模塊代碼我們節(jié)選如下:
2.3.4 結(jié)構(gòu)體和全局變量塊
結(jié)構(gòu)體AxisM是Schneider提供的成型的結(jié)構(gòu)體,與Servo程序塊匹配使用,通過為其中一些變量賦值來控制伺服動作。
全局變量塊GVL_IO中用來設(shè)置全局變量,主要包括I、O、IM、OM四種類型變量以及一些用來記錄急停位置和特殊功能的變量。I和O變量用來直接與I/O端口捆綁;IM和OM變量屬于內(nèi)部變量,用在程序邏輯運算中,它們通過VAR_TRANS_Q塊來相互賦值。結(jié)構(gòu)體代碼如下:
在本柔性單元中,施奈德PLC所發(fā)揮的作用為信號傳輸,時序和邏輯判斷的作用,我們單獨為整個PLC單元和上位機配置了電氣柜,負責(zé)監(jiān)控整個單元。程序中不但要考慮單步運送的情況,更要兼顧所有子程序之間的關(guān)系,避免多輪轂多動作時邏輯上的混亂。
[1]王永華.現(xiàn)代電器控制機PLC應(yīng)用技術(shù)[M].2版.北京:北京航空航天大學(xué)出版社,2009.
[2]鄭莉,董淵,張瑞豐.C++語言程序設(shè)計[M].3版.北京:清華大學(xué)出版社,2008.
[3]王昊,王中慶.RIC-DNC數(shù)控設(shè)備遠程異構(gòu)通信物聯(lián)網(wǎng)研究[J].現(xiàn)代制造工程,2010(7):21-25.
[4]黃國慶,蔡英,樊留群,等.數(shù)控機床的網(wǎng)絡(luò)化[J].江南大學(xué)學(xué)報:自然科學(xué)版,2002(6).