电工学习网

 找回密码
 立即注册
查看: 10544|回复: 1

西门子PLC的FB,FC,DB,OB模块是什么意思?有什么作用?

[复制链接]
发表于 2020-4-3 21:29:19 | 显示全部楼层 |阅读模式
首先你说的这些是在西门子的plc编程软件中才有的程序块,而在其他厂牌的PLC中也有相似功能的程序块但是就不是叫这些名字了!--比如STEP7软件和博图软件中就有这些,且这些程序块的规划也是西门子300/400/1200/1500系列的PLC中才有的。像西门子200系列的PLC中就没有这样的程序块规划了,虽然200系列的PLC中也有主程序,子程序和数据块等说法,但是和你提问的这些数据块有很大的差别!
至于这些块是什么含义,最好是来看一下STEP7帮助文件中的解释,如下图:
0.jpg
这个图片是来自STEP7的帮助文件中,从这个图片可以看到OB块就叫做组织块,FB叫功能块,FC叫功能,DB是数据块(但是DB其实可以分为共享数据块和背景数据块)。这个图上还可以看到有SFB和SFC这些是系统提供的预定义过的功能块和功能!
我来简要的说一下这些块通常怎么使用,因为像组织块OB就有很类型,即很多个OB块的,每个块的作用不同,用法也就不同,所以这里只简要说一点常规的。
OB组织块中最普通常用的就是OB1它就像西门子200PLC中的主程序一样,根据扫描周期一遍又一遍的自动执行OB1中的程序,所有的其他的FB、FC等的子程序都需要在OB1中被调用,它们中的程序才能被执行,因为只有OB1才是一个自动循环执行的主程序,CPU上电后这个OB1块就不断的自动执行。而像OB35是一个100ms的根据时间来自动执行的循环中断OB组织块,OB40是一个硬件中断组织块,这里中断的意思主要就是中断OB1的程序循环,先执行中断,中断执行后再继续执行OB1中的程序。
FB功能块,就是可以创建你想创建的子程序,但是FB块的在调用的时候必须配合DB块来使用。
FC功能,它和FB块的作用一样,都是用来创建子程序的时候使用,但是FC就不需要配合DB块使用。
FB和FC块中写好子程序后,必须在OB1中被调用,它们块中的程序才能被执行。如果,你忘记在OB1中调用了,那么响应的程序则无法执行!
再来说一下DB块,上边我说了DB块有2种,当其为背景数据块的时候,其实他就像是一个FB块的专用映像数据块,可以便于我们观察这个FB块中的一些参数。而当DB块被定义为全局数据块的时候,它就不专属于某个FB功能块了,它可能可以存储多个FB块的数据,当然也可以存储不是FB块中的数据。
就简单说这么多了,因为你问题中的这些块,每一种都不是简单的几百字能写的清楚明白的,都需要自己在项目实际应用中去掌握更多的技巧和用法。

回复

使用道具 举报

 楼主| 发表于 2020-4-3 21:30:47 | 显示全部楼层
在PLC程序中有两种程序,一种是厂家在生产PLC时把它固化在PLC内部CPU中的系统程序,还有一种就是我们需要自己编写且能够随意“擦写”和下载的用户程序。我们在编写PLC程序时,为了使我们的程序条理清晰和便于管理维护和阅读,软件制作者给我们规制制作了不同功能的块,我们在编写程序时就把不同功能的程序写在不同的程序块中,当PLC运行时,它的CPU就会按照程序需要运行的条件去命令相应的“块”来完成特定的控制任务,这就是块的功能。
“FC”函数的意义及使用
在PLC编程软件中的"FC"是指函数的意思,它是用户自己编写的程序块。在函数(FC)中是没有数据存储器的,它是可以通过调用使用,在调用时要给它的形式参数送一个具体的数值才可以用。另外在这个“FC”函数里面是有局部变量表和块参数的,比如这些变量可以是有输入、输出和输入/输出和临时变量等。它有点类似一个子程序,可以在主程序中调用。
举个PLC启停控制的简单例子,我们可以在主函数中建立一个子函数“FC”命名为“启停控制FC1”,建立好函数后给启动按钮与停止按钮以及输出继电器关联一个具体的实际参数就可以了。比如I0.0和I0.1是启动和停止,Q0.0是输出控制电机,我们把这种函数的调用叫绝对调用,很显然这种方式是不够灵活的。
“FB”函数块的意义和作用
这个“FB”函数块是我们自己编写程序时自己可以创建的,我们创建的这个函数块FB具有他的参数是可以分配的特点,具有相应的存储空间。比如刚才讲的我们在主程序创建了“FC”函数,由于采用了绝对调用显得不够灵活,如果我们用“FB”函数块来操作就显得很“柔性化”了。我们先在项目中建立一个函数块,在输入参数中建立两个变量分别命名“启动变量”和“停止变量”,再在输出参数中建立一个变量,命名为“电机变量”。然后再通过主程序调用后,启动和停止按钮就不仅限于I0.0和I0.1了,我们可以任意地相关联就可以了,所以通过“FB”函数块的使用使程序更加灵活,增加了程序的“柔性化”。
“DB”数据块的意义和作用
“DB”是数据块,它的作用是储存我们所编写程序时所用的数据的,以及所我们所设置的中间变量也都有它存储。我们把这种数据块“DB”分成全局数据块、数据背景数据块和数据类型数据块三种。全局数据块是存储程序数据的,它可以存储我们前面所设置的变量,比如前面说的“启动变量”和“停止变量”等。
“OB”组织块的意义和作用
“OB”组织块是PLC的软件操作系统与我们所编写程序的接口,在PLC启动后,PLC里面的CPU就会循环执行OB组织块,在“OB”组织块中我们可以调用“FC”函数和“FB”函数块。“OB”具有多个种类,比如有主程序快“OB1”、中断程序块“OB10”等,这样以来组织块“OB”是具有优先级的。这就像单片机中的优先级相类似。比如中断程序块“OB10”可以打断“OB1”的执行。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-3-29 19:23

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表