初學(xué)PLC梯形圖編程,應(yīng)要遵循一定的規(guī)則,并養(yǎng)成良好的習(xí)慣。下面以三菱FX系列PLC為例,簡(jiǎn)單介紹一下PLC梯形圖編程時(shí)需要遵循的規(guī)則,希望對(duì)大家有所幫助。有一點(diǎn)需要說(shuō)明的是,本文雖以三菱PLC為例,但這些規(guī)則在其它PLC編程時(shí)也可同樣遵守。
一,梯形階梯都是始于左母線,終于右母線(通常可以省掉不畫(huà),僅畫(huà)左母線)。每行的左邊是接點(diǎn)組合,表示驅(qū)動(dòng)邏輯線圈的條件,而表示結(jié)果的邏輯線圈只能接在右邊的母線上。接點(diǎn)不能出現(xiàn)在線圈右邊。如下圖(a)應(yīng)改為(b):
二,接點(diǎn)應(yīng)畫(huà)在水平線上,不應(yīng)畫(huà)在垂直線上,如下圖(a)中的接點(diǎn)X005與其它接點(diǎn)間的關(guān)系不能識(shí)別。對(duì)此類橋式電路,應(yīng)按從左到右,從上到下的單向性原則,單獨(dú)畫(huà)出所有的去路。如圖(b)所示:
三,并聯(lián)塊串聯(lián)時(shí),應(yīng)將接點(diǎn)多的去路放在梯形圖左方(左重右輕原則);串聯(lián)塊并聯(lián)時(shí),應(yīng)將接點(diǎn)多的并聯(lián)去路放在梯形圖的上方(上重下輕的原則)。這樣做,程序簡(jiǎn)潔,從而減少指令的掃描時(shí)間,這對(duì)于一些大型的程序尤為重要。如下圖所示:
四,不宜使用雙線圈輸出。若在同一梯形圖中,同一組件的線圈使用兩次或兩次以上,則稱為雙線圈輸出或線圈的重復(fù)利用。雙線圈輸出一般梯形圖初學(xué)者容易犯的毛病之一。在雙線圈輸出時(shí),只有最后一次的線圈才有效,而前面的線圈是無(wú)效的。這是由PLC的掃描特性所決定的。
PLC的CPU采用循環(huán)掃描的工作方式。一般包括五個(gè)階段(如圖所示):內(nèi)部診斷與處理,與外設(shè)進(jìn)行通訊,輸入采樣,用戶程序執(zhí)行和輸出刷新。當(dāng)方式開(kāi)關(guān)處于STOP時(shí),只執(zhí)行前兩個(gè)階段:內(nèi)部診斷與處理,與外設(shè)進(jìn)行通訊。
1,輸入采樣階段
PLC順序讀取每個(gè)輸入端的狀態(tài),并將其存入到我們稱之為輸入映像寄存器的內(nèi)在單元中。當(dāng)進(jìn)入程序執(zhí)行階段,如輸入端狀態(tài)發(fā)生改變.輸入映象區(qū)相應(yīng)的單元信息并不會(huì)跟著改變,只有在下一個(gè)掃描周期的輸入采樣階段,輸入映象區(qū)相應(yīng)的單元信息才會(huì)改變。因此,PLC會(huì)忽視掉小于掃描周期的輸入端的開(kāi)關(guān)量的脈沖變化。
2,程序執(zhí)行階段
PLC從程序0步開(kāi)始,按先上后下,先左后右的順序掃描用戶程序并進(jìn)行邏輯運(yùn)算。PLC按輸入映象區(qū)的內(nèi)容進(jìn)行邏輯運(yùn)算,并把運(yùn)算結(jié)果寫(xiě)入到輸出映象區(qū),而不是直接輸出到端子。
3,輸出刷新階段
PLC根據(jù)輸出映象區(qū)的內(nèi)容改變輸出端子的狀態(tài)。這才是PLC的實(shí)際輸出。
以上簡(jiǎn)單說(shuō)明了PLC的工作原理,下面我們?cè)僖詫?shí)例說(shuō)明為什么編寫(xiě)梯形圖程序,不宜重復(fù)使用線圈。如下圖所示,設(shè)輸入采樣時(shí),輸入映象區(qū)中X001=ON,X002=OFF,Y003-ON,Y004=ON被實(shí)際寫(xiě)入到輸出映象區(qū)。但繼續(xù)往下執(zhí)行時(shí),因X002=OFF,使Y003=OFF,這個(gè)后入為的結(jié)果又被寫(xiě)入輸出映象區(qū),改變?cè)璝003的狀態(tài)。所以在輸出刷新階段,實(shí)際外部輸出Y003=OFF,Y004=ON。許多新手就碰到過(guò)這樣的問(wèn)題,為什么X001已經(jīng)閉合了,而Y003沒(méi)有輸出呢?邏輯關(guān)系不對(duì)。其實(shí)就是因?yàn)殡p線圈使用造成的。
注意:我們所說(shuō)的是不宜(最好不要)使用雙線圈,雙線圈使用并不是絕對(duì)禁止的,在一些特殊的場(chǎng)合也可以使用雙線圈,這時(shí)就需要你有較豐富的編程經(jīng)驗(yàn)和技巧了。下面我們會(huì)談到這一點(diǎn)。但對(duì)于初學(xué)者還是不要冒這個(gè)險(xiǎn)。其實(shí),從以上的例子可以看出,重復(fù)利用線圈之所以會(huì)造成Y003的輸出混亂,是由于程序是從上到下順序執(zhí)行的緣故造成的。但如果我們可以改變程序執(zhí)行的順序,保證在任何時(shí)刻兩個(gè)線圈只有一個(gè)驅(qū)動(dòng)邏輯發(fā)生,就可以使用雙線圈。其中,最常用的方法就是使用跳轉(zhuǎn)指令。如下圖所示:
程序分析:M0閉合,程序跳至P0處(不執(zhí)行X001語(yǔ)句),M0常閉斷開(kāi),CJ P1不會(huì)發(fā)生,執(zhí)行下一語(yǔ)句。此時(shí),Y003將X002狀態(tài)進(jìn)行驅(qū)動(dòng)。M0斷開(kāi)時(shí),程序順序執(zhí)行并按X001的狀態(tài)對(duì)T003進(jìn)行驅(qū)動(dòng),M0常閉閉合,跳至P1按X003狀態(tài)對(duì)Y004進(jìn)行驅(qū)動(dòng),即跳過(guò)了X002驅(qū)動(dòng)Y003的語(yǔ)句??梢?jiàn),在同一時(shí)刻,Y003驅(qū)動(dòng)只有一個(gè)可以發(fā)生。此時(shí),雙線圈利用是可以的。
但在梯形圖編程時(shí),我們還是要盡量避免使用雙線圈,而引入輔助繼電器是一個(gè)常用的方法。如下圖所示:
圖(b)中,X001和X002接點(diǎn)控制輔助繼電器M000,X003~X005接點(diǎn)控制輔助繼電器M001,再由兩個(gè)繼電器M000,M001接點(diǎn)的并聯(lián)組合去控制線圈Y000。這樣邏輯關(guān)系沒(méi)變,卻把雙線圈變成單線圈。