3.2系統(tǒng)功能實現(xiàn)
(1)電子凸輪代替時序控制

圖5 時序控制圖

圖6 進瓶水平軸與主軸構(gòu)成的電子凸輪表

圖7 NJ電子凸輪表

圖8 偏移程序
通過MasterOffset將主軸向后偏移280,這時的動作時序和凸輪形狀就與工藝要求相符了,但要注意的是,這時的從軸起始位置不為0,會造成起始速度“無窮大”,從而引發(fā)伺服報警。將MasterScaling設(shè)置為280,就可以將從軸的起始點推遲到“主軸280”的位置,當(dāng)主軸啟動時,從軸并不啟動,而是等到主軸到達(dá)280位置時再啟動,這樣就可以實現(xiàn)客戶的工藝要求了。
(2)暫停功能
這套系統(tǒng)相比以前用CS、CJ來做的系統(tǒng)而言,一個很重要的亮點就是可以很容易的實現(xiàn)“暫停功能”,具體程序如圖9所示。

圖9 暫停功能程序1

圖10 暫停功能程序2
當(dāng)需要暫停設(shè)備時,只需執(zhí)行MC_Stop指令即可。當(dāng)再次啟動時,只需再次執(zhí)行MC_Velocity指令,設(shè)備會從當(dāng)前停止的位置繼續(xù)運行。暫停的好處是,當(dāng)操作人員需要暫時停止設(shè)備,做簡單處理,后面又需要快速恢復(fù)生產(chǎn)狀態(tài)時,不需要重新尋原點。對生產(chǎn)效率的提高幫助很大。
(3)工位判斷

圖11 工位判斷程序
(4)回零停止

圖12 回零停止程序
如圖12程序所示,當(dāng)需要停止主拖動軸時,必須要等待主拖動當(dāng)前動作完成后。根據(jù)虛軸的位置判斷,當(dāng)虛軸處于90到140之間時,主拖動處于停止?fàn)顟B(tài),這時執(zhí)行MC_CamOut指令,就可以將這個從軸順利脫出凸輪表。
在啟動和停止過程中,必須特別注意一個問題,那就是回零停止和啟動過程一樣,必須要按照嚴(yán)格的順序來執(zhí)行。例如,停止時,“出瓶”早于“主拖動”,“主拖動”早于“進瓶”,而進瓶時剛好相反。這樣才能保證在下次啟動時,出瓶工位的瓶子剛好被抓出,而進瓶工位則是空的,剛好可以開始放瓶。如果不按照順序啟動,則會使進瓶工位“有瓶”狀態(tài)下打開模板,導(dǎo)致瓶子掉落;或者出瓶工位“有瓶”,但不抓瓶,導(dǎo)致瓶子轉(zhuǎn)到機器底下。這些都是不允許的。
(5)急停保護
對于“撞車”的保護,是整個系統(tǒng)設(shè)計中非常重要的一部分。如果所有軸都能夠嚴(yán)格按照自己凸輪曲線進行運動,并且沒有掛進凸輪的軸也能夠正常動作的話,“撞車”原則上是不會發(fā)生的。但由于伺服故障、氣缸故障等諸多因素的產(chǎn)生,會使得“撞車”發(fā)生的概率增加。

圖13 進、出瓶模板的空間保護程序
圖13所示兩段程序是對進、出瓶模板的空間保護,當(dāng)模板被氣缸頂起時,模板絕對不能拖動,否則會被掀翻。這里依舊采取通過對主軸位置的判斷,來判斷從軸。當(dāng)主軸位置處于320和360之間時,模板被氣缸頂起,同時由模板開合軸將模板分開。如果此時氣缸突然下降,模板將來不及合攏,而被掀翻。此時可通過MC_ImmediateStop指令完成急停操作。
(6)曲柄的線性處理
整套設(shè)備采用了多個曲柄機構(gòu),比如灌裝、擰蓋升降等等。根據(jù)曲柄機構(gòu)的特性,當(dāng)伺服勻速旋轉(zhuǎn)時,曲柄機構(gòu)的垂直速度并不是勻速的,并且垂直位置也不是線性變化的。而灌裝機構(gòu)需要一個相對穩(wěn)定的速度(主要是防止液體飛濺),和一個線性的標(biāo)定(可以通過對伺服位置的設(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;

用以上公式,可以在灌裝伺服到達(dá)各個位置時,給予不同的速度,通過對角速度賦予“多段速”來實現(xiàn)垂直速度的基本恒定。再通過每10ms寫入一次速度的方式,來實現(xiàn)速度的變換。解決位置可標(biāo)定的方法如下:
糾偏角度轉(zhuǎn)弧度:=DegToRad(REAL#15);
Fill1_Feed_rad:=ACOS(臨時數(shù)字1);
Fill1_Feed:=RadToDeg(Fill1_Feed_rad)-REAL#15;
臨時數(shù)字:=REAL#3.14*REAL#16*REAL#7.5;
臨時數(shù)字1:=COS(糾偏角度轉(zhuǎn)弧度)-HMI氣缸1進給量/臨時數(shù)字;
通過平面解析幾何和三角函數(shù)運算,求得伺服角位置和曲柄垂直位置之間的線性關(guān)系。
最終實現(xiàn),觸摸屏上面可以直接設(shè)定以“毫升”為單位的灌裝量值。
(7)凸輪表的變換
凸輪表編制好以后,每根軸都會按照自己的凸輪表數(shù)據(jù)進行重復(fù)運動。但是,如果更換了產(chǎn)品(主要是瓶子大小有變化),個別軸的動作就要發(fā)生變化。例如:把220mm高的瓶子換成了300mm,那么出瓶放瓶時,氣爪距離傳送帶的高度就要增加,這就要求凸輪表可以通過程序進行變換,程序如下:
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;

4結(jié)束語









