STEP7中功能块FB里的stat静态变量与C语言里静态分配的变量性质是 点击:915 | 回复:1



PLC酷客

    
  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2013-05-07 18:52:04
楼主

STEP7中功能块FB里的stat静态变量与C语言里静态分配的变量性质是

 

 

C语言里静态变量是从栈里分配的,当函数执行完后会自动释放。那么STEP7中FB里的静态变量在系统分配的机制是否也是如何?是否在FB执行完之后会自己释放?
STEP7中引用静态变量stat有啥意义?
答:静态变量是FB专有的,其是与背景块一一对应,可以这么说静态变量就是FB的背景数据块。其作用就是背景数据块的作用,背景块的作用就是,我自己编自己的FB,我在声明表里定义好自己的静态变量,使用很方便不用考虑使用其它全局变量时,要知道哪个是空的,哪个是别人用过的,就是重叠问题。尤其是多人编一个系统时就更有用了,用FC就没有这个优势。每次调用功能块( FB )时,会被分配一个背景数据块。此 FB 的实际参数和静态参数都被存储在该背景数据块中。在 FB 中声明的变量决定背景数据块的结构。背景指定了功能块的调用 。

FB2可以使用FB1背景数据块中的静态变量,但需要满足以下条件:(即使用多重背景时应注意的问题):
1.在管理多重背景的功能块的变量声明表中,为被调用的功能块的每一次调用定义一个静态(STAT)变量,以被调用的功能块的名称(如FB1)作为静态变量的数据类型。
2.应生成需要调用的功能块(如FB1)。
3.在管理多重背景的功能块(如FB2)必须设置为多重背景功能。
4.必须有一个背景数据块(如DB1)分配给管理多重背景的功能 。背景数据块中的数据是自动生成。
5.多重背景只能声明静态变量(声明类型为“STAT”)。

 



楼主最近还看过



my39366

  • 精华:0帖
  • 求助:3帖
  • 帖子:7帖 | 253回
  • 年度积分:0
  • 历史总积分:463
  • 注册:2011年12月15日
发表于:2013-06-07 09:33:55
1楼

局部静态变量                    


热门招聘
相关主题

官方公众号

智造工程师