s7-200PLC中的临时变量的生命周期 点击:1345 | 回复:4



chenxiaohui033

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 49回
  • 年度积分:0
  • 历史总积分:58
  • 注册:2006年6月23日
发表于:2009-09-24 15:41:01
楼主

                        请教一个问题,做个子程序,多次调用,但是不是同时调用,想使用临时变量,想知道临时变量的生命周期,也就是说,临时变量的值什么时候改变,是扫描过后就改变还是要到子程序的EN 为0 时才改变数值。

                 非常想知道,在线等。




[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-09-24 19:58:29
1楼

子程序有个参数区,参数区中的临时变量跟高级语言一样,是在“栈”中分配的,一进入子程序时分配,

子程序结束时“栈”释放,监时变量消失。 会计算机高级语言的人对“栈”的概念就清楚了

chenxiaohui033

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 49回
  • 年度积分:0
  • 历史总积分:58
  • 注册:2006年6月23日
发表于:2009-09-29 14:22:01
2楼

PLC中程序的执行和计算机不大一样,PLC 中程序的执行是按扫描周期一遍一遍的刷新,遇到了子程序并不会在一个扫描周期执行完,有些子程序可能需要好几个扫描周期才能执行完毕。而计算机里是顺序执行,遇到子程序要到执行完才执行下边的。

我的意思是,临时变量是要等子程序执行完成才释放还是,在一次扫描周期对它扫过后就释放。

这里如果EN 不为0,并且子程序在一个扫描周期无法执行完,那么在本次扫描周期结束后,它会释放这些临时变量吗,还是非要等到EN为0时才能释放?

九灭重生

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 175回
  • 年度积分:0
  • 历史总积分:130
  • 注册:2007年4月04日
发表于:2009-09-29 15:07:29
3楼

一个周期一释放,如果不释放程序就乱了。

数风流人物还看今朝

  • 精华:0帖
  • 求助:0帖
  • 帖子:180帖 | 1598回
  • 年度积分:0
  • 历史总积分:1097
  • 注册:2004年7月08日
发表于:2009-09-30 10:42:27
4楼

楼主原话:遇到了子程序并不会在一个扫描周期执行完

----------------------------------------------------------------------------------------

PLC主程序调用子程序的执行,也是一个扫描周期要执行完, 第二次扫描再第二次调用吧。

 

 


热门招聘
相关主题

官方公众号

智造工程师