quote:以下是引用猎隼在2008-03-24 16:01:04的发言:
怎么才能清除子程序退出后遗留的状态,这个在我的程序里是坚决不能有的.
这个思维也不能说没道理。
我想有两个层面的问题需要说明:
1、PLC上电时做初始化,把一些量初始化到预知的确定状态。当程序运行后,PLC内的所有变化,都是根据程序执行的结果,系统不可以自作主张改变。因此当程序用指令把Q0.0或Q0.1置为1后,如果没后续的指令(执行条件不成立了)去改变状态,它将一至维持;这是一种记忆能力,是PLC乃至计算机的基石。
2、全局变量和局部变量的区别。一般讲至全局变量,指V区、M区等,其实,I、Q、C、T等,都是全局变量。全局变量不会因为子程序的退出而蒸发掉。相比,局部变量L,当子程序执行完后,便蒸发掉了。
反过来可以这样问一下:如果子程不再调用了,里面用到的资源会复位,谁给的权力?天下是不是会大乱?!