调用子程序111

vd100的值没有mov给LD9,是子程序里vd100要改成局部变量LD1吗

问题补充:
LD9改成in out后在主程序里面还是输入vd100吗

图片说明:

调用子程序111    调用子程序111   

最佳答案

此回答已完善

子程序存在一个基本问题:临时变量未赋值先使用
当第一次执行此子程序,在M12.0上升沿先把VD100赋值给临时变量LD9,LD9再赋值给OUT参数LD5。但在第二次执行此子程序,VD100赋值给临时变量LD9不会执行,直接执行第三段把LD9赋值给OUT参数LD5,出现了临时变量未赋值先使用,这里LD9值是不确定的。
程序修改:删除子程序第三段,把LD9(初始距离)定义为IN_OUT参数,把VD100换成LD1
S7-200 SMART 系统手册
https://support.industry.siemens.com/cs/cn/zh/view/109745610
补充:
是的,作为操作数赋值给LD1(距离1),子程序中LD1值move给LD9

提问者对于答案的评价:
1

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc360736.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午11:36
下一篇 2021年7月5日 上午11:36

相关推荐

发表回复

登录后才能评论