zhengyueyong
級(jí)別: *
![]() |
[各位老師,幫我編一下飲料灌裝機(jī)上用的灌裝放蓋程序,小生先在此萬分感謝! ![]() ![]() 這樣說吧,X2有信號(hào)后X1再輸入8個(gè)脈沖打開Y1,再過68個(gè)脈沖打開y2,如果只過來一個(gè)瓶子的話(x2亮一下)走8步(x1亮8次)后只開它這一個(gè)閥(Y1在X1亮8次時(shí)開,亮9次時(shí)關(guān))灌裝,再過68步后只給一個(gè)瓶蓋(Y2跟Y1一樣方式開關(guān)),其中x1是一直有脈沖的傳感器,機(jī)器動(dòng)一個(gè)工位亮一次,x2檢測(cè)有瓶信號(hào),來一個(gè)瓶子就亮一下,再過8個(gè)工位灌裝閥y1跟x1的信號(hào)同步打開,y2再延后68步,連續(xù)有瓶的話就一直打開! [ 此貼被zhengyueyong在2007-09-08 18:55重新編輯 ] |
---|---|
|
spc_cll
級(jí)別: 略有小成
![]() |
設(shè)置8+68個(gè)狀態(tài)標(biāo)志位,用來記錄各工位(每步)的狀態(tài),有瓶為On,無瓶為Off (當(dāng)瓶離開檢測(cè)區(qū)后,誰知道哪個(gè)工位步上是有瓶的呢,因此要記錄下來) 然后在每個(gè)工步循環(huán)中(x1亮一次))將標(biāo)志位向后移動(dòng)一位,在首位記錄該工步是否有瓶(x2亮一下) 檢測(cè)第8位是否為On,是則輸出y1=On,否則y1=Off. 檢測(cè)第8+68=76標(biāo)志是否為On,是則輸出y2=On,否則Y2=Off 檢測(cè)最后兩個(gè)標(biāo)志位(75,76),若都是On,則表示瓶連續(xù),否則不連續(xù). |
---|---|
|
zhengyueyong
級(jí)別: *
![]() |
謝謝樓上的大哥!這個(gè)看來要用到先進(jìn)先出堆?刂疲呛,要用8+68個(gè)寄存器,真夠復(fù)雜!我先試試看,搞不定再來請(qǐng)教各位師兄! |
---|---|
|
zhengyueyong
級(jí)別: *
![]() |
根據(jù)樓上大哥的指點(diǎn),我剛剛編了一段程序,先只用8工步做的,調(diào)試了好幾次都通過了,請(qǐng)師兄們指教一下,因?yàn)?步就這么難搞,68步的,呵呵.......看看我是不是太笨了,有沒有更好的辦法呢? |
---|---|
|
spc_cll
級(jí)別: 略有小成
![]() |
給你寫個(gè)簡(jiǎn)單的信號(hào)檢測(cè)及緩存的DELPHI程序,就幾行,你自己轉(zhuǎn)換為PLC程序 設(shè)狀態(tài)標(biāo)志數(shù)組為m[0..75] if x1=on then begin for i:=75 downto 1 do begin m:=m[i-1]; end; if x2=on then m[0]=on else m[0]:=off end; 上面的程序判斷工步信號(hào)X1是否到達(dá), 是則先將所有標(biāo)志為后移一位,即:M[75]=M[74],m[74]=[m[73].... 最高位m[75]被舍去,留出首位來存放本工步中是否有瓶的信號(hào)。 然后則判斷是否有瓶(x2信號(hào)), 有瓶(x2=on),則將首位標(biāo)志m[0]設(shè)置為On,否則設(shè)置為OFF ... 若用字寄存器,方法一樣的. 其他部分的PLC程序,相信不成問題了。 [ 此貼被spc_cll在2007-09-04 10:07重新編輯 ] |
---|---|
|
zhengyueyong
級(jí)別: *
![]() |
謝謝樓上的大哥,這幾天下來終于搞定了,這個(gè)是延后18步的程序! |
---|---|
|