SIEMENS华中地区湖南省长沙市西门子(授权)一级总代理-西门子伺服电机一级总代理

供应商
广东湘恒智能科技有限公司
认证
变频器
西门子代理商
触摸屏
西门子一级代理
伺服电机
西门子一级总代理
联系电话
18126392341
手机号
15267534595
联系人
梁涛
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)(注册地址)
更新时间
2024-05-16 09:10

详细介绍

西门子s7-1200编程可以使用的代码块有ob 块,fc 块和 fb 块。功能块 (fb) 是从另一个代码块(ob、fb 或 fc)进行调用时执行的子例程。在调用 fb块时会生成与之相匹配的背景数据块,在背景数据块中可以存储定义的接口参数及静态变量。下面将具体介绍fb 块的使用,主要包含以下 5 个方面:

fb 块支持的编程语言

fb 块的块接口

fb 块的编程

fb 块的调用

fb 块的背景数据块属性修改

一、fb块支持的编程语言

s7-1200 使用 fb 块编程支持的编程语言有 lad、fbd、scl 以及 cem (博途 v17 开始支持),如图 1 所示。

图 1. fb 块支持的编程语言

二、fb块的接口

fb 块有一个块接口区,可以用来定义块接口。在 fb的块接口区域中可以定义的接口类型:input(输入)、output(输出)、inout(输入输出)、static(静态变量)、temp(临时变量)以及constant (常量),如图 2 所示。

图 2. fb 块接口区

对于 fb 块的块接口访问如表 1 所示:

接口类型读写访问描述
input只读调用 fb 块时,将数据传送到 fb 块,实参可以为常数
output读写将 fb 块执行的结果输出,实参不可以为常数
inout读写读取外部实参数值并且将结果返回到实参,实参不可为常数
static读写静态变量存储在背景 db 块中,不参与对外的参数传递
temp读写-
constant只读-
表 1. fb 块块接口访问

对于带参数的 fb 块,有形参和实参2 个概念,如图 3 所示。

形参:块接口区域定义的 input,output,inout 参数;在调用 fb 块时,会以引脚方式出现在 fb块上。input 和 inout 类型的变量出现在 fb 块的左侧;output 类型的变量出现在 fb 块的右侧。

实参:在调用带参数的fb 块时,为形参填写的实际变量。

图 3.形参和实参

二、fb块编程

fb 块在编程时可以选择是否在块接口区定义变量。可以主要分为有 两种情况:

(1)情况1:fb 块带参数——定义块接口,fb块中通常不出现任何全局变量(db、i、q、m);优点:模块化编程,对于相同的功能/逻辑只需要编写一个 fb块,无需重复多次编写相同的代码,进行大量重复性工作;还可将 fb 块做成项目库或全局库,以便后续其他项目或其他工程师使用。fb块编写程序代码,如图 4 所示。

图 4.带参数的 fb 块编程

fb 块调用以及实参参数的填写,参考图 3 。右键打开图3 中 fb 块的背景数据块 “motor_db”,显示内容如图 5 所示。在背景数据块中可显示input、output、inout 及 static 变量,temp 和 constant变量不会出现在背景数据块中。

图 5. fb 块背景数据块显示内容

编写的带参数的 fb 块,可以多次调用,只需为每次调用的 fb块填写不同的实参。同样的功能仅需编写一次即可,无需重复编写相同的代码。注意:一般情况下每次调用需要生成不同的背景数据块。对于部分系统fb 指令,可能有不同要求,详见具体指令说明。

////////////////////////////////////////////////////////////////////////////////

(2)情况2:fb 块不带参数——不定义任何块接口,fb块编程中,使用全局变量;此种方式不推荐。如果在fb 块中编程时不定义任何块接口变量,那么,在 fb 块中编程时只能使用全局变量。fb块编程如图 6 所示。

图 6.不带参数 fb 块编程

不带参数的 fb 块调用及其背景数据块,如图 7 所示。

图 7.不带参数 fb 块调用及其背景数据块

三、fb块的调用

编写好 fb 块程序后,需要进行调用才可以执行 fb 块中的程序。fb 块可以由 ob 块、fc 块或其他 fb块调用。被不同的块调用,出现的调用方式也会不同,如图 8-10 所示。

在 ob 中调用 fb 块,仅支持单个实例调用(如图 8 所示)

在 fc 块中调用 fb 块,支持单个实例和参数实例调用(如图 9 所示)

在 fb 块中调用另外一个 fb 块,支持单个实例,多重背景和参数实例三种方式(如图 10 所示)。

图 8. ob 调用 fb 块图 9.fc 调用 fb 块

图 10. fb 调用 fb 块下面针对各个调用选项进行详细说明:

(1)单个实例:选择单个实例后,系统会自动生成该 fb 块的背景数据块,出现在程序块文件夹下方,并且自动在 fb上方填写上该背景数据块,如图 11 所示。

图 11.单个实例调用////////////////////////////////////////////////////////////////////////////////(2)参数实例:选择参数实例后,将实例作为调用块的一个inout 参数进行传递,需要生成一个背景数据块作为实参填写在形参上。如图12 所示,fc1 中调用 fb2"motor",并且调用选项选择参数实例,此时 fc1 的块接口中会新增一个 inout类型的参数,参数类型为 motor(fb2 的背景数据块)。

图 12.fc1 中参数实例调用 fb2添加新块,选择 db 块,类型选择 motor(fb2 的背景数据块),如图 13 所示。

图 13.新建 fb2 背景数据块如图 14 所示,在 ob1 中调用 fc1 时会出现一个 inout 形参参数需要填写,此时将图 13 新建的背景数据块填写到fc1 的 inout 参数上即可。

图 14.参数实例填写

////////////////////////////////////////////////////////////////////////////////

(3)多重实例:选择多重实例后,无需为被调用的fb 块创建单独的背景 db 块,被调用的 fb 块的背景数据块存储在外层 fb块的静态变量区域。对于多重实例,还可以以数组形式存在,方便块的多次调用。如图15 所示,fb1 中调用 2 次 fb2,选择多重实例方式。

图 15.多重实例调用

西门子一级总代理,代理商,变频器,伺服电机,PLC

展开全文

我们其他产品
我们的新闻
咨询 在线询价 拨打电话