125510819
www.xueplc.com
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 249 個
工控威望: 462 點
下載積分: 1321 分
在線時間: 54(小時)
注冊時間: 2010-01-23
最后登錄: 2018-09-02
查看125510819的 主題 / 回貼
樓主  發(fā)表于: 2011-07-06 11:24
說實話,好幾年沒用過PLC了;今看到一個以前的試驗程序,看起來蠻“拗口”的,參見附圖1。程序原用GX Developer編制,F(xiàn)X2N;現(xiàn)移植為用臺達WPLSoft 2.12編制,ES2。
該段程序的要求是:實現(xiàn)Y1~Y5的順序移位,并可任意取消某位或某幾位;也就是,若取消Y2,則Y1接通之后,滿足條件后Y1斷開、Y3接通,而不是Y2接通。
這可能是,當時為編制某程序而作的準備,應當是程序中要求有類似的功能(原程序未保留)。比如,五個加工工位,每次僅允許一個加工,若某工位未準備好,則跳過該工位。
該程序的方法,似不太順暢——要實現(xiàn)該功能,還可以如何編制程序呢?
此主題相關圖片如下,點擊圖片看大圖:


重新閱讀該段程序后,得出其編程思路是:若取消某位,則移位到該位為1時,再使之移一位。
為便于描述,用梯形圖左母線旁的步序號為“行號”(行塊號)。
附,對附圖1程序的解讀:

0行:接通一次X0,T0延時1秒接通,即使X0信號抖動,也不會多次給出信號;這是防外部觸點抖動的另一種思路。T0接通一次,M31~M36左移一位。
8行:給出移位的初始信號M10。
10行:當M31接通后,復位復位M10。
14行:移位指令,實現(xiàn)M31~M36的每次一位移位;此處M1無作用。
25行:下一個循環(huán)時,使M31置位,即M31與M36同時接通。
27行:復位M31,此時M32已接通,仍是實現(xiàn)M31與M36同時接通。
33~53行:產(chǎn)生D10的移位信號。
58行:D10賦初值。
64行:實現(xiàn)D10的移位。
75~114行:若取消某位,則該位被移除。
比如,取消Y2(使Y1接通直接轉(zhuǎn)到Y(jié)3接通),則這時使X2接通;
設先有Y1接通(M31等接通),此時來一個移位信號后,有M32接通,執(zhí)行38行、產(chǎn)生M62信號(M62脈沖接通),于64行D10移一位;這時D10的各位為 0000 0000 0000 0100;
由于M62接通、又X2接通,故執(zhí)行到88行時,D10再移一位,結(jié)果為 0000 0000 0000 1000;執(zhí)行后續(xù)程序,使M93接通,Y3接通。
127行:若為取消第5位,則將D10賦初值。
138行:當D10移位至b6位以上接通時,則D10賦初值。
148行:將D10的值,送至K2M90(M90~M105),以達控制目的。
154~166行:實現(xiàn)Y1~Y5的控制目的。
169行:程序結(jié)束。
該程序僅是給出一種思路,不是實用程序;程序移植后(并將138行與127行指令位置作了交換),也未進行試驗。
比如,粗看起來,當取消某位,D10進行“額外”的移位后,則M31~M36并沒有進行相應的移位;可能的方法,是將D10的內(nèi)容,再返回到M31~M36。
近千套 PLC.觸摸屏 例程,免費共享 http://pan.baidu.com/s/1c1uxlxm 關注www.xueplc.com 長期更新