FB的功能是什么?其优点是什么?

FB(Function Block)不同于FC块的是它带有一个存储区,即有一个局部数据块被分配给FB,这个数据块称为背景数据块(lnstance Data Block)。

当调用FB时,必须指定背景数据块的号码,该数据块将自动打开。

背景数据块可以保存静态变量,故静态充数量只能用于FB中,并在其变量声明表中定义。当FB退出时,静态变量仍然保持。

当FB被调用时,实际参数的值被存储在它的背景数据块中。如果在调用块时,没有实际参数分配给形式参数,则在程序执行中将采用上一次存储在背景数据块中的参数值。

每次调用FB时可以指定不同的实际参数。当块退出时,背景数据块中的数据仍然保持。

可以看出,FB的优点如下。

     (1)当编写FC程序时,必须寻找空的标志区保持的数据,并且要自己编写程序来保存它们。而FB的静态变量可南STEP 7的软件来自动保存。
      (2)使用静态变量可避免两次分配同一存储区的危险。结合前面例子,如果用FB实现FC1的功能,并用静态变量EarlYV- ast LastValuc和I。atcsiValuc来代替 原来的形式参数,将r叮省略这三个形 式参数,简化块的调用。在FBl中定 义形式参数,编写程序同7-8(a)所  示。图7-9所示为调用FI31子程序。

 其中DBI为FBI的背景数据块,在输入时若DBI不存在,则将自动生成该背景数据块。双击背景数据块DB1将其打开,可以看到DB1中保存的是在FB的接口定义的形式参数(见表7-4)。对于背景数据块,无法进行编辑修改ER而读写其中的数据。

 调用FB块时需要为其指定背景数据块(见图7-10),这称为Fl3背景化,类似于C语言等高级有语言中的背景化,即在变量名称和数据类型下面建立一个变量。 

 图7-8(b)中,调用FCI,并赋值实际参数,求得的平均值存放在MD72中。这样,通过不同的实际参数可以重复调用FCI进行多路滤波。但是,通过此例也可以看出一个问题:我们关心的只是三个数的平均值,而调用FC1子程序时,却需要为三个采集值寻找全局地址进行保存,这样做不但麻烦而且容易造成地址重叠,能不能既不用人为寻找全局地址而又能保存数值呢?通过FB就可以实现。 


转自:FB的功能是什么?其优点是什么?_PLC编程入门 (22plc.com)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值