西门子 S7-1200 系列五:TIA博图中OB、DB、FC、FB介绍及应用范围说明再也不用担心混淆了
一 | OB(Organization block) 组织块 |
image-202405
OB(Organization block)英文翻译即组织块,它是操作系统和用户程序之间的接口,用于执行具体的程序。
- 在 CPU 启动时
- 循环程序处理
- 在循环或延时时间到达时
- 当发生外部条件触发时
- 当发生故障、错误时
在TIA Portal中我们Zui常用的OB块即Main函数(OB1) ,通过Main函数调用 FB、FC,并且这些 FB、FC还可以继续向下嵌套调用 FB、FC。除主程序和启动 OB 以外,其他 OB 的执行是根据各种中断条件(错误、时间、硬件等)来触发的,OB无法被 FB、FC 调用。
嵌套深度:是指可从 OB 调用功能 (FC) 或功能块 (FB) 等程序代码块的深度。
- 从程序循环 OB 或启动 OB 开始调用 FC 和 FB 等程序代码块,嵌套深度为 16 层;
- 从其他中断 OB 开始调用 FC 和 FB 等程序代码块,嵌套深度为 6 层;
OB 事件
每个组织块都有各自的优先级,在低优先级 OB 运行过程中,高优先级 OB 到来会打断低优先级执行。
允许的数量 | 默认的优先级 | |
---|---|---|
程序循环(Program cycle) | >=0 | 1 |
启动OB(Startup) | >=0 | 1 |
时间中断(Time of day)** | <=2 | 2 |
延时中断(Time delay interrupt)* | <=4 | OB 20:3 OB 21:4 OB 22:5 OB 23:6 OB 123 - OB 32767:3 |
循环中断(Cyclic interrupt)* | <=4 | OB 30:8 OB 31:9 OB 32:10 OB 33:11 OB 34:12 OB 35:13 OB 36:14 OB 37:16 OB 38:17 OB 123 - OB 32767:7 |
硬件中断(Hardware interrupt) | <=50 | 18 |
时间错误(Time error interrupt) | <=1 | 22或26 |
诊断中断(Diagnostic error interrupt) | <=1 | 5 |
插拔中断(Pull or plug of modules)** | <=1 | 6 |
机架或站故障(Rack or station failure)** | <=1 | 6 |
状态中断(Status)** | <=1 | 4 |
更新中断(Update)** | <=1 | 4 |
配置文件中断(Profile)** | <=1 | 4 |
MC-Servo *** | <=1 | 25 |
MC-Interpolator *** | <=1 | 24 |
MC-PreServo **** | <=1 | - |
MC-PostServo **** | <=1 | - |
* V4.0 版本 CPU 以前,延时中断 OB + 循环中断 OB 数量 <=4
** V4.0 版本 CPU 开始支持
*** V4.1 版本 CPU 开始支持
**** V4.2 版本 CPU 开始支持
注:关于各OB的使用说明,可查看TIA Portal中帮助文件;
二 | DB(Data block) 数据块 |
image-202405
定义
DB(DataBlock)数据块可以分为:全局数据块和背景数据块。数据块用于存储用户数据及程序中间变量,其中背景数据块由背景功能块FB生成,内部数据结构由FB的接口定义区决定;
寻址方式
在TIAPortal中可通过juedui地址寻址或通过符号寻址;使用juedui地址寻址,需要将优化块访问选择取消(默认使用优化块访问)。
image-202405
符号地址寻址
image-202405
juedui地址:寻址即通过地址DB编号+地址偏移量组成,例如:DB100.dbx0.0
image-202405
三 | FC(Function) 和 FB(Function Block) |
定义
FC(Function)功能:是不含存储区的代码块,常用于对一组输入值执行特定运算,例如:可使用 FC 执行标准运算和可重复使用的运算(例如数学计算)或者执行工艺功能(如使用位逻辑运算执行独立的控制)。
FB(Function Block)功能块:带背景数据块的FC--功能。
块接口
FB、FC块都有一个块接口区,可以用来定义块接口。在块接口区域中可以定义的接口类型:Input(输入)、Output(输出)、InOut(输入输出)、Static(静态变量,FC无)、Temp(临时变量)以及 Constant (常量)注:FC或 FB可带参数或者不带参数
image-202405
接口类型 | 读写访问 | 描述 |
Input | 只读 | 调用 FB 或 FC 块时,将数据传送到 FB 或 FC 块,实参可以为常数 |
Output | 读写 | 将 FB 或 FC 块执行的结果输出,实参不可以为常数 |
Inout | 读写 | 读取外部实参数值并且将结果返回到实参,实参不可为常数 |
Static (FC无) | 读写 | 静态变量存储在背景 DB 块中,不参与对外的参数传递 |
Temp | 读写 | - |
Constant | 只读 | - |
对于带参数的 FB 或FC 块,有形参和实参 2 个概念,如图 3 所示。
形参:块接口区域定义的 Input,Output,InOut 参数;在调用块时,会以引脚方式出现在块上。Input和 InOut 类型的变量出现在块的左侧;Output 类型的变量出现在块的右侧。
实参:在调用带参数的块时,为形参填写的实际变量。
image-202405