step7临时局部变量l堆栈如何分配地址的,可以查看么

 我来答
huanglenzhi
2015-06-01 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517185
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  STAT静态变量,只有功能块FB有,也是FB和FC的一个最大的区别。静态变量在其对应FB块执行完后数据会保存,而临时变量TEMP在对应FB块执行完后数据就清除。特别提示一点:如上升沿和下降沿等必须采用静态变量,所以当你不确定以后是否会用到上升沿或下降沿,或不确定是否会因调用某些系统功能块等而需要用到多重背景的时候,建议使用FB.因为多重背景也只能在静态变量中定义。

  
  好好学习天天的回答我认为有些是不准确的:
  “……他就是在FB中的变量,和IN OUT in-out不同的是上面三个和OB都有关系,但是stat就只是纯和fb有关,你想,你编写一个FB程序的时候,里面有用到之前OB中没有的变量比如说m0.0,而且之个M0.0又只在这个FB种起作用,对OB没有任何影响,那么,这个就是STAT,静态变量,保留在相关的背景数据块中……”
  1:IN OUT in-out 只是块的输入输出引脚,没有和OB有关系或没关系的说法,OB可以调用FB,FB也可以调用FB
  2:STAT变量在FB块中声明,存在于FB对应的背景DB中,据我目前所知通过指定DB地址在程序中是可以使用该STAT变量的。如果FB有多个数据背景,那么在该FB中声明的STAT变量就存在多个数据块中,名字一样,参数不同而已。适用于那种控制过程一样,仅仅是参数不同的对象(如很多教材中讲到的汽油机和柴油机)。但如果一个FB有很多不同参数(如SFB4 TON 系统功能,在程序中可能有几十上百次的调用),那就要有很多背景数据和他们对应,就会很麻烦。
  为了解决这个问题,就引入了多重背景的概念,多重背景其实也很简单,在调用这个块的时候,对着块点右键选择“更改为多实例调用”,按语法规定输入名字(名字取得好会让程序阅读性很强,如调用SFB4 TON,给电机一启动延时用,则你可以取名为Motor1_OnDelayTimer),确定后你会发现,在你现在的FB块的STAT中多了一个以你刚刚输入的为名字的变量还带加号,点开加号,你会发现里面就是被你调用的块的背景数据,书上关于多重背景废话了一堆,其实如上你就完成了多重背景的应用。
  3:M0.0是M标志位,怎么会是STAT变量呢?STAT一定存在于FB块的背景数据块(DB)中。
  4:不同的OB功能也不一样,但至少OB1是少不了的,没有在组织块OB中调用的程序是不会执行的。只要PLC正常运行,OB1就在按周期循环执行,被其调用的FB块也在按周期循环执行,一个静态变量的值不同,可能使程序运行的结果不同,但绝对不会影响程序本身的执行,除非你这个静态变量是用来做诸如调用SFC46 STP等的操作……
  说了这么多,希望能有所帮助!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式