信仰的真相
楼主在用S7200编程的时候,用到两个子程序,一个是水泵运行的子程序,一个是模拟量处理的子程序。
水泵运行子程序在主程序网络5,用到了L14.0-L14.3来输出水泵,
模拟量子程序在主程序网络6,用到了LD14来存放液位
然后发现有时会出现
这样污泥泵不该运行但还是有输出的情况,
楼主的问题:1,子程序里面的L存储器调用是公用的吗,第一个子程序里面的L数值还会保留到另一个子程序中,导致干涉
2,我这有在子程序前面加一个把L都复位,
是不是就不会发生干涉了
zhu860423060
L14.0-L14.3和LD14重复使用
秦君_1
引用 zhu860423060 的回复内容: L14.0-L14.3和LD14重复使用
轨迹QR
L是局部变量,两个子程序的L不会重复。程序中的每个程序组织单元(包括主程序、子程序和中断程序),均有自己的64字节局部变量表。仔细的检查下程序是不是其他地方出问题了。
银光人生—华
建议:
1、换个地址试试,正如楼上说的,也许地址重叠了。2、楼主初始化L应该用SM0.1
3、是否有别的地方地址重叠,建议你可以把程序截图上传上来,这样更全面一点。
aihua101
回复内容:
对: 轨迹QR L是局部变量,两个子程序的L不会重复。程序中的每个程序... 内容的回复!
你的程序有问题!不是L数据重叠的原因!
建议你看看工控老鬼的一篇博文 http://blog.sina.com.cn/s/blog_669692a60101hdkl.html
我去西门子官网找资料,楼上说的都不对,子程序里面的L如果是OUT类型会调用前面的子程序数据
xdnn
谢谢提供的技术信息,好好学习l
autosoeasy
在两个不同的子程序中相同的L(局部变量),是不会冲突的。有其他问题
fypy
很多时候是忘记了先赋值再使用原则。
ntplc2017
L单元表示临时寄存器, 它只能从这个子程序的参数传给L,然后再用来控制, 不能够在本子程序里面还没给它传参数就直接使用。不同子程序之间的L单元是共用的。