概述
西门子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 块调用及其背景数据块
- 16平方的电缆居然带不动18.5KW的电机? 2024-11-21
- 还不会S7-1200安全保护吗?教你用向导轻松搞定! 2024-11-21
- S7-1200技术参考V4.2全新发布! 2024-11-21
- 西门子 S7-1500 订货号说明与选型(二) 2024-11-21
- 西门子 S7-1500 订货号说明与选型 2024-11-21
- 图解西门子 S7-1200 通讯 2024-11-21
- 西门子 S7-1200 参数汇总 2024-11-21
- 图解非标自动化设备开发流程 2024-11-21
- 一步步教你Modbus通讯,再不会就真的没办法了! 2024-11-21
- 巧用西门子CPU时钟信号,让定时更精准! 2024-11-21