當(dāng)前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動化控制 > PLC可編程控制器
發(fā)布日期:2022-04-22 點擊率:59 品牌:MAC
如圖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ā)生的概率增加。
“撞車”的情況可以分為兩大類,一類是“凸輪動作”內(nèi)部碰撞,另一類是凸輪動作與非凸輪動作之間的碰撞。例如:進瓶抓瓶機構(gòu)與進瓶皮帶之間,由于進瓶抓瓶的原點位于進瓶皮帶上方,下移放瓶時需要水平和垂直兩根軸同時動作,才能繞過皮帶。如果此時進瓶水平軸由于種種原因沒有動作,只有垂直軸在動作,氣爪將直接砸在皮帶上,造成設(shè)備嚴(yán)重的損壞。這屬于凸輪動作內(nèi)部撞車。再例如:當(dāng)擰蓋機構(gòu)進行擰蓋時,擰蓋爪抓在瓶子上,如果此時拖板提前開始動作,則會將瓶子拉壞,甚至將模板掀翻。這屬于凸輪軸與非凸輪軸之間的碰撞。為避免這些問題的產(chǎn)生,編寫了一系列程序,部分程序如圖13所示。
圖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;
END_IF;
用以上公式,可以在灌裝伺服到達各個位置時,給予不同的速度,通過對角速度賦予“多段速”來實現(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;
在上述程序中,Cam_BottleOutUp00[IndexOutUp].Distance是出瓶頂升凸輪表的點,IndexOutUp是FOR循環(huán)語句的循環(huán)變量,通過FOR循環(huán)語句,將凸輪表內(nèi)的若干個點依次更改,再通過如下指令進行保存,這樣,這根從軸就會按照新的凸輪表來進行運動了。
4結(jié)束語
通過系統(tǒng)現(xiàn)場調(diào)試及客戶的試生產(chǎn),所有控制要求的解決方案都得以驗證,滿足客戶的改造需求,并且效果良好。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV