中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

关于S7200子程序相互干涉的问题,哪位有经验的老...

 呼叫老马

下载贤集网APP入驻自媒体

关于S7200子程序相互干涉的问题,哪位有经验的老师能给予指教!
用S7200编程用到两个子程序,一个是水泵运行的子程序,一个是模拟量处理的子程序。水泵运行子程序在主程序网络5,用到了L14.0-L14.3来输出水泵,模拟量子程序在主程序网络6,用到了LD14来存放液位,发现有时会出现这样污泥泵不该运行但还是有输出的情况,
求教:子程序里面的L存储器调用是公用的吗?第一个子程序里面的L数值还会保留到另一个子程序中,导致干涉。这有在子程序前面加一个把L都复位,是否就不会发生干涉了?

最新回复
发布回复
L是局部变量,两个子程序的L不会重复。程序中的每个程序组织单元,均有自己的64字节局部变量表。仔细的检查下程序是不是其他地方出问题了。
L是局部变量,它两个子程序的l是不会重复的,而且程序中的每个程序组织单元都是有一个自己的局部编程表的,可以对它的程序进行一个仔细的检查,看看是否是其他的问题
这两个子程序的l是不会重复的,因为它们是局部变量,它每个程序中的l都是分别运行的,不会互相影响,可以仔细检查一下它的程序,进行一个更加合理的设计
同一嵌套级别的程序的L区是公用的,后调用的同一级子程序的局部数据会覆盖上一次调用的子程序的局部数据。
我认为可能是因为程序变量有冲突,所以再次调用时被清零了,而且子程序里面的L存储器调用确实是公用的。
题主,编织出的程序中每个组织单元都有对应的64字节局部变量表,出现干涉问题时联系你检查一下是不是程序出现了问题。
我的想法是程序中的每个程序组织单元都是有一个自己的局部编程表的

为您推荐

热门交流