(完整版)项目二:功能块FB、功能FC和背景数据库DB的创建和使用

合集下载

昆仑通态触摸屏应用说明书

昆仑通态触摸屏应用说明书

昆仑通态触摸屏应用打开MCGSE组态环境 (2)新建工程 (2)添加驱动 (4)新建变量 (8)新建I量 (12)新建Q量 (13)新建UINT量 (13)新建INT量 (14)新建窗口 (17)画面编辑 (19)1、文本 (20)2、数值显示 (22)3、调试窗口文本显示 (24)4、按钮(窗口切换) (27)5、柱状图 (28)6、断路器 (30)7、手车 (31)8、操作命令 (32)工程下载 (36)工程下载时主控窗口的属性设置 (38)触摸屏设置 (39)打开MCGSE组态环境新建工程点击“新建工程(N)”,选择触摸屏型号,点击“确定”,点击“工程另存为(A)”,选择保存的路径,输入文件名,点击“保存”。

添加驱动点击“设备组态”,右击选择“设备工具箱(X)”,点击“设备管理”,双击“GE90TCPIP”,双击“GE90TCP”,右栏会出现“GE90TCP”,选中,点击“确认”,双击“GE90TCP”,新建变量双击“设备0—[GE90TCP]”PLC IP地址,GE9030端口号为18245“采集优化”选择“0—不优化”,否则%R1--%R200地址的值在通道里能看到,窗口里无法显示触摸屏IP地址,本地端口号为1281PLC IP地址,GE9030端口号为18245点击“设置设备内部属性”,弹出“GE90TCP通道属性设置”窗口,点击“全部删除”,删除默认生成的设备通道,新建I量新建UINT量点击“确认(A)”。

选中“0001”,点击“快速连接变量”,输入“数据对象”,通道个数,点击“确认”,选中“0011”,点击“快速连接变量”,输入“数据对象”,通道个数,点击“确认”,选中“0021”,点击“快速连接变量”,输入“数据对象”,通道个数,点击“确认”,选中“0031”,点击“快速连接变量”,输入“数据对象”,通道个数,点击“确认”,点击“确认”,弹出“添加数据对象”窗口,点击“全部添加”。

FB块的使用方法

FB块的使用方法

1.创建功能块FB1
准备完成如下功能:将“整型”变量转换成“实型”变量
2.打开功能块FB1
3.在功能块FB1中添加入口参数、出口参数、静态变量
入口参数=IN0 ---> 整型(INT) 出口参数=OUT1 ---> 实型(REAL) 静态变量=STAT2 ---> 整型(INT) 局部变量=TEMP3 ---> 长整型(DINT)
4.创建背景数据块DB2
5.打开DB2背景数据块,可以看到系统默认建立了三个数据
IN0 ---> 入口参数(整型)OUT1 ---> 出口参数(实型)STAT2---> 静态变量(整型)
6.打开FB1功能块,编写如下代码,实现将“整型”变量转换成“实型”变量
同时再编写一段静态变量自加1代码
7.打开OB1主程序,添加FB1功能块。

从零开始学PLC之逻辑块(FC和FB)的结构及编程

从零开始学PLC之逻辑块(FC和FB)的结构及编程

从零开始学PLC之逻辑块(FC和FB)的结构及编程逻辑块(FC和FB)的结构及编程功能(FC)、功能块(FB)和组织块(OB)统称为逻辑块(或程序块)。

功能块(FB)有一个数据结构与该功能块的参数完全相同的数据块,称为背景数据块,背景数据块依附于功能块,它随着功能块的调用而打开,随着功能块的结束而关闭。

存放在背景数据块中的数据在功能块结束时继续保持。

而功能(FC)则不需要背景数据块,功能调用结束后数据不能保持。

组织块(OB)是由操作系统直接调用的逻辑块。

逻辑块(FC和FB)的结构逻辑块(OB、FB、FC)由变量声明表、代码段及其属性等几部分组成。

局部变量声明表每个逻辑块前部都有一个变量声明表,称为局部变量声明表。

局部数据分为参数和局部变量两大类,局部变量又包括静态变量和临时变量(暂态变量)两种。

对于功能块(FB),操作系统为参数及静态变量分配的存储空间是背景数据块。

这样参数变量在背景数据块中留有运行结果备份。

在调用FB时,若没有提供实参,则功能块使用背景数据块中的数值。

操作系统在L堆栈中给FB的临时变量分配存储空间。

对于功能(FC),操作系统在L堆栈中给FC的临时变量分配存储空间。

由于没有背景数据块,因而FC不能使用静态变量。

输入、输出、I/O参数以指向实参的指针形式存储在操作系统为参数传递而保留的额外空间中。

对于组织块(OB)来说,其调用是由操作系统管理的,用户不能参与。

因此,OB只有定义在L堆栈中的临时变量。

逻辑块局部变量的数据类型局部变量可以是基本数据类型或复式数据类型,也可以是专门用于参数传递的所谓的“参数类型”。

参数类型包括定时器、计数器、块的地址或指针等。

逻辑块的调用过程及内存分配CPU提供块堆栈(B堆栈)来存储与处理被中断块的有关信息用户程序使用的堆栈局部数据堆栈简称L堆栈,是CPU中单独的存储器区,可用来存储逻辑块的局部变量(包括OB的起始信息)、调用功能(FC)时要传递的实际参数、梯形图程序中的中间逻辑结果等。

FB与FC块的区别及其实际的工程运用

FB与FC块的区别及其实际的工程运用

FB与FC块的区别及其实际的工程运用简单的说FB是具有存储功能的,FC没有存储功能,这是一般的理解:FB需要背景数据块,而FC是没有的;参数的传递方式不同,FB的输入输出对应背景DB地址,而FC的输入输出没有实际地址对应的,只有程序调用时,才会和实际的地址产生关系。

FB参数传递的是数据,FC参数传递的是数据的地址。

FB功能块的处理方式是围绕着数据块处理数据,它的输入输出参数都是数据块里的数据,以及STAT的数据都是数据块里的,入口参数和出口参数,这些数据不会因为函数消失而消失,它会一直保持在数据块里。

FB里的变量与它的背景数据块是一一对应的,而它的对应并不是一层不变的,更确切的说,FB里的变量在调用时将根据AR2的值当作偏移量与背景数据块是一一对应的。

如果一个FB功能块没有入口参数、出口参数及STAT数据,它将不需要背景数据块,这时的FB块和没有出、入口参数的FC 就没什么区别了,也就只能使用临时变量和全局变量,当然这时的FB块是没有实际作用了。

有人会认为,FB的背景数据块必须由FB生成、FB的第一个变量对应背景数据块的第一个变量,还有就是由FB块生成的数据块只能作FB的背景数据块使用。

其实这些理解都是错误的,FB的背景数据块不一定是通过FB生成的,可以像生成共享数据块一样生成FB的背景数据块,换句话说,普通的数据块也可以作为FB的背景数据块使用,只是这种做发是有前提的:就是这个数据块的字节数必须大于或等于FB所需的字节数,如果小于FB所需的字节数,FB访问到超出背景数据块的变量时就会找不到变量的地址,当然也就出错了。

FC功能块里的参数没有实际的地址,都是使形参数,只有在调用时才会把实际的参数地址传送到FC的参数里。

FC是没有存储能力的,这是一班的说法,给定入口参数,执行完了,从出口参数读出数据,FC的功能就消失。

如果在FC里使用全局变量,也可以达到FB块一样的效果,但是这样的FC块是没有可移植性的。

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么用?

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么用?

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么用?展开全文PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。

FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能FB运行时需要调用各种参数,于是就产生了背景数据块DB。

例如用FB41来作PID控制,则它的PID控制参数就要存在DB里面。

FB具有储存功能系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB和SFC是集成在S7 CPU中的功能块,用户能直接调用不需自已写程序。

SFC与FC不具有储存功能,FB和SFB具有储存功能。

OB模块相当于子程序,负责调用其他模块。

如果程序简单只需要OB就可以实现。

用西门子PLC编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗?FB--功能块,带背景数据块FC--功能,相当于函数他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。

FB确保了3个电机的参数互不干扰。

FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。

他们的最大区别是,FB与DB配合使用,DB中保存着FB使用的数据,即使FB退出后也会一直保留。

FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。

在实际编程中,是使用FB还是FC,要看实际的需要决定。

FB与FC没有太大的差别,FB带有背景数据块,而FC没有。

所以FB带上不同的数据块,就可以带上不同的参数值。

这样就可以用同一FB和不同的背景数据块,被多个对象调用。

现场实例详细介绍FC功能和FB功能块的应用

现场实例详细介绍FC功能和FB功能块的应用

现场实例详细介绍FC功能和FB功能块的应用在STEP7的编程中,经常会用到FC功能和FB功能块来简化程序编制,减少程序空间占用。

本文通过现场实例详细介绍了FC功能和FB 功能块的应用1.FC和FB的主要区别FC和FB的主要区别是FB有背景块,能够保存上一次执行的数据,调用一次就需要建立一个DB块。

FC没有背景块,多次调用可以共用一个DB块FC 功能是没有存储能力的,给定入口的参数,执行完毕后,从输出参数读出结果。

FC功能也就完成了。

就像计算机高级编程语言中的子函数。

当然,FC可以访问全局的存储变量,M区,数据块等等。

但是影响程序的可移植性。

FC的参数是没有实际的地址的,只是在调用FC的时候,对应到一个实际的地址来读取参数。

而FB的参数都是有实际对应的地址的,也就是对应的背景数据块的地址。

FB参数传递的是数据。

FB可以生成静态变量,下次调用FB的时候,这些静态变量可以被保留。

而FC的变量只在调用期内有效。

FB与FC的区别在于入口参数,出口参数和使用静态变量。

如果一个FB对入口参数,出口参数和使用静态变量都不需要,那么与使用没有入口参数和出口参数的FC基本一样了。

FB可以和多个背景数据块配合使用,被用来控制多个对象。

例如控制多个电机或者泵的运行。

多个电机之间参数互不干扰。

如果使用FC达成同样功能,就需要不断地修改共享数据块,以避免对象的数据丢失。

FC没有一个永久的数据块来存储数据,只是在被调用的时候,被分配一个临时的数据区。

2.FC功能编程及调用实例:2.1在STEP7中完成硬件组态以后,开始编制PLC程序,插入一个功能FC,如图所示。

将FC设置成为一个模拟量数值超限报警程序,模拟量信号比较后输出报警值。

2.2在FC中创建接口,IN 变量是外部输入的,只能被本程序块读,不能被本程序块写,输入参数只能在功能和功能块中使用,以将数据传送到调用块进行处理。

OUT 是本程序块输出的,他可以被本程序块读写,其他程序通过引脚只能读值不能写,通过它将结果传送到调用块IN_OUT 输入输出变量本程序块和其他程序都可以读写这个引脚的值,输入/输出参数在功能和功能块中使用,以将数据传递到调用块中,在调用块中处理数据,然后再将从调用块中发送的结果存储在相同的变量中。

西门子PLC中FB和FC区别、管脚定义、临时变量引起的麻烦

西门子PLC中FB和FC区别、管脚定义、临时变量引起的麻烦

西门子PLC中FB和FC区别、管脚定义、临时变量引起的麻烦FB和FC区别FB--功能块,带背景数据块 FC--功能,相当于函数FB,FC块均相当于子程序,既可以调用其它FB,FC块,也可以被OB,FB,FC块调用。

他们之间的主要区别是:1. FB使用背景数据块作为存储区,FC没有独立的存储区,使用全局DB或M区2. FB局部变量有STAT和TEMP,FC由于没有自己的存储区因此不具有STAT,TEMP本身不能设置初始值。

本质上,FB,FC的实现目的是相同的;无论何种逻辑要求,FB,FC均可实现。

只是实现方式效率不同,这也和工程师个人编程习惯有关。

FB块优点:1. 易于移植性,对于相同控制逻辑不同参数的被控对象,只要使用不同的背景DB,同一个FB块就可以方便2. 多重背景,减少重复工作,提高效率3. 多次调用时,参数修改方便4. 有独立的存储区FC块优点:1. 小巧灵活,对于非多次调用的程序更易理解2. 不占用额外的存储资源FB,FC块管脚定义IN---------变量是外部输入的,只能被本程序块读,不能被本程序块写;OUT-------是本程序块输出的,他可以被本程序块读写,其他程序通过引脚只能读值不能写;IN_OUT--- 输入输出变量本程序块和其他程序都可以读写这个引脚的值。

TEMP -----临时变量,顾名思义是暂时存储数据的变量。

这些临时的数据存储在CPU工作存储区的局部数据堆栈(L堆栈)中。

STAT-------在PLC运行期间始终被存储。

S7 将静态变量定义在背景数据块(仅对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中。

为何定义的FB,FC块,多次调用后程序混乱?对于,多次调用的程序块,FB块建议更换调用不同的背景DB;FC则需要确保使用的存储地址不重复,即每次调用,块中调用的地址不重复。

为何含有定时器或计数器的FB或FC单次调用ok,多次调用时定时器或计数器混乱?对于多次调用的FB,FC,如为S7定时器,计数器,则需要在IN 接口中定义TIMER或Counter,每调用一次FB或FC,均赋不同的定时器或计数器号。

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么用?

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么用?

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么⽤?⾸先你说的这些是在西门⼦的PLC编程软件中才有的程序块,⽽在其他⼚牌的PLC中也有相似功能的程序块但是就不是叫这些名字了!--⽐如STEP7软件和博图软件中就有这些,且这些程序块的规划也是西门⼦300/400/1200/1500系列的PLC中才有的。

像西门⼦200系列的PLC中就没有这样的程序块规划了,虽然200系列的PLC中也有主程序,⼦程序和数据块等说法,但是和你提问的这些数据块有很⼤的差别!⾄于这些块是什么含义,最好是来看⼀下STEP7帮助⽂件中的解释,如下图:这个图⽚是来⾃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中被调⽤,它们块中的程序才能被执⾏。

功能FC和功能块FB的使用

功能FC和功能块FB的使用

功能FC和功能块FB的使用功能(Functional Capabilities,FC)和功能块(Functional Blocks,FB)是软件开发中常用的概念,用于描述系统的功能和实现方式。

这两个概念可以帮助开发人员更好地组织代码和设计系统,并且在软件开发过程中起到了重要的作用。

下面将详细介绍功能FC和功能块FB的使用。

功能(Functional Capabilities,FC)是系统或软件所提供的一种特定功能或行为。

它描述了系统在特定情况下应具备的能力,可以是一个简单的操作或一个复杂的功能。

FC通常是对系统所需功能的高级描述,它不仅仅包括系统的输入和输出,还包括系统的行为和约束。

FC与用户需求息息相关,它是将用户需求转化为系统所需功能的中间步骤。

功能块(Functional Blocks,FB)是实现功能的基本单元。

一个功能块是具有特定功能的代码块,它接收输入,执行一系列操作,并生成输出。

功能块主要用于将系统的功能划分为更小的模块,以便于开发、维护和重用。

一个复杂的系统通常由多个功能块组成,每个功能块负责一个特定的功能或行为。

通过合理的组织和设计功能块,可以使系统更加模块化、可靠和可扩展。

在实际的软件开发过程中,我们通常会先进行功能分析和需求确定,然后将需求转化为功能,再将功能细化为功能块。

这个过程可以通过以下几个步骤实现:步骤一:功能分析和需求确定。

在这个阶段,我们需要与用户进行沟通,了解他们的需求和期望。

通过与用户的交流,我们可以确定系统所需的功能,并将其记录为功能描述。

步骤二:定义功能。

在功能分析阶段完成后,我们需要将功能描述转化为具体的功能。

例如,如果我们的系统需要实现一个登录功能,我们可以将其定义为一个“登录”功能。

步骤三:细化功能。

在细化功能时,我们需要将每个功能进一步分解为更小的功能块。

这些功能块可以是独立的,也可以依赖其他功能块。

通过细化功能,我们可以更好地组织代码,并确保每个功能块的责任清晰明确。

干货!西门子12001500PLC常用术语及FB、FC、DB各功能介绍

干货!西门子12001500PLC常用术语及FB、FC、DB各功能介绍

干货!西门子12001500PLC常用术语及FB、FC、DB各功能介绍1、块接口由形式参数和本地数据两部分组成:参数解析:输入参数:为调用模块提供数据,输入给逻辑模块输出参数:从逻辑模块输出数据结果输入/输出参数:参数值既可以输入,也可以输出变量解析:临时变量:存储在L堆栈中,块执行结束后,变量消失;静态变量:存储在背景数据块中,块调用结束后,变量被保留;(1)函数(FC)简介① 、函数(FC)是用户编写的程序块,是不带存储器的代码块。

由于没有可以存储块参数值的数据存储器,因此,调用函数时,必须给所有形参分配实参。

②、FC 里有一个局域变量表和块参数。

局域变量表里有:Input(输入参数)、Output(输出参数)、InOut (输入/输出参数)、Temp(临时数据)、Return(返回值 RET_VAL)。

Input(输入参数)将数据传递到被调用的块中进行处理。

Output(输出参数)是将结果传递到调用的块中。

InOut(输入/输出参数)将数据传递到被调用的块中,在被调用的块中处理数据后,再将被调用的块中发送的结果存储在相同的变量中。

Temp(临时数据)是块的本地数据,并且在处理块时将其存储在本地数据堆栈。

关闭并完成处理后,临时数据就变得不再可访问。

Return 包含返回值 RET_VAL。

(2)函数块(FB)的简介函数块(FB)属于编程者自己编程的块。

函数块是一种“带内存”的块。

分配数据块作为其内存(背景数据块)。

传送到FB 的参数和静态变量保存在实例DB 中。

临时变量则保存在本地数据堆栈中。

执行完FB 时,不会丢失DB 中保存的数据。

但执行完FB 时,会丢失保存在本地数据堆栈中的数据。

(3)数据块(DB)简介①、数据块用于存储用户数据及程序中间变量。

新建数据块时,默认状态是优化的存储方式,且数据块中存储的变量是非保持的。

数据块占用 CPU 的装载存储区和工作存储区,与标识存储器的功能类似,都是全局变量,不同的是,M 数据区的大小在 CPU 技术规范中已经定义且不可扩展,而数据块存储区由用户定义,最大不能超过工作存储区或装载存储区。

朗风快学PLC(八)西门子S7-300的程序结构OB,FB,FC,DB

朗风快学PLC(八)西门子S7-300的程序结构OB,FB,FC,DB

朗风快学PLC(八)西门子S7-300的程序结构OB,FB,FC,DB想要学习西门子PLC,OB,FB,FC和DB是必须要学习的!那么它们在整个程序里面起到什么作用呢?今天带大家了解一下。

OB是西门子300/400里面最重要的组织块,从OB1-OB122它们有很多不同的功能,今天我们将最常用的OB1,OB1是主程序循环,一个程序中90%的指令都是写在OB1里面或者是在OB1里面调用的,那么其他10%写在哪?答案是其他的组织块里面。

PLC采用循环扫描的工作方式。

从OB1的第一行扫描到最后一行。

但是对于300系列PLC,程序都是非常多的。

即使是90%的程序写在OB1里面也是不现实的。

所以需要调用FB和FC。

进而使得程序可看性更强一些。

这也就是结构化编程。

FB和FC块,我们从两者的名字就可以进行区分,可以用一个公式即FB=FC+DB来表示,FB是具有DB背景块的特殊FC,也就是说FB具有FC的功能,同时拥有一个DB块。

FC全称是Function函数。

注:DB块全称DataBlock 数据存储区域,类似数据库中关系表结构。

那首先什么函数呢?函数 f(x)就像机器或黑箱,给予输入值x便产生唯一输出值f (x)。

x是自变量,f(x)是因变量。

我们再看一下FB和FC的内部结构,作为一个块拥有属于自己的管脚,其中包括:IN——变量从外部输入,只能被本程序读,不能被本程序写。

OUT——是由本程序块输出的,可以被本程序块读写,其他程序只能读这个值而不能写。

IN_OUT——输入输出变量,本程序和其他程序都可以读写这个引脚的值。

TEMP——临时变量,顾名思义是暂时存储数据的变量。

这些临时的数据存储在CPU工作储存区的局部数据堆栈(即L区)中。

STAT——在plc运行期间始终被存储,S7将静态变量定义在背景数据块(仅FB拥有静态变量),当被调用时可以读写静态变量,调用结束后静态变量保存在数据块中,静态变量在某种程度上可以作为全局变量来进行使用,但使用时需要注意,这里不建议新手使用。

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么用?

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么用?

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么⽤?朋友们好,我是电⼦及⼯控技术,我来回答这个问题。

很多不管是学习西门⼦PLC的还是学习施耐德或者是三菱的PLC,在PLC的编程软件中我们会常常遇见到“FB”、“FC”、“DB”、“OB”这样的程序块,以⾄于使初学PLC编程的朋友常常对此很容易产⽣混淆,甚⾄⽤错。

今天利⽤闲暇时间给朋友们梳理⼀下这些程序块到底是是代表什么意思,我们⼜该如何去⽤它们。

学过PLC的朋友都知道,在对软件编写程序的时候我们常常⽤三种编程⽅法,⼀种是结构化编程,另⼀种是线性化编写程序,还有⼀种是模块化的程序编写。

特别是在模块化编程和结构化编程中就会常常⽤到上述⽤户块的功能。

⾸先我们先解答⼀下什么是“块”。

“块”的诞⽣和功能1、“块”的功能在PLC程序中有两种程序,⼀种是⼚家在⽣产PLC时把它固化在PLC内部CPU中的系统程序,还有⼀种就是我们需要⾃⼰编写且能够随意“擦写”和下载的⽤户程序。

我们在编写PLC程序时,为了使我们的程序条理清晰和便于管理维护和阅读,软件制作者给我们规制制作了不同功能的块,我们在编写程序时就把不同功能的程序写在不同的程序块中,当PLC运⾏时,它的CPU就会按照程序需要运⾏的条件去命令相应的“块”来完成特定的控制任务,这就是块的功能。

“FC”函数的意义及使⽤在PLC编程软件中的'FC'是指函数的意思,它是⽤户⾃⼰编写的程序块。

在函数(FC)中是没有数据存储器的,它是可以通过调⽤使⽤,在调⽤时要给它的形式参数送⼀个具体的数值才可以⽤。

另外在这个“FC”函数⾥⾯是有局部变量表和块参数的,⽐如这些变量可以是有输⼊、输出和输⼊/输出和临时变量等。

它有点类似⼀个⼦程序,可以在主程序中调⽤。

举个PLC启停控制的简单例⼦,我们可以在主函数中建⽴⼀个⼦函数“FC”命名为“启停控制FC1”,建⽴好函数后给启动按钮与停⽌按钮以及输出继电器关联⼀个具体的实际参数就可以了。

S7-1200数据块怎么使用,本文让你一目了然

S7-1200数据块怎么使用,本文让你一目了然

S7-1200数据块怎么使用,本文让你一目了然数据块大体分为全局数据块和背景数据块,本文主要针对全局数据块进行讲解,熟悉STEP7的朋友会很快上手。

希望通过本文的说明能对大家学习博途有些帮助。

1. 创建DB块:在项目中添加了S7-1200设备之后,在项目树中此PLC的'程序块'下即可以添加新的数据块。

图1 DB块的创建在打开的'添加新块'窗口下选择数据块。

以下是对此窗口下各项配置的说明:名称:此处可以键入DB块的符号名。

如果不做更改,那么将保留系统分配的默认符号名。

例如此处为DB块分配的符号名为“Data_block_2”;类型:此处可以通过下拉菜单选择所要创建的数据块类型-全局数据块或背景数据块。

如果要创建背景数据块,下拉菜单中列出了此项目中已有的FB供用户选择。

语言:对于创建数据块,此处不可更改。

编号:默认配置为“自动”,即系统自动为所生成的数据块配分块号。

当然也可以选择“手动”,则“编号”处的下来菜单变为高亮状态,以便用户自行分配DB块编号。

块访问:默认选项为“已优化”,当选择此项时,数据块中的变量仅有符号名,没有地址偏移量的信息,该数据块仅可进行符号寻址访问。

选择“已优化”创建数据块可优化CPU对存储空间的分配及访问,提升CPU性能;用户也可以选择“标准-与S7-300/400兼容”,获得与S7-300/400数据块相同的特性,数据块中的变量有符号名和偏移量,可以进行符号访问和绝对地址访问。

注意:数据块的块访问属性只能在创建数据块时定义。

创建完成后无法修改数据块的访问属性。

如果在编程中需要对数据块进行绝对地址访问,必须在创建该数据块时将块访问设置成“标准-与S7-300/400兼容”。

当以上的数据块属性全部定义完成,点击“确定”按钮即创建完成一个数据块。

用户可以在项目树中看到刚刚创建的数据块,如图2所示:图2 项目树中的DB块2. 为数据块定义变量:双击打开数据块即可逐行添加变量,如图3所示。

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么用?

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么用?

什么是PLC的FB,FC,DB,OB,这些块是什么意思?怎么
用?
首先FB块功能块,FC功能。

FC里面可以编程不同的程序就是没有共同程式的程序而后被OB块调用,OB是执行,它可以调用你所编的程序的每个块,调用你所编的块之后,然后PLC只能通过扫描OB 块来处理你所编程序,OB块可以调用很多块。

FB块里面主要编的就是一些有共同程式的一些程序,举例,三个电机要分别运行,都是通过星三角启动的,只是他们功率不一样,所以所选择的交流接触器,热保护型号也不一样,包括启动关闭开关形成的电路图都是一样的,所以此时他们三个电路图都是一样的,这就起他们的共同点形成的程式,这个共同的程式也就是电路图就编程在FB里面,每个FB块可以形成不同的DB,DB里面就是没有电机运行的参数。

三个电机就会调用共同的FB三次就形成3个DB块,每个DB对应每组的参数。

这个DB块我们称之为背景数据块,因为它是一个DB相对应一组电机的。

FC在编程的时候也会产生数据。

这个数据在共享数据块里,都可以调用的,公用的。

功能块(FB)教材

功能块(FB)教材

目录第一章功能块(FB)编程概述11.1功能块(FB)简介11.2功能块(FB)使用特点11.3功能块(FB)使用环境21.3.1 支持FB功能的PLC类型21.3.2.支持FB功能的软件21.3.3 CX-Programmer6.0功能块特点2第二章梯形图功能块32.1梯形图功能块编程基础32.1.1梯形图功能块结构介绍32.1.2 梯形图功能块编辑区介绍42.2创建功能块42.2.1 新建梯形图FB52.2.2 设置功能块变量62.2.3 编写FB梯形图72.3使用功能块82.3.1 调用梯形图功能块82.3.2 梯形图FB的嵌套92.3.3 保存梯形图FB112.3.4 调试梯形图FB112.4FB存分配注意事项13第三章高级语言(ST语言)功能块15 3.1ST语言功能块编程基础153.1.1 高级语言编程概念153.1.2 ST语言编程特点153.2ST语言编程系统介绍163.2.1 ST语言常用运算符173.2.2 ST语言基本命令183.2.3 ST语言编程规则213.3创建ST语言FB223.4ST语言FB的使用243.4.1 调用ST语言FB243.4.2 ST语言FB的嵌套243.4.3 ST语言FB的保存和调试25第四章功能块——FB库264.1FB库概述264.1.1 FB库特点264.1.2 FB库应用简介264.2FB库容介绍284.2.1 FB库容简介284.2.2 FB库功能分类284.3FB库功能块使用294.3.1 创建FB库中的功能块294.3.2 阅览FB库中的功能块程序304.3.3 调用FB库中的功能块30第五章功能块应用示例31附录一:ST语言语法错误一览表36第一章功能块(FB)编程概述OMRON编程软件CX-Programmer从5.0版本开始,增加了一个全新的编程功能——功能块(Function Block,简称FB)。

CJ、CS、CP1H系列的PLC可以使用这个功能进行编程,它大大增强了CX-Programmer软件对PLC编程、控制和调试的能力。

S7-1200第14讲:扩展指令讲解5-FC和FB编程、DB块讲解、数据记录指令

S7-1200第14讲:扩展指令讲解5-FC和FB编程、DB块讲解、数据记录指令

DataLogClose(关闭数据日志)指令: 关闭打开的数据日志文件。对已关闭的数据日志执行 DataLogWrite 操 作将导致错误。 再次执行DataLogOpen操作之前,禁止对此数据日志 执行写操作。切换到 STOP模式时将关闭所有已打开的数据日志文件。
6. 当写入的条数达到设定的记录条数时,可选择以下两种情况之一再 分别写入数据记录 情况一:打开已有数据日志文件
新建数据日志文件成功后,可按照第4步再写入一条新的数据记录。
DataLogNewFile(在新文件中创建数据日志)指令: 允许程序根据现有数据日志文件创建新的数据日志文件。
借助 S7-1200 的 Web 服务器,用户可经由 Web 页面来访问 CPU 相 关数据以及过程数据。
S7-1200 包含可通过 PC 的 Web 浏览器进行访问或通过移动设备访问 的标准 Web 页面:
DataLogCreate 指令的 DATA 参数: DATA 参数指向用作新日志记录临时缓冲区的存储器,必须将其分配
给 M 或 DB 位置。可以分配整个 DB(源自创建 DB 时分配的 PLC 数据 类型),也可分配部分 DB(指定的DB 元素可以是任何数据类型、数据 类型结构、PLC 数据类型或数据数组)。
可通过修改 DB 块的属性将 DB 块修改为标准 DB 块或优化的 DB 块, 如下图所示:
如 DB 块属性为标准 DB 块,该 DB 块内变量的偏移地址(offset) 被编译后会出现,标准 DB 块与优化的 DB 块对比如下图所示:
标准 DB
优化 DB
数据管理
取决于变量的生明。用户可以 数据被系统管理和优化。用户可以
当写入的条数达到设定的3条记录条数时,如果旧的变量值允许被新 的变量值覆盖,可再调用“DataLogOpen”指令打开这个数据日志文 件,如下图所示:

FB块的使用技巧和多重背景数据的使用

FB块的使用技巧和多重背景数据的使用

FB块的使用技巧和多重背景数据的使用
FB的使用技巧:FB的执行需要专门提供一个数据块DB,背景数据块DB,只能FB块访问使用它我
们先制作一个FB块,这里不在演示制作的过程(和FC一样),具体要求见下图:FB内程序建立完成后,
在OB1中调用(可多次调用 ...
FB的使用技巧:
FB的执行需要专门提供一个数据块DB,背景数据块DB,只能FB块访问使用它
我们先制作一个FB块,这里不在演示制作的过程(和FC一样),具体要求见下图:
FB内程序建立完成后,在OB1中调用(可多次调用)
因为FB可以多次调用,程序在运行的时候会有很多地方在使用FB,当我们需要看着FB内的程序进有很多实际参数给他不同的信号,我们无法看到我们想要的实际参数单独在FB内运行的效果,给用测试操作的功能,对FB内测行单独调试,方法如下图:
OK完成,可以对FB(多次调用的)进行单独的调试了
多重背景数据的使用:
(多重数据就是在一个FB内多次调用另一个FB,以达到减少FB使用数目的目的)
下面举个例子说明多重背景数据的使用:
前面我们建立了一个FB1(电机的启停控制),如果我们想控制很多电然而每个CPU支持调用FB数目是有限的,这边FB1(电机启停功能)用的多,就代表我们其他功
为了解决CPU能调用的FB数目有限这个局限,我们可以把很多FB1一起做成多重背景数据放到F 就解决了,方法入下图:
新建一个FB功能块(FB2)
OK,下面我们在OB1中调用FB2,就可以在不调用FB1的情况下达到多次调用FB1的效果了我们看一下DB102里的数据:
DB102里面集合了FB1的背景数据块的内容
使用小技巧。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用户在变量声明表中创建本块中专用的变量(即局域变量)。

局域变量分为IN(输入变量)、OUT(输出变量)、IN-OUT(输入/输出变量)、TEMP(临时变量)和STAT (静态变量)五种类型。

⏹·IN(输入变量):为调用它的块提供的输入参数。

⏹·OUT(输出变量):返回给调用它的块的输出参数。

⏹·IN-OUT(输入-输出变量):初值由调用它的块提供,被
子程序修改后返回给调用它的块。

⏹·TEMP(临时变量):暂时保存在局域数据区中的变量。

只是在执行块时使用临时变量,执行完后,在主程序中不能再使用该变量。

⏹·STAT(静态变量):在功能块的背景数据块中使用。


闭功能块后,其静态数据保持不变。

功能( FC)没有静态变量。

IN(输入变量)、OUT(输出变量)和IN-OUT(输入/输出变量)属于程序块的形式参数。

TEMP(临时变量)属于程序块的局域变量,只在它所在的块中有效。

STAT(静态变量)只在FB程序块中存在,也属于程序块的局域变量,在它所在的块中有效,而且PLC 掉电后STAT变量仍然保持。

每一种类型的变量都包括变量名、变量类型和变量注释。

变量声明表的左边给出了该变量表的总体结构,点击某一变量类型,例如“OUT”,在表的右边将显示出该类型局域变量的详细情况。

块中的局域变量名必须以字母开始,只能由英语字母、数字、下划线组成,,但是在符号表中定义的共享数据的符号名可以使用其他字符。

在程序中,操作系统在局域变量前面自动加上“#”号。

如果在块中只使用局域变量,不使用绝对地址或全局符号,易于形成通用子程序块实现结构化编程,并且易于将程序块移植到别的项目中去。

变量声明后在局域数据块中为临时变量( TEMP)保存有效的存储空间。

对于功能块FB,还要为配合使用背景数据块为静态变量(STAT)保存空间。

通过设置IN(输入)、OUT(输出)和IN-OUT(输入/输出)类型变量,声明块调用软件接口(即形式参数)。

用户在功能块中声明变量时,除了临时变量外,它们将自动出现在功能块对应的背景数据块中。

在变量声明表中赋值时,不需要指定存储器地址;根据各变量的数据类型,程序编辑器自动地为所有局域变量指定存储器地址。

生成功能块FB并调用
生成背景数据块并修改实际值。

相关文档
最新文档