昨日在调试一台别人编的S7-300程序,遇到一个怪现象。我想在OB1中做一个“常0”和“常1”来使用。共写了如下4条指令。
CLR
= M1.7 //常0
SET
= M2.0 //常1
这个程序已经在多个不同的程序中得到了验证,是正确的。程序编译下载以后发现:M2.0,在FC中显示为“1”可以正常使用,但在GRAPH程序中显示总是“0”。不知道是什么原因,查不出来。后来干脆将这个点换到其它地方,就显示正常了。
再后来发现,这是该编程者犯了一个常识性的错误,在做触摸屏的时候将屏的按钮地址定义在常用的存储区MW2-MW12之间;在程序中又将这一存储区,写成其它常用中间变量如M2.0,触摸屏按键平时一般不被按下,中间变量总是在被不断地清零。
本例子介绍给大家,希望引以为戒。在触摸屏使用过程中,屏幕输入输出域的地址定义数据一般选择一些较大的存储区如MW200,MW300以上,以免和常用的小地址发生冲突。