找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
{{itemCategory}}
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
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等的操作……
说了这么多,希望能有所帮助!
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!