局部变量存储器L的使用陷阱
新建两个子程序SBR_0、SBR_1,在子程序中定义IN1、IN2、OUT三个临时变量,编写程序:当IN1置位时,把输入变量IN2值赋给输出变量OUT 在主程序中调用这两个子程序 编译下载到PLC并运行。当M10.0置位时,VW10=88,符合编程目的。但M10.1并没有置位VW12的值也变成了88,这就不符合逻辑了。 为什么会这样,这就是使用局部变量存储器L要注意的一个陷阱。因为当子程序SBR_0执行完后,使用的局部变量存储器在重新赋值前是不会自动释放的,而SBR_0、SBR_1变量OUT的地址为LW3是相同的,跟着调用子程序SBR_1时,LW3=88的值传递给了VW12。 大家在编程的时候要注意了。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
|