">
本文介紹了SYSMAC NJ系列新一(yī)代PLC在16軸直線灌裝機(jī)上(shàng)的應用,通(tōng)過現場調試及試生(shēng)産,系統滿足了客戶的要求,運行效果良好。
1引言
直線飲料灌裝機(jī)主要用于灌裝各種各樣的瓶裝飲料,适合于大中型飲料生(shēng)産廠家。直線飲料灌裝機(jī)主要包括進瓶、抓瓶、灌裝、擰蓋、抓瓶、出瓶等幾個(gè)步驟,在進瓶階段,通(tōng)過帶有10個(gè)固定夾的皮帶一(yī)次帶入10個(gè)瓶,在第一(yī)個(gè)抓瓶階段,10個(gè)抓手同時把10個(gè)瓶抓入輸送鏈,在灌裝階段,2組10根罐裝管分2次向10個(gè)瓶中罐液體,在擰蓋階段,一(yī)個(gè)伺服帶動10個(gè)擰蓋機(jī)構進行擰蓋,在第二個(gè)抓瓶階段,把裝滿的10個(gè)瓶從(cóng)輸送鏈中抓出,送上(shàng)輸出皮帶,在出瓶階段,輸出皮帶送出已罐瓶,直線飲料灌裝機(jī)的系統框圖如圖1所示。
圖1 直線飲料灌裝機(jī)的系統框圖
客戶原先用傳統的PLC開(kāi)發過直線灌裝機(jī),各軸伺服通(tōng)過運動控制模塊進行控制。各軸的動作時序采用位置判斷,然後分别以一(yī)定的速度和位置啓動各個(gè)軸的方式來完成。在過去3年(nián)中賣出過5、6套設備,運行效果不好,發生(shēng)異常停機(jī)的頻率很高(gāo),而且沒有暫停功能(néng),每次停機(jī)都要全部重新尋原點,生(shēng)産效率比較低(dī)。采用歐姆龍SYSMAC NJ系列新一(yī)代PLC進行改造之後,用電(diàn)子凸輪功能(néng)來替代以往的普通(tōng)運動指令,故障率低(dī),并且很容易完成“暫停”功能(néng)。
2系統工(gōng)作原理及控制需求
飲料灌裝機(jī)主要包括三大部分:恒壓儲液罐、夾瓶及灌裝頭部分、變頻調速傳送帶部分,系統控制功能(néng)結構如圖2所示。主機(jī)的上(shàng)部是恒壓儲液罐,裡(lǐ)面有上(shàng)限位和下(xià)限位液位傳感器(qì),液面低(dī)于下(xià)限位時恒壓儲液罐為(wèi)空,飲料通(tōng)過進液電(diàn)磁閥流入恒壓儲液罐,液面達到(dào)上(shàng)限位時進液電(diàn)磁閥斷電(diàn)關閉,使液位保持穩定。
圖2 系統控制功能(néng)結構圖
恒壓儲液罐下(xià)面是夾瓶及裝瓶頭部分,共有20個(gè)灌裝頭。夾瓶裝置由氣壓缸驅動下(xià)降,下(xià)降到(dào)位後,夾瓶裝置由另一(yī)組氣缸夾緊定位,下(xià)降及夾緊由行程開(kāi)關控制位置。夾緊定位後,灌裝頭由第三組氣缸驅動下(xià)降,到(dào)位後灌裝頭電(diàn)磁閥打開(kāi),開(kāi)始灌液,延時後電(diàn)磁閥關閉,通(tōng)過控制電(diàn)磁閥的開(kāi)啓時間達到(dào)灌裝容量控制。放(fàng)瓶動作流程如圖3所示。
圖3 放(fàng)瓶動作流程
傳送帶電(diàn)動機(jī)由變頻器(qì)控制,實現無級變速,達到(dào)系統經濟運行的目的。電(diàn)機(jī)啓動1s後,進瓶氣缸縮回、開(kāi)始進瓶,3s後出瓶處氣缸伸出擋住空料瓶。進瓶處設置光(guāng)電(diàn)開(kāi)關檢測進瓶個(gè)數,當達到(dào)相(xiàng)應數量後傳送帶電(diàn)動機(jī)停止。灌裝頭下(xià)降到(dào)瓶口,由通(tōng)過觸摸屏輸入的時間,使PLC控制灌裝頭的開(kāi)啓時間。灌裝結束後,灌裝頭上(shàng)升,夾瓶裝置放(fàng)松、上(shàng)升。出瓶處氣缸縮回,傳送電(diàn)動機(jī)又(yòu)開(kāi)始轉動,1s後進瓶處氣缸縮回,光(guāng)電(diàn)開(kāi)關又(yòu)開(kāi)始檢測進瓶個(gè)數。出瓶動作流程如圖4所示。
圖4 出瓶動作流程
在本項目中,需要研究的重點課題有以下(xià)幾點:(1)電(diàn)子凸輪代替時序控制;(2)暫停功能(néng);(3)工(gōng)位判斷;(4)回零停止;(5)急停保護;(6)曲柄的線性處理;(7)凸輪表的變換。其中,暫停功能(néng)和曲柄的線性處理是客戶以往舊(jiù)設備未能(néng)實現的功能(néng)。
3系統解決方案
3.1方案配置(見(jiàn)表1)
表1 系統方案配置表
3.2系統功能(néng)實現
(1)電(diàn)子凸輪代替時序控制
以“進瓶水(shuǐ)平”(MC_BottleInHorizontal)為(wèi)例,主軸為(wèi)虛軸,從(cóng)軸為(wèi)實軸。時序圖如圖5所示。
圖5 時序控制圖
主軸以360為(wèi)一(yī)個(gè)周期,進行循環速度控制。主軸、從(cóng)軸都在零位。從(cóng)軸開(kāi)始的時候并不啓動,而是在主軸位置到(dào)達285時開(kāi)始啓動,當主軸位置到(dào)達360時,從(cóng)軸停止。在下(xià)一(yī)個(gè)周期,主軸到(dào)達120的時候,從(cóng)軸開(kāi)始返回(反轉),主軸位置到(dào)達220的時候,從(cóng)軸停止(回零位)。進瓶水(shuǐ)平軸與主軸構成電(diàn)子凸輪表如圖6所示。
圖6 進瓶水(shuǐ)平軸與主軸構成的電(diàn)子凸輪表
從(cóng)圖6可以看(kàn)到(dào),主軸為(wèi)0的時候,從(cóng)軸也是0,而根據時序圖的要求,從(cóng)軸的“0”應該在主軸的“285”。顯然這樣的動作是不正确的。這樣編制凸輪表的原因在于,NJ的電(diàn)子凸輪表的起始點必須為(wèi)兩個(gè)“0”,即主軸、從(cóng)軸都從(cóng)0開(kāi)始,如圖7所示。
圖7 NJ電(diàn)子凸輪表
解決這個(gè)問題的辦法是對編制好的凸輪表進行“偏移”,偏移的程序如圖8所示。
圖8 偏移程序
通(tōng)過MasterOffset将主軸向後偏移280,這時的動作時序和凸輪形狀就(jiù)與工(gōng)藝要求相(xiàng)符了,但要注意的是,這時的從(cóng)軸起始位置不為(wèi)0,會(huì)造成起始速度“無窮大”,從(cóng)而引發伺服報(bào)警。将MasterScaling設置為(wèi)280,就(jiù)可以将從(cóng)軸的起始點推遲到(dào)“主軸280”的位置,當主軸啓動時,從(cóng)軸并不啓動,而是等到(dào)主軸到(dào)達280位置時再啓動,這樣就(jiù)可以實現客戶的工(gōng)藝要求了。
(2)暫停功能(néng)
這套系統相(xiàng)比以前用CS、CJ來做的系統而言,一(yī)個(gè)很重要的亮點就(jiù)是可以很容易的實現“暫停功能(néng)”,具體程序如圖9所示。
圖9 暫停功能(néng)程序1
虛軸的啓動采用速度控制指令,以360為(wèi)周期循環運動,見(jiàn)圖10。
圖10 暫停功能(néng)程序2
當需要暫停設備時,隻需執行MC_Stop指令即可。當再次啓動時,隻需再次執行MC_Velocity指令,設備會(huì)從(cóng)當前停止的位置繼續運行。暫停的好處是,當操作人員(yuán)需要暫時停止設備,做簡單處理,後面又(yòu)需要快速恢複生(shēng)産狀态時,不需要重新尋原點。對生(shēng)産效率的提高(gāo)幫助很大。
3)工(gōng)位判斷
每排模闆上(shàng)應該夾住10個(gè)瓶子進行灌裝、加蓋、整蓋、擰蓋、判斷缺蓋等工(gōng)序,但由于各種客觀情況(風道等問題),并不能(néng)保證每次都夾滿10個(gè)瓶子。當少于10個(gè)瓶子的時候,整排都不能(néng)進行任何操作,否則設備會(huì)産生(shēng)嚴重故障(比如無瓶加蓋會(huì)卡住模闆)。解決這個(gè)問題的辦法是,采用位移指令進行工(gōng)位判斷,具體程序如圖11所示。
圖11 工(gōng)位判斷程序
(4)回零停止
當按下(xià)停止按鈕後,各軸的最終停止位置必須是自(zì)己的“原點”,這樣,在下(xià)一(yī)次啓動時,就(jiù)不需要重新全體尋原點了(全體回零時間較長(cháng))。另外一(yī)方面,如果各軸都在原點的話,絕對不會(huì)出現“撞車”的現象,否則如果其中一(yī)根軸不在原點就(jiù)停止動作,其它的軸在回零過程中很容易撞上(shàng)它。回零停止的方法采用Cam_Out指令,程序如圖12所示。
圖12 回零停止程序
如圖12程序所示,當需要停止主拖動軸時,必須要等待主拖動當前動作完成後。根據虛軸的位置判斷,當虛軸處于90到(dào)140之間時,主拖動處于停止狀态,這時執行MC_CamOut指令,就(jiù)可以将這個(gè)從(cóng)軸順利脫出凸輪表。
在啓動和停止過程中,必須特别注意一(yī)個(gè)問題,那就(jiù)是回零停止和啓動過程一(yī)樣,必須要按照(zhào)嚴格的順序來執行。例如,停止時,“出瓶”早于“主拖動”,“主拖動”早于“進瓶”,而進瓶時剛好相(xiàng)反。這樣才能(néng)保證在下(xià)次啓動時,出瓶工(gōng)位的瓶子剛好被抓出,而進瓶工(gōng)位則是空的,剛好可以開(kāi)始放(fàng)瓶。如果不按照(zhào)順序啓動,則會(huì)使進瓶工(gōng)位“有瓶”狀态下(xià)打開(kāi)模闆,導緻瓶子掉落;或者出瓶工(gōng)位“有瓶”,但不抓瓶,導緻瓶子轉到(dào)機(jī)器(qì)底下(xià)。這些都是不允許的。
(5)急停保護
對于“撞車”的保護,是整個(gè)系統設計中非常重要的一(yī)部分。如果所有軸都能(néng)夠嚴格按照(zhào)自(zì)己凸輪曲線進行運動,并且沒有挂進凸輪的軸也能(néng)夠正常動作的話,“撞車”原則上(shàng)是不會(huì)發生(shēng)的。但由于伺服故障、氣缸故障等諸多(duō)因素的産生(shēng),會(huì)使得“撞車”發生(shēng)的概率增加。
“撞車”的情況可以分為(wèi)兩大類,一(yī)類是“凸輪動作”内部碰撞,另一(yī)類是凸輪動作與非凸輪動作之間的碰撞。例如:進瓶抓瓶機(jī)構與進瓶皮帶之間,由于進瓶抓瓶的原點位于進瓶皮帶上(shàng)方,下(xià)移放(fàng)瓶時需要水(shuǐ)平和垂直兩根軸同時動作,才能(néng)繞過皮帶。如果此時進瓶水(shuǐ)平軸由于種種原因沒有動作,隻有垂直軸在動作,氣爪将直接砸在皮帶上(shàng),造成設備嚴重的損壞。這屬于凸輪動作内部撞車。再例如:當擰蓋機(jī)構進行擰蓋時,擰蓋爪抓在瓶子上(shàng),如果此時拖闆提前開(kāi)始動作,則會(huì)将瓶子拉壞,甚至将模闆掀翻。這屬于凸輪軸與非凸輪軸之間的碰撞。為(wèi)避免這些問題的産生(shēng),編寫了一(yī)系列程序,部分程序如圖13所示。
圖13 進、出瓶模闆的空間保護程序
圖13所示兩段程序是對進、出瓶模闆的空間保護,當模闆被氣缸頂起時,模闆絕對不能(néng)拖動,否則會(huì)被掀翻。這裡(lǐ)依舊(jiù)采取通(tōng)過對主軸位置的判斷,來判斷從(cóng)軸。當主軸位置處于320和360之間時,模闆被氣缸頂起,同時由模闆開(kāi)合軸将模闆分開(kāi)。如果此時氣缸突然下(xià)降,模闆将來不及合攏,而被掀翻。此時可通(tōng)過MC_ImmediateStop指令完成急停操作。
(6)曲柄的線性處理
整套設備采用了多(duō)個(gè)曲柄機(jī)構,比如灌裝、擰蓋升降等等。根據曲柄機(jī)構的特性,當伺服勻速旋轉時,曲柄機(jī)構的垂直速度并不是勻速的,并且垂直位置也不是線性變化的。而灌裝機(jī)構需要一(yī)個(gè)相(xiàng)對穩定的速度(主要是防止液體飛(fēi)濺),和一(yī)個(gè)線性的标定(可以通(tōng)過對伺服位置的設定,直接标定灌裝量)。解決速度基本恒定的方式如下(xià):
IF 30>=MC_Fill1.Act.Pos OR (180>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>150) THEN
Fill1_Velocity_Out:=LREAL#1*灌裝1速度HMI;
ELSIF (60>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>30) OR (150>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>120) THEN
Fill1_Velocity_Out:=LREAL#0.8*灌裝1速度HMI;
ELSIF (80>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>60) OR (120>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>100) THEN
Fill1_Velocity_Out:=LREAL#0.5*灌裝1速度HMIELSIF 100>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>80 THEN
Fill1_Velocity_Out:=LREAL#0.3*灌裝1速度HMI;
END_IF;
用以上(shàng)公式,可以在灌裝伺服到(dào)達各個(gè)位置時,給予不同的速度,通(tōng)過對角速度賦予“多(duō)段速”來實現垂直速度的基本恒定。再通(tōng)過每10ms寫入一(yī)次速度的方式,來實現速度的變換。解決位置可标定的方法如下(xià):
糾偏角度轉弧度:=DegToRad(REAL#15);
Fill1_Feed_rad:=ACOS(臨時數字1);
Fill1_Feed:=RadToDeg(Fill1_Feed_rad)-REAL#15;
臨時數字:=REAL#3.14*REAL#16*REAL#7.5;
臨時數字1:=COS(糾偏角度轉弧度)-HMI氣缸1進給量/臨時數字;
通(tōng)過平面解析幾何和三角函數運算(suàn),求得伺服角位置和曲柄垂直位置之間的線性關系。
最終實現,觸摸屏上(shàng)面可以直接設定以“毫升”為(wèi)單位的灌裝量值。
(7)凸輪表的變換
凸輪表編制好以後,每根軸都會(huì)按照(zhào)自(zì)己的凸輪表數據進行重複運動。但是,如果更換了産品(主要是瓶子大小(xiǎo)有變化),個(gè)别軸的動作就(jiù)要發生(shēng)變化。例如:把220mm高(gāo)的瓶子換成了300mm,那麽出瓶放(fàng)瓶時,氣爪距離傳送帶的高(gāo)度就(jiù)要增加,這就(jiù)要求凸輪表可以通(tōng)過程序進行變換,程序如下(xià):
FOR IndexOutUp := UINT#10#0 TO UINT#10#360 DO
IF IndexOutUp<=UINT#10#70 THEN
Cam_BottleOutUp[IndexOutUp].Distance:= Cam_BottleOutUp00[IndexOutUp].Distance*2*BottleOutUpFeed1;
ELSIF IndexOutUp>UINT#10#70 and IndexOutUp<=UINT#10#85 THEN
Cam_BottleOutUp[IndexOutUp].Distance:= (Cam_BottleOutUp00[IndexOutUp].Distance-0.5)*2*(BottleOutUpFeed2 - BottleOutUpFeed1)+BottleOutUpFeed1;
ELSE
Cam_BottleOutUp[IndexOutUp].Distance:= Cam_BottleOutUp00[IndexOutUp].Distance * BottleOutUpFeed2;
END_IF;
END_FOR;
在上(shàng)述程序中,Cam_BottleOutUp00[IndexOutUp].Distance是出瓶頂升凸輪表的點,IndexOutUp是FOR循環語句的循環變量,通(tōng)過FOR循環語句,将凸輪表内的若幹個(gè)點依次更改,再通(tōng)過如下(xià)指令進行保存,這樣,這根從(cóng)軸就(jiù)會(huì)按照(zhào)新的凸輪表來進行運動了。
4結束語
通(tōng)過系統現場調試及客戶的試生(shēng)産,所有控制要求的解決方案都得以驗證,滿足客戶的改造需求,并且效果良好。