S7-200子程序中局部存储变量的用法疑惑 点击:359 | 回复:8



非凡2013

    
  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:3
  • 历史总积分:1036
  • 注册:2013年6月17日
发表于:2013-11-12 16:17:35
楼主

   在编写子程序时用到了局部变量L,当一次循环子程序后L中的数据会保存吗?当下次扫描这个子程序时会L自动清零吗?现在我编写的子程序循环第二次时会保持第一次的值,有知道怎么回事的吗?谢谢




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2013-11-12 16:50:58
1楼

L数据,即临时区数据,在子程序调用完毕后即抛弃,系统不会清零,每次调用时会重新分配。


第二次保持第一次的值,代表没有其他子程序被调用,因此当前的L区域没有被改写,因此保持原先的值。


非凡2013

  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:3
  • 历史总积分:1036
  • 注册:2013年6月17日
发表于:2013-11-12 17:11:19
2楼

回复内容:

对: yuanle L数据,即临时区数据,在子程序调用完毕后即抛弃,系统不... 内容的回复!


哦  那我想把L区数值初始化,怎样做呢?我加一个传送0的指令,导致子程序结束后一直为零,这让我很郁闷啊。请再帮一下吧

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2013-11-12 18:53:13
3楼

回复内容:

对: 非凡2013 回复内容:对: yuanle  L数据,即临时区数据,... 内容的回复!


对于L区的变量,需要遵循先赋值后使用的原则。

阿水--王者之师

  • 精华:25帖
  • 求助:348帖
  • 帖子:1617帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2013-11-12 22:04:51
4楼

  我只知道  L 临时数据,即临时区存储区,就相当于中转站一样,在子程序调用完毕后即抛弃,系统不会清零

welfare87

  • 精华:0帖
  • 求助:4帖
  • 帖子:44帖 | 2827回
  • 年度积分:0
  • 历史总积分:25853
  • 注册:2009年2月20日
发表于:2013-11-12 22:57:39
5楼

L中的数据不会保存,每次调用时要给这些寄存器一个确定的值

非凡2013

  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:3
  • 历史总积分:1036
  • 注册:2013年6月17日
发表于:2013-11-13 12:34:37
6楼

回复内容:

对: welfare87 L中的数据不会保存,每次调用时要给这些寄存器一个确定的值 内容的回复!


那我再次执行这个子程序下时为什么会保存上次的值呢?

非凡2013

  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:3
  • 历史总积分:1036
  • 注册:2013年6月17日
发表于:2013-11-13 12:35:04
7楼

回复内容:

对: 阿水--王者之师    我只知道  L 临时数据,即临时区存储区,就相当... 内容的回复!


子程序中如何对L区初始化?

非凡2013

  • 精华:0帖
  • 求助:54帖
  • 帖子:64帖 | 350回
  • 年度积分:3
  • 历史总积分:1036
  • 注册:2013年6月17日
发表于:2013-11-13 12:35:42
8楼

回复内容:

对: yuanle 回复内容:对: 非凡2013  回复内容:对: yua... 内容的回复!


在哪赋值呢?


热门招聘
相关主题

官方公众号

智造工程师