發布日期:2022-04-22 點擊率:55 品牌:MAC
如圖12程序所示,當需要停止主拖動軸時,必須要等待主拖動當前動作完成后。根據虛軸的位置判斷,當虛軸處于90到140之間時,主拖動處于停止狀態,這時執行MC_CamOut指令,就可以將這個從軸順利脫出凸輪表。
在啟動和停止過程中,必須特別注意一個問題,那就是回零停止和啟動過程一樣,必須要按照嚴格的順序來執行。例如,停止時,“出瓶”早于“主拖動”,“主拖動”早于“進瓶”,而進瓶時剛好相反。這樣才能保證在下次啟動時,出瓶工位的瓶子剛好被抓出,而進瓶工位則是空的,剛好可以開始放瓶。如果不按照順序啟動,則會使進瓶工位“有瓶”狀態下打開模板,導致瓶子掉落;或者出瓶工位“有瓶”,但不抓瓶,導致瓶子轉到機器底下。這些都是不允許的。
(5)急停保護
對于“撞車”的保護,是整個系統設計中非常重要的一部分。如果所有軸都能夠嚴格按照自己凸輪曲線進行運動,并且沒有掛進凸輪的軸也能夠正常動作的話,“撞車”原則上是不會發生的。但由于伺服故障、氣缸故障等諸多因素的產生,會使得“撞車”發生的概率增加。
“撞車”的情況可以分為兩大類,一類是“凸輪動作”內部碰撞,另一類是凸輪動作與非凸輪動作之間的碰撞。例如:進瓶抓瓶機構與進瓶皮帶之間,由于進瓶抓瓶的原點位于進瓶皮帶上方,下移放瓶時需要水平和垂直兩根軸同時動作,才能繞過皮帶。如果此時進瓶水平軸由于種種原因沒有動作,只有垂直軸在動作,氣爪將直接砸在皮帶上,造成設備嚴重的損壞。這屬于凸輪動作內部撞車。再例如:當擰蓋機構進行擰蓋時,擰蓋爪抓在瓶子上,如果此時拖板提前開始動作,則會將瓶子拉壞,甚至將模板掀翻。這屬于凸輪軸與非凸輪軸之間的碰撞。為避免這些問題的產生,編寫了一系列程序,部分程序如圖13所示。
圖13 進、出瓶模板的空間保護程序
圖13所示兩段程序是對進、出瓶模板的空間保護,當模板被氣缸頂起時,模板絕對不能拖動,否則會被掀翻。這里依舊采取通過對主軸位置的判斷,來判斷從軸。當主軸位置處于320和360之間時,模板被氣缸頂起,同時由模板開合軸將模板分開。如果此時氣缸突然下降,模板將來不及合攏,而被掀翻。此時可通過MC_ImmediateStop指令完成急停操作。
(6)曲柄的線性處理
整套設備采用了多個曲柄機構,比如灌裝、擰蓋升降等等。根據曲柄機構的特性,當伺服勻速旋轉時,曲柄機構的垂直速度并不是勻速的,并且垂直位置也不是線性變化的。而灌裝機構需要一個相對穩定的速度(主要是防止液體飛濺),和一個線性的標定(可以通過對伺服位置的設定,直接標定灌裝量)。解決速度基本恒定的方式如下:
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;
用以上公式,可以在灌裝伺服到達各個位置時,給予不同的速度,通過對角速度賦予“多段速”來實現垂直速度的基本恒定。再通過每10ms寫入一次速度的方式,來實現速度的變換。解決位置可標定的方法如下:
糾偏角度轉弧度:=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進給量/臨時數字;
通過平面解析幾何和三角函數運算,求得伺服角位置和曲柄垂直位置之間的線性關系。
最終實現,觸摸屏上面可以直接設定以“毫升”為單位的灌裝量值。
(7)凸輪表的變換
凸輪表編制好以后,每根軸都會按照自己的凸輪表數據進行重復運動。但是,如果更換了產品(主要是瓶子大小有變化),個別軸的動作就要發生變化。例如:把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;
在上述程序中,Cam_BottleOutUp00[IndexOutUp].Distance是出瓶頂升凸輪表的點,IndexOutUp是FOR循環語句的循環變量,通過FOR循環語句,將凸輪表內的若干個點依次更改,再通過如下指令進行保存,這樣,這根從軸就會按照新的凸輪表來進行運動了。
4結束語
通過系統現場調試及客戶的試生產,所有控制要求的解決方案都得以驗證,滿足客戶的改造需求,并且效果良好。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV