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