zhengyueyong
級別: *
|
[各位老師,幫我編一下飲料灌裝機上用的灌裝放蓋程序,小生先在此萬分感謝!工控是三菱FX2N80MR,大概控制是這樣的,機器每走一步(進一個瓶或是出去一個瓶),傳感器X1給出一個信號(跟脈沖差不多),這個信號用來計算運轉速度,同時是放蓋閥和灌裝閥的同步信號,運轉的機器開始進瓶,沖洗,過渡到灌裝區的入口有傳感器X2,信號跟X1一樣,感應到有瓶后機器再走8步,要求打開灌裝閥Y1,開始灌裝,連續有瓶時Y1是一直有輸出的,X2無信號時機器走8步關Y1。開灌裝閥Y1之后68步開放蓋閥Y2,Y2跟Y1一樣,有瓶過來一直打開![ 這樣說吧,X2有信號后X1再輸入8個脈沖打開Y1,再過68個脈沖打開y2,如果只過來一個瓶子的話(x2亮一下)走8步(x1亮8次)后只開它這一個閥(Y1在X1亮8次時開,亮9次時關)灌裝,再過68步后只給一個瓶蓋(Y2跟Y1一樣方式開關),其中x1是一直有脈沖的傳感器,機器動一個工位亮一次,x2檢測有瓶信號,來一個瓶子就亮一下,再過8個工位灌裝閥y1跟x1的信號同步打開,y2再延后68步,連續有瓶的話就一直打開! [ 此貼被zhengyueyong在2007-09-08 18:55重新編輯 ] |
---|---|
|
spc_cll
級別: 略有小成
|
設置8+68個狀態標志位,用來記錄各工位(每步)的狀態,有瓶為On,無瓶為Off (當瓶離開檢測區后,誰知道哪個工位步上是有瓶的呢,因此要記錄下來) 然后在每個工步循環中(x1亮一次))將標志位向后移動一位,在首位記錄該工步是否有瓶(x2亮一下) 檢測第8位是否為On,是則輸出y1=On,否則y1=Off. 檢測第8+68=76標志是否為On,是則輸出y2=On,否則Y2=Off 檢測最后兩個標志位(75,76),若都是On,則表示瓶連續,否則不連續. |
---|---|
|
zhengyueyong
級別: *
|
謝謝樓上的大哥!這個看來要用到先進先出堆?刂疲呛牵8+68個寄存器,真夠復雜!我先試試看,搞不定再來請教各位師兄! |
---|---|
|
zhengyueyong
級別: *
|
根據樓上大哥的指點,我剛剛編了一段程序,先只用8工步做的,調試了好幾次都通過了,請師兄們指教一下,因為8步就這么難搞,68步的,呵呵.......看看我是不是太笨了,有沒有更好的辦法呢? |
---|---|
|
spc_cll
級別: 略有小成
|
給你寫個簡單的信號檢測及緩存的DELPHI程序,就幾行,你自己轉換為PLC程序 設狀態標志數組為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; 上面的程序判斷工步信號X1是否到達, 是則先將所有標志為后移一位,即:M[75]=M[74],m[74]=[m[73].... 最高位m[75]被舍去,留出首位來存放本工步中是否有瓶的信號。 然后則判斷是否有瓶(x2信號), 有瓶(x2=on),則將首位標志m[0]設置為On,否則設置為OFF ... 若用字寄存器,方法一樣的. 其他部分的PLC程序,相信不成問題了。 [ 此貼被spc_cll在2007-09-04 10:07重新編輯 ] |
---|---|
|
zhengyueyong
級別: *
|
謝謝樓上的大哥,這幾天下來終于搞定了,這個是延后18步的程序! |
---|---|
|