我考慮了一下這個(gè)程序,實(shí)際上影響該結(jié)果的還是我們經(jīng)常討論的一些內(nèi)容:PLC的掃描方式,PLC的雙線圈問(wèn)題。
對(duì)于臺(tái)達(dá)PLC而言,每次掃描到PLS指令時(shí),它只判斷PLS前面的條件是否有OFF-->ON的過(guò)程,有則會(huì)將線圈導(dǎo)通一個(gè)掃描周期;當(dāng)然因?yàn)殡p線圈的存在,之后遇到新的線圈觸點(diǎn)后它就又判斷后一個(gè)PLS的條件,有OFF-->ON的過(guò)程則繼續(xù)導(dǎo)通,否則斷開(kāi)。在這種情況下線圈當(dāng)然無(wú)法再保持一個(gè)掃描周期了。。(可以理解為,第一個(gè)PLS后線圈的結(jié)果不會(huì)帶到下一個(gè)PLS中去。)
再回到這段程序,如果沒(méi)有FOR K100……NEXT的循環(huán),那么在C1=K44的時(shí)候,最后邊的這個(gè)M120是有可能導(dǎo)通的,但因?yàn)橛辛搜h(huán)程序,在第二次循環(huán)時(shí)C1=K44的條件仍然滿足著,所以沒(méi)有了OFF-->ON的過(guò)程,PLS M120指令執(zhí)行后M120就被斷開(kāi),最終跳出循環(huán)程序的結(jié)果就是M120無(wú)法被導(dǎo)通。那么在C1等于其他值的時(shí)候,M120也只是在執(zhí)行第一次循環(huán)時(shí)能夠被導(dǎo)通一下,再掃描到下一個(gè)PLS M120的時(shí)候就會(huì)立即被斷開(kāi),最終的結(jié)果也是M120無(wú)法被導(dǎo)通。
----------------------
而對(duì)于三菱的PLC,它不僅看PLS前面的條件是否有OFF-->ON的過(guò)程,還要看上一行程序中線圈觸點(diǎn)的條件是否為ON,可以理解為上一個(gè)PLS的結(jié)果會(huì)帶到下一個(gè)PLS上來(lái)。所以連續(xù)的幾個(gè)PLS條件都滿足的話,它只有第一個(gè)PLS指令會(huì)將線圈導(dǎo)通。而如果這幾個(gè)連續(xù)的PLS中間有一個(gè)條件是OFF的,那么該指令執(zhí)行后會(huì)將線圈的狀態(tài)刷新為OFF,在之后緊接著的一個(gè)PLS指令后又能導(dǎo)通一個(gè)線圈。。。如此循環(huán)。
所以如果這段程序是用于三菱的PLC,那么結(jié)果就會(huì)變成這樣:
1.無(wú)視循環(huán)程序的存在,循環(huán)程序不會(huì)影響到最終M120的結(jié)果;
2.如果C1=K7、M607為ON,則第一個(gè)PLS是能夠?qū)120導(dǎo)通的,直到第二個(gè)PLS指令執(zhí)行后將M120斷開(kāi);
3.在C1=K7、M607為ON時(shí),即使將C1=...的條件去掉,強(qiáng)行置位其他各PLS指令的導(dǎo)通條件,其他的PLS指令也不能導(dǎo)通M120;
4.如果C1=K44、M660為ON,其他的PLS指令的條件都不能滿足,則執(zhí)行完C1=K44這行的PLS指令后M120會(huì)被導(dǎo)通;即使有FOR……NEXT的循環(huán)程序,在最后一個(gè)循環(huán)執(zhí)行完C1=K44這行的PLS指令后,M120也是導(dǎo)通的,一直維持到本次掃描到END指令。