我简单的举一个例子来说一下,如下是西门子200PLC中的一段程序,这个程序存在明显的编译错误,和一些不明显的要依据实际功能来判定的错误,下边我来分析一下:
1,先来看一下编译错误:这个图片就是PLC编程软件编译后给出的错误提示,其实上边的图片已经明显的给出了错误的地方,就是有红色波浪线的地方!
MW12是一个字长数据,而对其操作的指令MOV_B是一个对字节操作的指令,因此这里需要把MW12改为MB12,或者把指令改成MOV_W指令!
比较指令MB10和1000比较这里,因为MB10是一个字节其能表示的范围是0-255,所以1000明显超出这个字节的表示范围,就被红色波浪线提示错误了!
2,再来看一下功能错误:
这段程序有2个值得商榷的功能错误:
第①处就是网络1的SM0.0,此处根据后边把变量赋予一个0的初始值,这段程序应该是初始化程序,那么就应该使用SM0.1才是初始化点!
第②出就是网络1中的SET指令和网络3中的RESET指令,初始化的时候使用set指令置位了M0.0开始的8个点,而网络3复位的时候只复位了M0.0这一个点!---一般来说set和reset应该是对应的,也就是说网络3处也应该是复位M0.0-M0.7这8个点!(当然,要根据实际的情况来判定!)
以上就是PLC的梯形图程序怎么看对错的一个简单举例,可以看到梯形图中的程序错误,在一段比较短的程序中,用肉眼分析是可以分析出来对错的,但是没有编译器加入效率高。同时,还应该看到编译器虽然可以发现一些硬性的错误,但是程序是否能够达到最终的控制要求,也就是说功能上的错与对,就需要编程人员自己多多测试,去发现了!