抖音粉丝群1
『7x24小时有问必答』


局部变量存储器L的使用陷阱

新建两个子程序SBR_0、SBR_1,在子程序中定义IN1、IN2、OUT三个临时变量,编写程序:当IN1置位时,把输入变量IN2值赋给输出变量OUT
1.jpeg
在主程序中调用这两个子程序
2.png
编译下载到PLC并运行。当M10.0置位时,VW10=88,符合编程目的。但M10.1并没有置位VW12的值也变成了88,这就不符合逻辑了。
3.png
为什么会这样,这就是使用局部变量存储器L要注意的一个陷阱。因为当子程序SBR_0执行完后,使用的局部变量存储器在重新赋值前是不会自动释放的,而SBR_0、SBR_1变量OUT的地址为LW3是相同的,跟着调用子程序SBR_1时,LW3=88的值传递给了VW12。
大家在编程的时候要注意了。




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码