s7 200子程序,用的局部存储空间L在调用结束后就释放了!既然释放了,也就意味着别的子程序同样可以使用这部分存储空间。问题一:释放后,其存储地址存放的数据,仍旧是释放前的数据还是随机数据?问题二:既然已经释放了
那么比如说子程序1中用了一个L0.0,那么调用结束之后L0.0释放,那么当再次调用子程序1的时候,L0.0对应的逻辑地址和上一次调用的时候是同一个位置吗?
既然调用结束后就释放了,为什么可以用子程序做自锁呢?而且当调用同一个子程序多次时可能会出现逻辑混乱呢?求解各位
图片说明:
最佳答案
问题一:释放后,其存储地址存放的数据,仍旧是释放前的数据还是随机数据?
答:释放后,存储地中中还是释放前的数据,
问题二:
由于你的程序只有这一个子程序,而且只调用了一次,所有可以自锁
如果你的子程序在一个扫描周期被调用2次,外部的启停按钮是2套的话,你的这个子程序,就不能正常工作了
此时,你需要把子程序局部变量中的输出,修改为 IN_OUT型
提问者对于答案的评价:
首先感谢,你的答案!经过测试问题一正如你所说的一样。问题二的解决办法,也很正确。
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc214713.html