首先需要說(shuō)明的是,這里所說(shuō)的邏輯不正確,并不是說(shuō)PLC有問(wèn)題了,而是我們?cè)谡{(diào)試程序時(shí)遇到的一種從常理來(lái)說(shuō)不符合邏輯的一種現(xiàn)象。
有時(shí)我們?cè)谡{(diào)試PLC程序時(shí),會(huì)遇到程序邏輯不正確的情況,如下面的這些語(yǔ)句所示(三菱Q系列PLC):
按理說(shuō),能流已經(jīng)通過(guò)了前面的節(jié)點(diǎn),輸出線圈(B1117或B1116)就應(yīng)該得電為1,為什么會(huì)造成現(xiàn)在這種情況呢?有時(shí)遇到這種情況可能百思不得其解,丈二和尚摸不著頭腦。其實(shí)造成這種情況無(wú)外乎有以下二方面的原因:
★ 輸出線圈的重復(fù)利用
★ PLC未掃描執(zhí)行該部分程序
對(duì)于第一種情況,由于PLC是循環(huán)掃描的工作原理 ,對(duì)于同一程序段中的多個(gè)線圈,PLC只更新最后一個(gè)線圈的數(shù)字值(0或1),而對(duì)前面的線圈則會(huì)不予理會(huì),當(dāng)我們監(jiān)控程序時(shí),就會(huì)發(fā)現(xiàn)前面的線圈邏輯不對(duì)的情況。
解決方法:可利用編程軟件“軟元件查找”或“交叉使用表”的方法來(lái)觀察線圈在同一個(gè)程序是否重復(fù)利用,該線圈多次被使用,只要更換其它的線圈就可以了。
對(duì)于第二種情況,由于PLC未執(zhí)行掃描此部分程序,此時(shí)也會(huì)出現(xiàn)邏輯不對(duì)的情況發(fā)生。造成PLC不執(zhí)行部分程序的原因有很多原因,常見(jiàn)原因有如2個(gè)方面:
● 在PLC中使用跳轉(zhuǎn)(JUMP)語(yǔ)句過(guò)多,改變了PLC的掃描順序而跳過(guò)了部分程序,導(dǎo)致部分程序未執(zhí)行,造成該段程序內(nèi)的相關(guān)語(yǔ)句邏輯不正確;
部分程序未注冊(cè)。像一些PLC(如三菱PLC),你單純下載了程序還不行,你還需要注冊(cè)(需要下載PLC參數(shù),),否則該部分程序不能運(yùn)行,也會(huì)造成PLC程序邏輯不正確的情況發(fā)生。
使用JUMP語(yǔ)句造成邏輯錯(cuò)誤的例子如下所示(SIEMENS PLC):
從例可以看出,當(dāng)I0.0閉合時(shí),由于PLC掃描跳過(guò)了網(wǎng)絡(luò)2(改變了PLC順序掃描的方向),所以PLC并不掃描網(wǎng)絡(luò)2,此時(shí),網(wǎng)絡(luò)2中的I0.1和I0.2就是閉合了,Q0.0也不閉合。
此處,僅是一個(gè)簡(jiǎn)單說(shuō)明性的例子,如果程序很大,JUMP用的過(guò)多,則很容易造成PLC邏輯“不正確”的現(xiàn)象發(fā)生,這種情況就不容易看出來(lái)了。因此建議在程序中要盡是少用JUMP語(yǔ)句,可以使用調(diào)用子程序的方法來(lái)實(shí)現(xiàn)同樣的功能。