设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子博途函数块FB
返回列表
发新帖
[西门子]
西门子博途函数块FB
[复制链接]
42797
|
0
|
2024-5-23 17:10:43
|
显示全部楼层
|
阅读模式
函数块是将自身的值永久存储在背景数据块中的代码块,从而在块执行后这些值仍然可用。
定义
函数块是一种代码块,它将输入、输出和输入/输出参数永久地存储在背景数据块中,从而在执行块之后,这些值依然有效、。 所以函数块也称为“有存储器”的块。
函数块也可以使用临时变量。临时变量并不存储在背景数据块中,而用于一个循环。
应用
函数块包含总是在其它代码块调用该函数块时执行的子例程。 可以在程序中的不同位置多次调用同一个函数块。 因此,函数块简化了对重复发生的函数的编程。
函数块的实例
函数块的调用称为实例。函数块的每个实例都需要一个背景数据块;其中包含函数块中所声明的形参的实例特定值。
函数块可以将实例特定的数据存储在自己的背景数据块中,也可以存储在调用块的背景数据块中。
访问模式
S7-1200 和 S7-1500 提供两种不同的背景数据块访问选项,可在调用函数块时分配给函数块:
·可优化访问的数据块
可优化访问的数据块无固定定义的存储器结构。在声明中,数据元素仅包含一个符号名,因此在块中没有固定的地址。
·可一般访问的数据块(与 S7-300/400 兼容)
可一般访问的数据块具有固定的存储器结构。声明元素在声明中包含一个符号名,并且在块中有固定地址。
如何创建一个函数块FB
首先新建一个项目工程,添加PLC型号及基本设定(参考之前的01西门子新建项目设定)然后在项目中双击“添加新块”,如下图所示:
函数块名称可自行修改,支持中文,可命名为我们容易记和理解的名字,如上图3位置,编程语言可自行修改,在4位置一定要选择自动编号防止记忆错误,最后点击5位置即可添加一个函数块。
下面以电机正反转为例进行解析:
如下图所示:可以看到名字为“电机正反转[FB1]”函数块,名字我们进行了自定义,编号为自动生成的FB1,在4的位置我们可以展开或收起端口参数区,也可以将鼠标放在3位置进行拉伸端口参数区的大小。
下面我们编写程序:
首先定义接口,这里有一点需要注意:因为电机正反转涉及到自锁电路,所以我们在添加输入/输出端口时需要将输出“电机正转”和“电机反转”定义为“InOut”否则在编程时会出错。
编写程序如下所示:
现在我们就编写好了一个函数块“电机正反转[FB1]”,现在还无法执行程序,需要将函数块添加到主程序Main[OB1]中,如下图所示:
有图中可以看到,我们定义的端口没有实际的参数,但是也可以不用设置,程序在运行时也可以正常通过,只是没有实际意义。这时就需要我们将各个功能口指定实际的参数(这也是函数块FB与函数FC的主要区别),另外一个就是有专属的背景数据块,如下图所示:
这时如果我们按此I/O点接线,就可实现电机的正反转控制功能。当我们有多个电机有同样的控制要求时,就可以直接拖入多个“电机正反转”函数块即可,自动编号。如下图所示:
以上就是函数块FB的总结。
==END
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
非标自动化
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』