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