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