回复:什么时候必须用到FB里的静态变量?

我心依旧555

  • 帖子

    769
  • 精华

    9
  • 被关注

    34

论坛等级:奇侠

注册时间:2009-09-12

普通 普通 如何晋级?

发布于 2011-07-13 09:14:13

2楼

静态变量实际如全局变量的,只是在每次FB调用背景数据块时自动生成其地址,所以很容易移植及封装。
本来如果静态变量在高级语言中有如下特点(引用自百度百科):
  (1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。   
(2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。   
(3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋以0值。   
(4)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。
但因为在PLC编程中实际上是地址编程,去弱了很多特性(也许是方便),比如你可以任何地方读写它的值。
一切皆有可能
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。