我簡單的舉一個例子來說一下,如下是西門子200PLC中的一段程序,這個程序存在明顯的編譯錯誤,和一些不明顯的要依據(jù)實際功能來判定的錯誤,下邊我來分析一下:
1,先來看一下編譯錯誤:這個圖片就是PLC編程軟件編譯后給出的錯誤提示,其實上邊的圖片已經(jīng)明顯的給出了錯誤的地方,就是有紅色波浪線的地方!
MW12是一個字長數(shù)據(jù),而對其操作的指令MOV_B是一個對字節(jié)操作的指令,因此這里需要把MW12改為MB12,或者把指令改成MOV_W指令!
比較指令MB10和1000比較這里,因為MB10是一個字節(jié)其能表示的范圍是0-255,所以1000明顯超出這個字節(jié)的表示范圍,就被紅色波浪線提示錯誤了!
2,再來看一下功能錯誤:
這段程序有2個值得商榷的功能錯誤:
第①處就是網(wǎng)絡(luò)1的SM0.0,此處根據(jù)后邊把變量賦予一個0的初始值,這段程序應(yīng)該是初始化程序,那么就應(yīng)該使用SM0.1才是初始化點!
第②出就是網(wǎng)絡(luò)1中的SET指令和網(wǎng)絡(luò)3中的RESET指令,初始化的時候使用set指令置位了M0.0開始的8個點,而網(wǎng)絡(luò)3復(fù)位的時候只復(fù)位了M0.0這一個點!---一般來說set和reset應(yīng)該是對應(yīng)的,也就是說網(wǎng)絡(luò)3處也應(yīng)該是復(fù)位M0.0-M0.7這8個點!(當(dāng)然,要根據(jù)實際的情況來判定!)
以上就是PLC的梯形圖程序怎么看對錯的一個簡單舉例,可以看到梯形圖中的程序錯誤,在一段比較短的程序中,用肉眼分析是可以分析出來對錯的,但是沒有編譯器加入效率高。同時,還應(yīng)該看到編譯器雖然可以發(fā)現(xiàn)一些硬性的錯誤,但是程序是否能夠達到最終的控制要求,也就是說功能上的錯與對,就需要編程人員自己多多測試,去發(fā)現(xiàn)了!