PLC程序邏輯“不正確”原因分析
首先需要說明的是,這里所說的邏輯不正確,并不是說PLC有問題了,而是我們在調試程序時遇到的一種從常理來說不符合邏輯的一種現象。
有時我們在調試PLC程序時,會遇到程序邏輯不正確的情況,如下面的這些語句所示(三菱Q系列PLC):
按理說,能流已經通過了前面的節點,輸出線圈(B1117或B1116)就應該得電為1,為什么會造成現在這種情況呢?有時遇到這種情況可能百思不得其解,丈二和尚摸不著頭腦。其實造成這種情況無外乎有以下二方面的原因:
★ 輸出線圈的重復利用
★ PLC未掃描執行該部分程序
對于第一種情況,由于PLC是循環掃描的工作原理 ,對于同一程序段中的多個線圈,PLC只更新最后一個線圈的數字值(0或1),而對前面的線圈則會不予理會,當我們監控程序時,就會發現前面的線圈邏輯不對的情況。
解決方法:可利用編程軟件“軟元件查找”或“交叉使用表”的方法來觀察線圈在同一個程序是否重復利用,該線圈多次被使用,只要更換其它的線圈就可以了。
對于第二種情況,由于PLC未執行掃描此部分程序,此時也會出現邏輯不對的情況發生。造成PLC不執行部分程序的原因有很多原因,常見原因有如2個方面:
● 在PLC中使用跳轉(JUMP)語句過多,改變了PLC的掃描順序而跳過了部分程序,導致部分程序未執行,造成該段程序內的相關語句邏輯不正確;
部分程序未注冊。像一些PLC(如三菱PLC),你單純下載了程序還不行,你還需要注冊(需要下載PLC參數,),否則該部分程序不能運行,也會造成PLC程序邏輯不正確的情況發生。
使用JUMP語句造成邏輯錯誤的例子如下所示(SIEMENS PLC):
從例可以看出,當I0.0閉合時,由于PLC掃描跳過了網絡2(改變了PLC順序掃描的方向),所以PLC并不掃描網絡2,此時,網絡2中的I0.1和I0.2就是閉合了,Q0.0也不閉合。
此處,僅是一個簡單說明性的例子,如果程序很大,JUMP用的過多,則很容易造成PLC邏輯“不正確”的現象發生,這種情況就不容易看出來了。因此建議在程序中要盡是少用JUMP語句,可以使用調用子程序的方法來實現同樣的功能。
本文標簽:PLC程序邏輯“不正確”原因分析
* 由于無法獲得聯系方式等原因,本網使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《PLC程序邏輯“不正確”原因分析》相關權利人與機電之家網取得聯系。










