功能块FB教材.docx

上传人:b****5 文档编号:4740515 上传时间:2022-12-08 格式:DOCX 页数:39 大小:791.10KB
下载 相关 举报
功能块FB教材.docx_第1页
第1页 / 共39页
功能块FB教材.docx_第2页
第2页 / 共39页
功能块FB教材.docx_第3页
第3页 / 共39页
功能块FB教材.docx_第4页
第4页 / 共39页
功能块FB教材.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

功能块FB教材.docx

《功能块FB教材.docx》由会员分享,可在线阅读,更多相关《功能块FB教材.docx(39页珍藏版)》请在冰豆网上搜索。

功能块FB教材.docx

功能块FB教材

 

 

第一章功能块(FB)编程概述

 

OMRON编程软件CX-Programmer从5.0版本开始,增加了一个全新的编程功能——功能块(FunctionBlock,简称FB)。

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

功能块(FB)主要提供了梯形图和高级语言2种编程方法,结合软件自带的功能库,给用户提供了全新的简单、高效、集成化的编程方法和环境。

1.1功能块(FB)简介

功能块(FunctionBlock)是预先编辑或测试的程序集合,具有特定的功能要素,可嵌入原有的梯形图中执行,并通过设置I/O来使用这个功能。

CX-Programmer5.0以上的版本具有FB功能,并且CS、CJ系列的PLC的CPU单元版本号高于3.0才支持该功能。

用户可以使用2种语言创建功能块:

梯形图语言和高级语言(ST语言)。

1.梯形图功能块:

熟悉使用梯形图编程的用户可以用这种方式创建功能块,这和使用梯形图在CX-Programmer中编程的方式是一样的。

对于熟悉CX-Programmer的用户来说,这种编程方式是简单易学的。

2.高级语言(ST语言)功能块:

ST语言是一种用于工业控制的高级语言,是类似VB、VC的高级语言。

熟悉这种语言的用户同样可以用它创建ST功能块,用高级语言可以实现复杂的数据处理过程和控制过程。

1.2功能块(FB)使用特点

1.相似控制功能“模块”化。

在一些繁冗的程序中,如果其中有一些控制过程是类似的,那么用户可以把这些类似的控制过程定义为“模块”。

这样,每次需要实现这些控制功能时,就不用重复写很多条程序,只要调用用户自定义的“模块”就可以了。

把这些控制功能“模块”化,使得编程工作更清晰,更简便,更易于管理。

2.数字运算过程简单化。

使用功能块中ST语言编程,能够处理更复杂的算术运算。

原来要在PLC中处理数字量,需要编写梯形图来进行算术运算,一步程序也只能完成一个算法,要完成复杂的算法需要编写很多程序。

现在用ST语言,就可以用精简的高级语言编写复杂的算术运算过程。

3.CX-P软件自带FB库。

CX-Programmer软件自带FB库,用户可以根据需要调用FB库中自带的功能块。

FB库让用户无需编辑梯形图,就可以使用PLC单元和元器件的基本功能,并且易于使用,无需程序调试,简单易懂,具可扩展性。

4.编程操作更简单。

功能块的调用、编辑、删除就象对指令的操作一样简单。

编辑功能块部的程序也很简便,只需找到相对应的功能块,就可以在“块”的部进行程序的编辑,而不需要在繁冗的程序中查找修改。

5.程序检查更容易。

功能块程序的检查很方便,只要在“块”中检查程序的流程和可靠性即可,工作量小,检查简单。

使用功能块缩短了主程序的大小,并且功能块的查找也很简单,从而使得程序的检查工作变得更容易。

上述功能块(FB)的这些特点给用户提供了一个易于编程、管理程序、调试程序的编程环境。

下面就详细介绍功能块功能的使用和操作。

1.3功能块(FB)使用环境

1.3.1支持FB功能的PLC类型

CJ、CS、CP1H系列的PLC才支持FB功能,并且CJ、CS的CPU单元版本号需要在3.0或3.0以上。

具体机型可参考下表:

PLC类型

CPU型号

CS1G-H

CS1G-CPU42H/43H/44H/45H

CS1H-H

CS1H-CPU63H/64H/65H/66H/67H

CJ1G-H

CJ1G-CPU42H/43H/44H/45H

CJ1H-H

CJ1H-CPU65H/66H/67H

CJ1M

CJ1M-CPU11/12/13/21/22/23

1.3.2.支持FB功能的软件

需使用CX-Programmer5.0及以上版本。

1.3.3CX-Programmer6.0功能块特点

在CX-ONE软件中的CX-Programmer6.0,其中的FB功能有很多先进的功能,现简单介绍如下:

1.在线可以察看功能块的部程序运行情况。

在CX-Programmer6.0中,用户是可以查看FB部程序运行情况的,提高了用户对程序的查错能力。

2.功能块支持嵌套。

在CX-Programmer6.0中,如果创建了多个功能块,如FB1、FB2、FB3,则可以实现FB1的部程序中调用FB2,FB2的部程序调用FB3。

梯形图FB最多支持8层嵌套,而ST语言FB则可以自由的嵌套。

3.FB支持程序更新。

CX-Programmer6.0中,如果更改了FB的部程序,在调用该功能块的地方,只需更新该功能块即可。

 

第二章梯形图功能块

2.1梯形图功能块编程基础

使用过CX-Programmer的用户都非常熟悉梯形图编程模式和编程环境。

因此,CX-Programmer仍然提供了老用户熟悉的梯形图语言来创建和编辑功能块的部程序。

2.1.1梯形图功能块结构介绍

梯形图功能块是由完成特定功能的程序段组成的。

组成程序的每一步都有输入和输出,功能块中的输入和输出被定义成变量的这种特点,决定着它能够成为一个编程“元素”,而能够在不同的程序中被多次调用。

总的来说,功能块是由变量+算法构成的。

1.变量:

变量是指输入、输出和部地址,在编辑功能块的时候给这些地址一个变量名。

功能块运行时,它们对应着外部的实际地址。

2.算法:

算法是依靠梯形图的编程来完成的。

依靠算法可以完成某个特定的控制功能。

举个简单的例子说明。

如下图2-1所示,要实现按下开0.00开关5秒后接通输出10.00,梯形图程序如(a)图所示。

如要把这个功能做成功能块的形式,以便今后编程时调用,必须将其中的输入、输出甚至中间变量都定义称为变量,如(b)图所示。

在每次调用功能块的时候,无需知道部结构,只要知道该FB能实现的控制功能,及输入、输出变量对应完成什么功能,就可以直接使用了(如图2-1(c)所示)。

(a)

(b)

(c)

将输入、输出定义成变量

调用时输入地址

图2-1

2.1.2梯形图功能块编辑区介绍

梯形图语言的编程界面如下图2-2所示:

从图上分界线来看,可以把整个操作界面分成2个部分,上半部分①是变量设置区,下半部分②是梯形图编辑区。

①①

①变量设置区②FB梯形图编辑区

图2-2

1.变量设置区:

定义变量名,包括输入变量,输出变量和部变量。

其中外部变量和部变量在使用中对应着实际的输入/输出地址。

部变量是用来定义梯形图中中间变量的。

外部地址提供了一些有特殊功能的,系统定义好的符号可供使用。

2.梯形图编辑区:

在梯形图编辑区可以编写梯形图程序,其中的I/O地址都使用变量设置区设置好的变量名。

2.2创建功能块

用户在编写主程序时,一旦要用到FB功能,需要根据要求先创建功能块。

使用FB功能的步骤基本上为(如下图2-3所示):

新建功能块→定义功能块变量→编写FB部程序→调用功能块→定义功能块的I/O地址。

无论使用梯形图FB还是ST语言FB,基本步骤都是相同的,只是其中对程序的编辑方式会有所不同,下面将详细介绍一下如何使用FB功能。

 

新建功能块-创建一个新的FB项目

定义FB变量-定义FB程序地址变量

编写FB程序-编写FB的内部程序

调用FB-在主程序中调用功能块

定义I/O-定义主程序FB变量的地址

 

图2-3

2.2.1新建梯形图FB

在“新PLC”目录下,可以看到“功能块”子目录,包含有这个子目录的PLC才支持FB功能。

右击“功能块”,选择“插入梯形图功能块”就创建了一个梯形图功能块,并且创建的功能块就在“功能块”目录下。

 

图2-4

2.2.2定义功能块变量

创建了一个梯形图FB后,默认的FB名称为“功能块1”,双击它就进入梯形图FB编程界面。

在编程界面的上方,是变量设置区。

在功能块的程序中,地址不是实际的I/O地址,而是使用变量名作为地址。

在实际使用功能块的时候,再将实际的I/O地址和变量一一对应起来。

在这点上功能块是不同与子程序的,功能块中的地址是变量名,可以随着程序的改变,使用要求的改变而改变。

图2-5

变量设置区列出了变量的用法、名称、属性等信息。

该区域包含了4个部分:

部变量、输入变量、输出变量、外部变量。

1.部变量:

部变量只被用于功能块程序部。

它不能够通过实际的I/O地址来进行动作。

相当于常说的中间变量。

2.输入变量:

输入变量可以和实际的I/O输入地址对应起来,通过实际的I/O输入来控制功能块的输入。

系统默认的输入变量是“EN”,表示只有当“EN”条件为ON的时候,功能块其它输入变量才得到外部的输入地址的输入信号。

3.输出变量:

输出变量可以和实际的I/O输出地址对应起来,实际的I/O输出可以通过输出变量得到输出信号。

4.外部变量:

外部地址是常用的一些系统定义好的变量地址。

它们在CX-Programmer的程序段中也可以使用。

在“符号”中可以找到其中一些地址。

当然,用户在“全局符号”中定义的符号在“外部变量”中也可以找到。

在4类变量中可以定义各自的变量。

定义变量时需要设置变量的属性,下面介绍一下定义变量时的属性设置:

图2-6

1)名称:

即变量名,是用来定义功能块中变量的。

在不同的功能块中可使用同样的变量名。

2)数据类型:

功能块提供如下数据类型可供使用。

表2-1定义变量可使用的数据类型列表

数据类型

类型含义

数据占用空间

输入变量

输出变量

部变量

BOOL

1位

OK

OK

OK

INT

整型

16位

OK

OK

OK

UNIT

无符号整型

16位

OK

OK

OK

DINT

有符号双字

32位

OK

OK

OK

UDINT

无符号双字

32位

OK

OK

OK

LINT

有符号长整型(4字)

64位

OK

OK

OK

ULINT

无符号长整型(4字)

64位

OK

OK

OK

WORD

16位

OK

OK

OK

DWORD

双字

32位

OK

OK

OK

LWORD

长字

64位

OK

OK

OK

REAL

实型

32位

OK

OK

OK

LREAL

长实型

64位

OK

OK

OK

TIMER

计时器型

1字(标志位占1位)

NO

NO

OK

COUNTER

计数器型

1字(标志位占1位)

NO

NO

OK

3)使用:

定义变量为部变量、输入变量、输出变量、外部变量其中之一。

4)初始值:

选择变量的初始状态。

变量是位地址时,初始状态为ON/OFF。

变量地址是字地址时,初始状态是设定通道的初始值。

5)注释:

可以为变量名添加一些注释。

2.2.3编写FB梯形图

如图2-2所示,FB的梯形图需要在下方的梯形图编辑区中进行编写。

FB的梯形图和主程序中的梯形图的区别在于:

FB梯形图中的地址都是以变量名的方式定义的,而主体程序中的地址都对应着实际的地址。

现以图2-1的梯形图为例,说明如何创建实现该功能的FB梯形图。

创建FB梯形图的步骤如下图2-7所示:

图2-7

1.列出输入/输出点:

将原来梯形图中的表示输入和输出的地址列出来。

2.将输入/输出地址转换成变量名:

将原来输入/输出的I/O地址一一定义一个变量名。

不同的控制对象需要选择不同的数据类型。

例如程序中定义输入点0.00的变量名为a,数据类型为BOOL;T0000的变量名为b,数据类型为TIMER;输出点的变量名为c,数据类型为BOOL。

3.编写FB梯形图:

编写的方式和主体程序的编写方式几乎一样。

区别在于,需要将原来的实际地址转换成变量名。

例如TIM指令,原来的写法是TIM0000#50,FB程序就应该写成TIMC#50。

以上看来,在FB梯形图编辑区编写梯形图和主体程序编写梯形图的方法几乎一样,并且也可以调用工具栏上的快捷工具来进行程序的编写。

只要在输地址的地方键入变量名即可。

2.3使用功能块

2.3.1调用梯形图功能块

创建好梯形图FB后,在主体程序中就可以调用该功能块了。

下面将调用以上创建好的梯形图FB作为例子进行说明。

 

 

图2-7

 

图2-8

1.先定义一个I/O地址用来启动梯形图FB,①所示的开关0.00用于启动功能块。

如果0.00为ON,执行功能块中的程序,如果0.00为OFF,不执行功能块程序。

2.然后调用工具栏上的“功能块”按钮

创建一个新功能块。

选择已经创建好的功能块并取名“延时5秒”。

因为功能块和开关、指令、输出线圈一样,在程序中就是一个“元素”,所以这个起了名称的“元素”将会登记到“符号”目录的列表中。

(所以,在删除创建的功能块的时候,必须在“符号”列表中将该功能块对应的“符号”删除,才能删除梯形图FB这个对象。

3.调用好创建的功能块后,需要给输入、输出变量定义一个实际的I/O地址。

使用“功能块参数”按钮

给变量定义I/O地址。

如图中②处,赋给输入变量a地址1.00,③处,赋给输出变量c地址10.00。

由上述调用功能块的步骤可以看出:

调用功能块首先要设置EN的控制地址用来启用功能块,然后定义输入、输出变量的地址就完成了调用。

使用者不需要知道功能块部的程序具体是怎样的,只要知道功能块的功能以及输入、输出控制的定义,即可使用。

并且一个功能块在同一个程序中可以被多次调用,只要将输入、输出的地址改变一下就可以了,所以说FB的调用是非常简便的。

2.3.2梯形图FB的嵌套

编写好梯形图FB的部程序后,基本创建了一个完整的功能块。

但在编写一些工业控制程序时,仅使用一个功能块的情况是非常少的。

并且,如果控制功能多样复杂,简单的调用也不能够满足需要,这时,功能块的嵌套功能就非常必要。

下面主要介绍一下如何使用功能块嵌套功能。

要使用FB的嵌套功能,至少需要创建2个或2个以上的功能块。

下面创建2个功能块:

FB1要求:

输入接通后延时n秒后接通输出。

FB2要求,对延时时间n进行判断,如果超过100秒,则报警输出接通。

嵌套功能需实现在FB1中嵌套FB2,完成输入接通n秒后接通输出,如果用户输入的时间超过100秒,输出报警。

要实现在FB1中嵌套FB2,先要创建FB2,然后在创建FB1部程序中才可以调用FB1。

下面列出FB2的变量和部程序:

 

表2-2功能块2变量列表

功能块

变量类别

变量名

数据类型

变量说明

功能块2

输入变量

a

INT

用户定义的延时时间

输出变量

b

BOOL

超时报警点

图2-9(FB2部程序)

建立了FB2后,开始创建FB1,在FB1中调用FB2,只需将FB2看成像“指令”一样的程序元素那样调用就可以了,调用的同时功能块会自动登陆到变量列表中。

下面列出了FB1的变量和部程序:

表2-3功能块1变量列表

功能块

变量类别

变量名

数据类型

变量说明

功能块1

输入变量

输入

BOOL

用来控制输出的输入点

时间值

INT

用户定义的延时时间

部变量

n

TIMER

定时器号

时间判断

FB<功能块2>

调用的FB2

输出变量

输出

BOOL

延时输出点

输出报警

BOOL

超时报警点

图2-10(FB1部程序)

FB1,FB2的创建完成后,就可以在主程序中直接调用FB1。

在输入时间的地址,一旦输入时间大于100秒,输出报警位就会置“ON”。

主程序部分如下图2-10所示,0.00延时接通1.00,0.01延时接通1.01。

延时的时间值分别放在D0和D10通道中,当其中的时间值超过100秒,报警点50.00或者50.01就会输入报警。

图2-11(主程序部分)

2.3.3保存梯形图FB

如下图2-12所示,可以将编辑好的功能块单独保存起来,文件名为(*.cxf)。

这样,如果用户创建好功能块后,今后也可以在不同的程序中进行调用。

 

图2-12

2.3.4调试梯形图FB

对于CJ、CS系列的PLC的程序调试,无需连接到真正的PLC上,在CX-Programmer软件中可以通过仿真功能,就可以对梯形图程序进行监控。

监控功能不仅能实现对程序使用的位和通道进行监控,同样也能对调用的功能块进行监控。

要监控功能块,在仿真状态,双击调用的功能块或者右击该功能块,选择[监控功能块梯形图实例]就可转换到监控FB的界面。

在监控FB的界面,可以完成监控FB中的位和通道,改变PV值,强制置位/复位等操作。

监控的操作步骤如下:

1.选择[PLC]→[工作在线仿真器],模拟下传程序后,就可以对程序进行在线仿真的调试工作了;

2.选择[视图]→[窗口]→[查看],打开查看窗口。

3.在主程序中选择调用的功能块,在弹出的菜单中选择[在查看窗口中注册],在弹出的对话框中“用法”和“数据类型”选择全部。

所有功能块中的变量都被登记在查看窗口中,用户可以根据需要来进行调试。

如图2-13所示:

图2-13

4.双击主程序中的功能块实例,就可以进入监控FB的部程序的界面。

5.用户可根据需要对位进行置位/复位,改变通道的PV值等操作。

整个操作过程可以参考下图2-14:

图2-14

2.4FB存分配注意事项

前面介绍了功能块的创建以及使用方法,在创建和使用的过程中,熟悉了FB的结构以后,下面介绍一下使用FB功能的存分配需要注意的事项。

创建了功能块以后,在主程序里调用创建的功能块,在主程序中被调用的FB我们称作“功能块实例”或者简称“实例”。

并且要对引用的FB进行命名,如下图2-15所示:

图2-15

创建的功能块如果没有被调用,那么执行主程序的时候不会执行该功能块,同时,PLC也不会分配该功能块的I/O地址。

一旦程序中调用了功能块,那么PLC将会自动分配一部分I/O存供FB实例运行使用。

主程序可以对同一个FB进行多次调用,如果实例的名称一样,则占用的I/O存一样,如果实例的名称不一致,则PLC分配不同的I/O地址给不同的实例。

所以说实例的I/O分配是否相同,是根据实例的名称决定的,具体情况如下图2-16所示:

图2-16

PLC自动分配一部分存给FB实例供其运行,并且自动分配H区的I/O供功能块实例运行。

用户也也可自己设定供FB实例使用的I/O地址。

选择[PLC]→[功能块存]→[功能块存分配]来进行设定,如下图2-17所示:

图2-17

双击“起始地址”或者“结束地址”,就可选择分配给功能块实例的存区,然后输入起始地址和结束地址。

然后在主程序编程中,就需要注意不要使用这些已经分配给功能块实例的地址作为编程的部地址来使用。

在编程时,主程序编写完成后,可以查看当前程序占用了多少存。

通过[视图]→[存视图]→[功能块存分配],可以查看当前程序占用了多少存,其中功能块占用了多少以及还剩下多少存。

如下图2-18所示:

图2-18

第三章高级语言(ST语言)功能块

3.1ST语言功能块编程基础

3.1.1高级语言编程概念

ST语言(StructureTextLanguage)是一种用于工业控制的高级语言。

它类似于PASCAL语言,有选择语句或者循环语句等这些语言结构。

通过使用这些语言结构来编写控制程序。

一个的ST程序由多条语句组成,一个语句由变量和表达式组成。

1.表达式:

表达式是包含着算法和操作数的序列。

算法包括逻辑运算、算术运算、比较运算等算法。

2.语句:

语句是由表达式构成的,可以分为赋值语句或者控制语句。

赋值语句中包含着表达式的计算结果这个信息。

控制语句包含选择语句、循环语句、条件语句等。

下面举例说明上述概念,

CASECOLOROF

1:

NofRed:

=NofRed+1;

2:

NofBlue:

=NofBlue+1;

ELSENofOther:

=NofOther+1;

ENDCASE;

IFNofRed>100ORNofBlue>100THEN

STOP:

=TRUE

ENDIF;

这个就是表达式,其中NofRed就是变量。

表达式左右2边包含的就是算法。

下面的就是CASE语句(选择语句)和IF(条件)语句。

图3-1

3.1.2ST语言编程特点

用户除了可以创建梯形图FB之外,熟悉高级语言编程的技术人员还可以创建ST语言的FB。

CX-Programmer为熟悉不同编程语言的用户提供了不同的编程平台。

这样,懂得高级语言的用户编写好复杂的ST语言功能块后,其它用户甚至是不熟悉ST语言的操作人员也可以使用该功能块,这样就大大降低了操作人员对编程语言的限制。

另外,使用高级语言编程,可以轻松完成复杂的算术运算。

如果用梯形图语言编辑复杂的算术运算功能,会写很多条程序,占用更多的程序容量。

如果用ST语言来写,用表达式就可以代替梯形图复杂的程序。

例如:

圆柱体容器的体积公式为V=

r2h,如果要计算其中液体的体积,用梯形图编程程序如下图所示:

图3-2

如果改用ST语言编写的话,程序如下:

;公式(3-1)

用梯形图语言编程,需要写4-6步程序,而且操作数较多,不便于管理和修改。

而使用ST语言,只要写好表达式即可。

所以说,对于含有复杂的算术运算的控制程序,使用ST语言编程有着一定的优势。

下面,我们就来学习如何使用这一功能。

3.2ST语言编程系统介绍

一般来说,一段程序总是由表达式和语句构成的。

了解ST语言的编程系统,就要从表达式和语句开始。

对于表达式,需要从操作符号和变量入手;而对于语句,需要掌握它的功能和语言结构。

下面,我们就来介绍一下ST语言的常用运算符及基本命令。

3.2.1ST语言常用运算符

ST语言能够实现的算术运算除了基本的加、减、乘、除之外,还能实现一些复杂的函数运算,例如指数、正(余)弦函数、对数函数等。

下面我们就来熟悉一下这些运算符号及用法。

1.基本运算符

基本运算符包括简单的加、减、乘、除、比较及一些逻辑关系的表达符号。

这些符号的使用比较简单,使用这些符号可以实现一些不太复杂的运算要求。

具体的规则及使用方法可以参考下表:

表3-1基本运算符

运算功能

操作符号

应用示例

A+B(其中A,B为变量)

A-B

*

A*B

/

A/B

比较

<,>,<=,>=

A>B,A=B

等于

=

A=B

逻辑与

&,AND

A&B,AANDB

NOT

ANOTB

逻辑或

OR

AORB

异或

XOR

AXORB

这些运算符的使用是很简单的,但在使用这些运算的过程中要注意参加运算的变量的类型。

例如除法运算,如果A、B为INT类型,A=3,B=2,那么A/B的结果就是1;如果A、B为REAL类型,那么运算结果就为1.5。

所以要根据运算要求选择适当的变量类型。

2.函数运算符

函数运算符包括指数运算、正(余)弦运算、对数函数等符号。

这些符号的使用相对复杂,使用这些符号可以实现要求更高的运算。

具体的规则及使用方法可以参考下表:

表3-2函数运算符

函数功能

函数符号

应用示例

功能

绝对值

ABS

a:

=ABS(b)

a=|b|

方根运算

SQRT

a:

=SQRT(b)

a=

自然指数

EXP

a:

=EXP(b)

a=eb

常用指数

EXPT

a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1