功能块(FB)教材_第1页
功能块(FB)教材_第2页
功能块(FB)教材_第3页
功能块(FB)教材_第4页
功能块(FB)教材_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、OMRON 功能块(FB)教材 I目录目录第一章第一章 功能块功能块(FB)(FB)编程概述编程概述 .1 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第二章第二章 梯形图功能块梯形图功能块 .3 32.1 梯形图功能块编程基础.32.1.1 梯形图功能块结构介绍 .32.1.2 梯形图功能块编辑区介绍.42.2 创建功能块.42.2.1 新建梯形图 FB .52.2.2 设置功能块变量.52

2、.2.3 编写 FB 内梯形图.72.3 使用功能块.82.3.1 调用梯形图功能块.82.3.2 梯形图 FB 的嵌套.92.3.3 保存梯形图 FB .102.3.4 调试梯形图 FB .112.4 FB 内存分配注意事项 .12第三章第三章 高级语言(高级语言(STST 语言)功能块语言)功能块.14143.1ST 语言功能块编程基础.143.1.1 高级语言编程概念.143.1.2 ST 语言编程特点 .14OMRON 功能块(FB)教材 II3.2ST 语言编程系统介绍.153.2.1 ST 语言常用运算符 .163.2.2 ST 语言基本命令 .173.2.3 ST 语言编程规则

3、.203.3创建 ST 语言 FB.213.4ST 语言 FB 的使用.223.4.1 调用 ST 语言 FB .223.4.2 ST 语言 FB 的嵌套 .223.4.3 ST 语言 FB 的保存和调试 .23第四章第四章 功能块功能块FBFB 库库.24244.1 FB 库概述 .244.1.1 FB 库特点 .244.1.2 FB 库应用简介 .244.2 FB 库内容介绍 .264.2.1 FB 库内容简介 .264.2.2 FB 库功能分类 .264.3 FB 库功能块使用 .274.3.1 创建 FB 库中的功能块.274.3.2 阅览 FB 库中的功能块程序.284.3.3 调用

4、 FB 库中的功能块.28第五章第五章 功能块应用示例功能块应用示例 .2929附录一:附录一:STST 语言语法错误一览表语言语法错误一览表.3434OMRON 功能块(FB)教材 1第一章第一章 功能块功能块(FB)(FB)编程概述编程概述 OMRON 编程软件 CX-Programmer 从 5.0 版本开始,增加了一个全新的编程功能功能块(Function Block,简称 FBFB) 。CJ、CS、CP1H 系列的 PLC 可以使用这个功能进行编程,它大大增强了 CX-Programmer 软件对 PLC 编程、控制和调试的能力。功能块(FB)主要提供了梯形图和高级语言 2 种编程方

5、法,结合软件自带的功能库,给用户提供了全新的简单、高效、集成化的编程方法和环境。1.1 功能块(FB)简介功能块(Function Block)是预先编辑或测试的程序集合,具有特定的功能要素,可嵌入原有的梯形图中执行,并通过设置 I/O 来使用这个功能。CX-Programmer5.0 以上的版本具有 FB 功能,并且 CS、CJ 系列的 PLC 的 CPU 单元版本号高于 3.0 才支持该功能。用户可以使用 2 种语言创建功能块:梯形图语言和高级语言(ST 语言) 。1. 梯形图功能块:熟悉使用梯形图编程的用户可以用这种方式创建功能块,这和使用梯形图在 CX-Programmer 中编程的方

6、式是一样的。对于熟悉 CX-Programmer 的用户来说,这种编程方式是简单易学的。2. 高级语言(ST 语言)功能块:ST 语言是一种用于工业控制的高级语言,是类似VB、VC 的高级语言。熟悉这种语言的用户同样可以用它创建 ST 功能块,用高级语言可以实现复杂的数据处理过程和控制过程。1.2 功能块(FB)使用特点1 相似控制功能相似控制功能“模块模块”化。化。在一些繁冗的程序中,如果其中有一些控制过程是类似的,那么用户可以把这些类似的控制过程定义为“模块” 。这样,每次需要实现这些控制功能时,就不用重复写很多条程序,只要调用用户自定义的“模块”就可以了。把这些控制功能“模块”化,使得编

7、程工作更清晰,更简便,更易于管理。2 数字运算过程简单化。数字运算过程简单化。使用功能块中 ST 语言编程,能够处理更复杂的算术运算。原来要在 PLC 中处理数字量,需要编写梯形图来进行算术运算,一步程序也只能完成一个算法,要完成复杂的算法需要编写很多程序。现在用 ST 语言,就可以用精简的高级语言编写复杂的算术运算过程。3 CX-PCX-P 软件自带软件自带 FBFB 库。库。CX-Programmer 软件自带 FB 库,用户可以根据需要调用 FB库中自带的功能块。FB 库让用户无需编辑梯形图,就可以使用 PLC 单元和元器件的基本功能,并且易于使用,无需程序调试,简单易懂,具可扩展性。4

8、 编程操作更简单。编程操作更简单。功能块的调用、编辑、删除就象对指令的操作一样简单。编辑功能块内部的程序也很简便,只需找到相对应的功能块,就可以在“块”的内部进行程序的编辑,而不需要在繁冗的程序中查找修改。5 程序检查更容易。程序检查更容易。功能块程序的检查很方便,只要在“块”中检查程序的流程和可靠性即可,工作量小,检查简单。使用功能块缩短了主程序的大小,并且功能块的查找也很简单,从而使得程序的检查工作变得更容易。OMRON 功能块(FB)教材 2上述功能块(FB)的这些特点给用户提供了一个易于编程、管理程序、调试程序的编程环境。下面就详细介绍功能块功能的使用和操作。1.3 功能块(FB)使用

9、环境1.3.11.3.1 支持支持 FBFB 功能的功能的 PLCPLC 类型类型CJ、CS、CP1H 系列的 PLC 才支持 FB 功能,并且 CJ、CS 的 CPU 单元版本号需要在 3.0或 3.0 以上。具体机型可参考下表:PLCPLC 类型类型CPUCPU 型号型号CS1G-HCS1G-CPU42H/43H/44H/45HCS1H-HCS1H-CPU63H/64H/65H/66H/67HCJ1G-HCJ1G-CPU42H/43H/44H/45HCJ1H-HCJ1H-CPU65H/66H/67HCJ1MCJ1M-CPU11/12/13/21/22/231.3.2.1.3.2.支持支持

10、FBFB 功能的软件功能的软件 需使用 CX-Programmer5.0 及以上版本。1.3.31.3.3 CX-Programmer6.0CX-Programmer6.0 功能块特点功能块特点 在 CX-ONE 软件中的 CX-Programmer6.0,其中的 FB 功能有很多先进的功能,现简单介绍如下:1. 在线可以察看功能块的内部程序运行情况。在 CX-Programmer6.0 中,用户是可以查看 FB 内部程序运行情况的,提高了用户对程序的查错能力。2. 功能块支持嵌套。在 CX-Programmer6.0 中,如果创建了多个功能块,如FB1、FB2、FB3,则可以实现 FB1 的

11、内部程序中调用 FB2,FB2 的内部程序调用FB3。梯形图 FB 最多支持 8 层嵌套,而 ST 语言 FB 则可以自由的嵌套。3. FB 支持程序更新。CX-Programmer6.0 中,如果更改了 FB 的内部程序,在调用该功能块的地方,只需更新该功能块即可。OMRON 功能块(FB)教材 3第二章第二章 梯形图功能块梯形图功能块2.1 梯形图功能块编程基础使用过 CX-Programmer 的用户都非常熟悉梯形图编程模式和编程环境。因此,CX-Programmer 仍然提供了老用户熟悉的梯形图语言来创建和编辑功能块的内部程序。2.1.12.1.1 梯形图功能块结构介绍梯形图功能块结构

12、介绍 梯形图功能块是由完成特定功能的程序段组成的。组成程序的每一步都有输入和输出,功能块中的输入和输出被定义成变量的这种特点,决定着它能够成为一个编程“元素” ,而能够在不同的程序中被多次调用。总的来说,功能块是由变量算法变量算法构成的。1. 变量:变量是指输入、输出和内部地址,在编辑功能块的时候给这些地址一个变量名。 功能块运行时,它们对应着外部的实际地址。2. 算法:算法是依靠梯形图的编程来完成的。依靠算法可以完成某个特定的控制功能。 举个简单的例子说明。如下图 2-1 所示,要实现按下开 0.00 开关 5 秒后接通输出10.00,梯形图程序如(a)图所示。如要把这个功能做成功能块的形式

13、,以便今后编程时调用,必须将其中的输入、输出甚至中间变量都定义称为变量,如(b)图所示。在每次调用功能块的时候,无需知道内部结构,只要知道该 FB 能实现的控制功能,及输入、输出变量对应完成什么功能,就可以直接使用了(如图 2-1(c)所示) 。 图 2-1 (a)(b)(c)将输入、输出定义成变量调用时输入地址OMRON 功能块(FB)教材 42.1.22.1.2 梯形图功能块编辑区介绍梯形图功能块编辑区介绍梯形图语言的编程界面如下图 2-2 所示:从图上分界线来看,可以把整个操作界面分成 2 个部分,上半部分是变量设置区,下半部分是梯形图编辑区。 变量设置区 FB 梯形图编辑区图 2-21

14、. 变量设置区:定义变量名,包括输入变量,输出变量和内部变量。其中外部变量和内部变量在使用中对应着实际的输入/输出地址。内部变量是用来定义梯形图中中间变量的。外部地址提供了一些有特殊功能的,系统定义好的符号可供使用。2. 梯形图编辑区:在梯形图编辑区可以编写梯形图程序,其中的 I/O 地址都使用变量设置区设置好的变量名。2.2 创建功能块 用户在编写主程序时,一旦要用到 FB 功能,需要根据要求先创建功能块。使用 FB 功能的步骤基本上为(如下图 2-3 所示):新建功能块定义功能块变量编写 FB 内部程序调用功能块定义功能块的 I/O 地址。无论使用梯形图 FB 还是 ST 语言 FB,基本

15、步骤都是相同的,只是其中对程序的编辑方式会有所不同,下面将详细介绍一下如何使用 FB 功能。OMRON 功能块(FB)教材 5图 2-32.2.12.2.1 新建梯形图新建梯形图 FBFB 在“新 PLC”目录下,可以看到“功能块”子目录,包含有这个子目录的 PLC 才支持FB 功能。右击“功能块” ,选择“插入梯形图功能块”就创建了一个梯形图功能块,并且创建的功能块就在“功能块”目录下。 图 2-4新建功能块新建功能块创建一个新的 FB 项目定义定义 FB 变量变量定义 FB 程序地址变量编写编写 FB 程序程序编写 FB 的内部程序调用调用 FB在主程序中调用功能块定义定义 I/O定义主程

16、序 FB 变量的地址OMRON 功能块(FB)教材 62.2.22.2.2 定义功能块变量定义功能块变量 创建了一个梯形图 FB 后,默认的 FB 名称为“功能块 1” ,双击它就进入梯形图 FB 编程界面。在编程界面的上方,是变量设置区。 在功能块的程序中,地址不是实际的 I/O 地址,而是使用变量名作为地址。在实际使用功能块的时候,再将实际的 I/O 地址和变量一一对应起来。在这点上功能块是不同与子程序的,功能块中的地址是变量名,可以随着程序的改变,使用要求的改变而改变。 图 2-5 变量设置区列出了变量的用法、名称、属性等信息。该区域包含了 4 个部分:内部变量、输入变量、输出变量、外部

17、变量。1. 内部变量:内部变量只被用于功能块程序内部。它不能够通过实际的 I/O 地址来进行动作。相当于常说的中间变量。2. 输入变量:输入变量可以和实际的 I/O 输入地址对应起来,通过实际的 I/O 输入来控制功能块的输入。系统默认的输入变量是“EN” ,表示只有当“EN”条件为 ON 的时候,功能块其它输入变量才得到外部的输入地址的输入信号。3. 输出变量:输出变量可以和实际的 I/O 输出地址对应起来,实际的 I/O 输出可以通过输出变量得到输出信号。4. 外部变量:外部地址是常用的一些系统定义好的变量地址。它们在 CX-Programmer 的程序段中也可以使用。在“符号”中可以找到

18、其中一些地址。当然,用户在“全局符号”中定义的符号在“外部变量”中也可以找到。在 4 类变量中可以定义各自的变量。定义变量时需要设置变量的属性,下面介绍一下定义变量时的属性设置:图 2-61)名称:即变量名,是用来定义功能块中变量的。在不同的功能块中可使用同样的变量名。OMRON 功能块(FB)教材 72)数据类型:功能块提供如下数据类型可供使用。 表 2-1 定义变量可使用的数据类型列表数据类数据类型型类型含义类型含义数据占用空间数据占用空间输入变输入变量量输出变输出变量量内部变内部变量量BOOLBOOL位1 位OKOKOKINTINT整型16 位OKOKOKUNITUNIT无符号整型16

19、位OKOKOKDINTDINT有符号双字32 位OKOKOKUDINTUDINT无符号双字32 位OKOKOKLINTLINT有符号长整型(4 字) 64 位OKOKOKULINTULINT无符号长整型(4 字) 64 位OKOKOKWORDWORD字16 位OKOKOKDWORDDWORD双字32 位OKOKOKLWORDLWORD长字64 位OKOKOKREALREAL实型32 位OKOKOKLREALLREAL长实型64 位OKOKOKTIMERTIMER计时器型1 字(标志位占 1 位)NONOOKCOUNTERCOUNTER计数器型1 字(标志位占 1 位)NONOOK3)使用:定义

20、变量为内部变量、输入变量、输出变量、外部变量其中之一。4)初始值:选择变量的初始状态。变量是位地址时,初始状态为 ON/OFF。变量地址是字地址时,初始状态是设定通道内的初始值。5)注释:可以为变量名添加一些注释。2.2.32.2.3 编写编写 FBFB 内梯形图内梯形图 如图 2-2 所示,FB 的梯形图需要在下方的梯形图编辑区中进行编写。FB 的梯形图和主程序中的梯形图的区别在于:FB 梯形图中的地址都是以变量名的方式定义的,而主体程序中的地址都对应着实际的地址。现以图 2-1 的梯形图为例,说明如何创建实现该功能的 FB梯形图。 创建 FB 梯形图的步骤如下图 2-7 所示:OMRON

21、功能块(FB)教材 8 图 2-71. 列出输入/输出点:将原来梯形图中的表示输入和输出的地址列出来。2. 将输入/输出地址转换成变量名:将原来输入/输出的 I/O 地址一一定义一个变量名。不同的控制对象需要选择不同的数据类型。例如程序中定义输入点 0.00 的变量名为 a,数据类型为 BOOL;T0000 的变量名为 b,数据类型为 TIMER;输出点的变量名为 c,数据类型为 BOOL。3. 编写 FB 梯形图:编写的方式和主体程序的编写方式几乎一样。区别在于,需要将原来的实际地址转换成变量名。例如 TIM 指令,原来的写法是 TIM 0000 #50,FB程序就应该写成 TIM C #5

22、0。以上看来,在 FB 梯形图编辑区内编写梯形图和主体程序编写梯形图的方法几乎一样,并且也可以调用工具栏上的快捷工具来进行程序的编写。只要在输地址的地方键入变量名即可。2.3 使用功能块2.3.12.3.1 调用梯形图功能块调用梯形图功能块 创建好梯形图 FB 后,在主体程序中就可以调用该功能块了。下面将调用以上创建好的梯形图 FB 作为例子进行说明。1.1.列出输入列出输入/ /输出点输出点2.2.将输入将输入/ /输出转为变量输出转为变量3.用变量名作为编程地用变量名作为编程地址,编写址,编写 FB 梯形图梯形图地址变量0.00 aT0000 b10.00 cOMRON 功能块(FB)教材

23、 9 图 2-7 图 2-81. 先定义一个 I/O 地址用来启动梯形图 FB,所示的开关 0.00 用于启动功能块。如果0.00 为 ON,执行功能块中的程序,如果 0.00 为 OFF,不执行功能块程序。2. 然后调用工具栏上的“功能块”按钮创建一个新功能块。选择已经创建好的功能块并取名“延时 5 秒” 。因为功能块和开关、指令、输出线圈一样,在程序中就是一个“元素” ,所以这个起了名称的“元素”将会登记到“符号”目录的列表中。 (所以,在删除创建的功能块的时候,必须在“符号”列表中将该功能块对应的“符号”删除,才能删除梯形图 FB 这个对象。3. 调用好创建的功能块后,需要给输入、输出变

24、量定义一个实际的 I/O 地址。使用“功能块参数”按钮给变量定义 I/O 地址。如图中处,赋给输入变量 a 地址 1.00,处,赋给输出变量 c 地址 10.00。由上述调用功能块的步骤可以看出:调用功能块首先要设置 EN 的控制地址用来启用功能块,然后定义输入、输出变量的地址就完成了调用。使用者不需要知道功能块内部的程序具体是怎样的,只要知道功能块的功能以及输入、输出控制的定义,即可使用。并且一个功能块在同一个程序中可以被多次调用,只要将输入、输出的地址改变一下就可以了,所以说 FB 的调用是非常简便的。2.3.22.3.2 梯形图梯形图 FBFB 的嵌套的嵌套 编写好梯形图 FB 的内部程

25、序后,基本创建了一个完整的功能块。但在编写一些工业控制程序时,仅使用一个功能块的情况是非常少的。并且,如果控制功能多样复杂,简单的调用也不能够满足需要,这时,功能块的嵌套功能就非常必要。下面主要介绍一下如何使用功能块嵌套功能。 要使用 FB 的嵌套功能,至少需要创建 2 个或 2 个以上的功能块。下面创建 2 个功能块:FB1 要求:输入接通后延时 n 秒后接通输出。FB2 要求,对延时时间 n 进行判断,如果超过100 秒,则报警输出接通。嵌套功能需实现在 FB1 中嵌套 FB2,完成输入接通 n 秒后接通输出,如果用户输入的时间超过 100 秒,输出报警。 要实现在 FB1 中嵌套 FB2

26、,先要创建 FB2,然后在创建 FB1 内部程序中才可以调用FB1。下面列出 FB2 的变量和内部程序:OMRON 功能块(FB)教材 10 表 2-2 功能块 2 变量列表功能块功能块变量类别变量类别变量名变量名数据类型数据类型变量说明变量说明输入变量aINT用户定义的延时时间功能块 2输出变量bBOOL超时报警点 图 2-9 (FB2 内部程序) 建立了 FB2 后,开始创建 FB1,在 FB1 中调用 FB2,只需将 FB2 看成像“指令”一样的程序元素那样调用就可以了,调用的同时功能块会自动登陆到变量列表中。下面列出了FB1 的变量和内部程序: 表 2-3 功能块 1 变量列表功能块功

27、能块变量类别变量类别变量名变量名数据类型数据类型变量说明变量说明输入BOOL用来控制输出的输入点输入变量时间值INT用户定义的延时时间nTIMER定时器号内部变量时间判断FB调用的 FB2输出BOOL延时输出点功能块 1输出变量输出报警BOOL超时报警点 图 2-10 (FB1 内部程序)FB1,FB2 的创建完成后,就可以在主程序中直接调用 FB1。在输入时间的地址内,一旦输入时间大于 100 秒,输出报警位就会置“ON” 。主程序部分如下图 2-10 所示,0.00 延OMRON 功能块(FB)教材 11时接通 1.00,0.01 延时接通 1.01。延时的时间值分别放在 D0 和 D10

28、 通道中,当其中的时间值超过 100 秒,报警点 50.00 或者 50.01 就会输入报警。 图 2-11 (主程序部分)2.3.32.3.3 保存梯形图保存梯形图 FBFB 如下图 2-12 所示,可以将编辑好的功能块单独保存起来,文件名为(*.cxf) 。这样,如果用户创建好功能块后,今后也可以在不同的程序中进行调用。图 2-12OMRON 功能块(FB)教材 122.3.42.3.4 调试梯形图调试梯形图 FBFB 对于 CJ、CS 系列的 PLC 的程序调试,无需连接到真正的 PLC 上,在 CX-Programmer 软件中可以通过仿真功能,就可以对梯形图程序进行监控。监控功能不仅

29、能实现对程序使用的位和通道进行监控,同样也能对调用的功能块进行监控。要监控功能块,在仿真状态,双击调用的功能块或者右击该功能块,选择监控功能块梯形图实例就可转换到监控 FB 的界面。在监控 FB 的界面,可以完成监控 FB 中的位和通道,改变 PV 值,强制置位/复位等操作。监控的操作步骤如下:1. 选择PLC工作在线仿真器,模拟下传程序后,就可以对程序进行在线仿真的调试工作了;2. 选择视图窗口 查看,打开查看窗口。3. 在主程序中选择调用的功能块,在弹出的菜单中选择在查看窗口中注册,在弹出的对话框中“用法”和“数据类型”选择全部全部。所有功能块中的变量都被登记在查看窗口中,用户可以根据需要

30、来进行调试。如图 2-13 所示: 图 2-134. 双击主程序中的功能块实例,就可以进入监控 FB 的内部程序的界面。5. 用户可根据需要对位进行置位/复位,改变通道的 PV 值等操作。 整个操作过程可以参考下图 2-14:OMRON 功能块(FB)教材 13 图 2-142.4 FB 内存分配注意事项 前面介绍了功能块的创建以及使用方法,在创建和使用的过程中,熟悉了 FB 的结构以后,下面介绍一下使用 FB 功能的内存分配需要注意的事项。 创建了功能块以后,在主程序里调用创建的功能块,在主程序中被调用的 FB 我们称作“功能块实例功能块实例”或者简称“实例实例” 。并且要对引用的 FB 进

31、行命名,如下图 2-15 所示:图 2-15 创建的功能块如果没有被调用,那么执行主程序的时候不会执行该功能块,同时,PLC也不会分配该功能块的 I/O 地址。一旦程序中调用了功能块,那么 PLC 将会自动分配一部分 I/O 内存供 FB 实例运行使用。主程序可以对同一个 FB 进行多次调用,如果实例的名称一样,则占用的 I/O 内存一样,如果实例的名称不一致,则 PLC 分配不同的 I/O 地址给不同的实例。所以说实例的 I/O 分配是否相同,是根据实例的名称决定的,具体情况如下图2-16 所示:在此处输入实例名称OMRON 功能块(FB)教材 14图 2-16 PLC 自动分配一部分内存给

32、 FB 实例供其运行,并且自动分配 H 区的 I/O 供功能块实例运行。用户也也可自己设定供 FB 实例使用的 I/O 地址。选择PLC功能块内存功能块内存分配来进行设定,如下图 2-17 所示:图 2-17双击“起始地址”或者“结束地址” ,就可选择分配给功能块实例的内存区,然后输入起始地址和结束地址。然后在主程序编程中,就需要注意不要使用这些已经分配给功能块实例的地址作为编程的内部地址来使用。 在编程时,主程序编写完成后,可以查看当前程序占用了多少内存。通过视图内存视图功能块内存分配,可以查看当前程序占用了多少内存,其中功能块占用了多少以及还剩下多少内存。如下图 2-18 所示:图 2-1

33、8OMRON 功能块(FB)教材 15第三章第三章 高级语言(高级语言(STST 语言)功能块语言)功能块3.1 ST 语言功能块编程基础3.1.13.1.1 高级语言编程概念高级语言编程概念ST 语言(Structure Text Language)是一种用于工业控制的高级语言。它类似于PASCAL 语言,有选择语句或者循环语句等这些语言结构。通过使用这些语言结构来编写控制程序。一个的 ST 程序由多条语句组成,一个语句由变量和表达式组成。1. 表达式:表达式是包含着算法和操作数的序列。算法包括逻辑运算、算术运算、比较运算等算法。2. 语句:语句是由表达式构成的,可以分为赋值语句或者控制语句

34、。赋值语句中包含着表达式的计算结果这个信息。控制语句包含选择语句、循环语句、条件语句等。下面举例说明上述概念, 图 3-13.1.23.1.2 STST 语言编程特点语言编程特点 用户除了可以创建梯形图 FB 之外,熟悉高级语言编程的技术人员还可以创建 ST语言的 FB。CX-Programmer 为熟悉不同编程语言的用户提供了不同的编程平台。这样,懂得高级语言的用户编写好复杂的 ST 语言功能块后,其它用户甚至是不熟悉 ST 语言的操作人员也可以使用该功能块,这样就大大降低了操作人员对编程语言的限制。 另外,使用高级语言编程,可以轻松完成复杂的算术运算。如果用梯形图语言编辑复杂的算术运算功能

35、,会写很多条程序,占用更多的程序容量。如果用 ST 语言来写,用表达式就可以代替梯形图复杂的程序。CASECASE COLORCOLOR OFOF 1:NofRed:= NofRed+1; 2:NofBlue:= NofBlue+1; ELSE NofOther:= NofOther+1;ENDEND CASE;CASE;IFIF NofRed100 OR NofBlue100 THENSTOP:=TRUE ENDIF;ENDIF;这个就是表达式,其中 NofRed 就是变量。表达式左右 2 边包含的就是算法。下面的就是 CASE 语句(选择语句)和IF(条件)语句。OMRON 功能块(FB)

36、教材 16例如:圆柱体容器的体积公式为 V=r2h,如果要计算其中液体的体积,用梯形图编程程序如下图所示: 图 3-2如果改用 ST 语言编写的话,程序如下:; 公式(3-1))*)2 ,(exp*(:Vhrt用梯形图语言编程,需要写 4-6 步程序,而且操作数较多,不便于管理和修改。而使用 ST 语言,只要写好表达式即可。所以说,对于含有复杂的算术运算的控制程序,使用 ST 语言编程有着一定的优势。下面,我们就来学习如何使用这一功能。3.2 ST 语言编程系统介绍一般来说,一段程序总是由表达式和语句构成的。了解 ST 语言的编程系统,就要从表达式和语句开始。对于表达式,需要从操作符号和变量入

37、手;而对于语句,需要掌握它的功能和语言结构。下面,我们就来介绍一下 ST 语言的常用运算符及基本命令。rr2hhr2r2hOMRON 功能块(FB)教材 173.2.13.2.1 STST 语言常用运算符语言常用运算符 ST 语言能够实现的算术运算除了基本的加、减、乘、除之外,还能实现一些复杂的函数运算,例如指数、正(余)弦函数、对数函数等。下面我们就来熟悉一下这些运算符号及用法。1. 基本运算符基本运算符包括简单的加、减、乘、除、比较及一些逻辑关系的表达符号。这些符号的使用比较简单,使用这些符号可以实现一些不太复杂的运算要求。具体的规则及使用方法可以参考下表: 表 3-1 基本运算符运算功能

38、运算功能操作符号操作符号应用示例应用示例加A+B (其中 A,B 为变量)减A-B乘*A*B除/A/B比较,=AB,AB,A=B等于=A=B逻辑与&,ANDA&B, A AND B补NOTA NOT B逻辑或ORA OR B异或XORA XOR B 这些运算符的使用是很简单的,但在使用这些运算的过程中要注意参加运算的变量的类型。例如除法运算,如果 A、B 为 INT 类型,A=3,B=2,那么 A/B 的结果就是 1;如果A、B 为 REAL 类型,那么运算结果就为 1.5。所以要根据运算要求选择适当的变量类型。2. 函数运算符函数运算符包括指数运算、正(余)弦运算、对数函数等

39、符号。这些符号的使用相对复杂,使用这些符号可以实现要求更高的运算。具体的规则及使用方法可以参考下表: 表 3-2 函数运算符函数功能函数功能函数符号函数符号应用示例应用示例功能功能绝对值ABSa:=ABS(b)a|b|方根运算SQRTa:=SQRT(b)ab自然指数EXPa:=EXP(b)aeb常用指数EXPTa:=EXPT(b,c)abc自然对数LNa:=LN(b)alogeb常用对数LOGa:=LOG(b)alog10b正弦函数SINa:=SIN(b)asin(b)余弦函数COSa:=COS(b)acos(b)OMRON 功能块(FB)教材 18正切函数TANa:=TAN(b)atan(b

40、)反正弦ASINa:=ASIN(b)asin-1(b)反余弦ACOSa:=ACOS(b)acos-1(b)反正切ATANa:=ATAN(b)atan-1(b)3. 常数表达方法熟悉了基本的运算符后,就可以编写一些表达式了。表达式中可以用变量、常量结合运算符来传递数字信息。前面我们介绍过变量的类型及表达,现在我们来了解一下 ST 语言中常量的几种表示方式。常量可以用十进制、十六进制、八进制、二进制来表示,表示方法如下表所示: 表 3-3 常量表示方法进制表达方式示例十进制数字12十六进制16#数字16#C八进制8#数字8#14二进制2#数字2#11003.2.23.2.2 STST 语言基本命令

41、语言基本命令ST 语言是类似于 Pascal 的高级语言。只要在编辑区编写 ST 语言的高级程序,就可以用来实现某段控制功能。对于熟悉高级语言的用户,ST 语言提供了很好的编程界面,只需稍微了解一下编程规则即可掌握;对于不熟悉高级语言编程的用户,ST 语言的入门也是比较容易的。下面我们介绍一下 ST 语言编程常用的命令。1.求和语句(Summary) 求和语句是个等式,用于表达把运算总和的值赋予一个变量。 表达式: 变量:=表达式/变量/常量 举例: A:=X+1; A:=B; A:=20;2.条件语句(IF 语句)IF 语句适用于当一个特定的条件满足的时候,去执行相应的控制。如果条件不满足,

42、则执行另外的控制。IF 语句有简单的对一个条件进行判断的程序,也有复杂的对多个条件进行判断的程序,即嵌套语句。1)IF 语句(单一条件)表达式:IF THEN ; ELSEOMRON 功能块(FB)教材 19 ; END_IF;执行流程图: 图 3-4举例:如果 A0,则 B 等于 A 的值,并且线圈 C 有信号输出,否则 B 等于 0,线圈C 无信号输出。 IF A0 THENB:=A; C:=TRUE;ELSEB:=0; C:=FALSE;END_IF;2)IF 语句(多条件嵌套)表达式 1: IF THEN IF THEN ; ELSE ; END_IF; END_IF; 流程图 1:

43、条件表达式 1表达式 2FalseTrueOMRON 功能块(FB)教材 20 图 3-5表达式 2: IF THEN ; ELSIF THEN ;ELSIF THEN ;.ELSIF THEN ;ELSE ;END_IF;流程图 2: 图 3-6表达式 1表达式 2FalseTrue条件 1条件 2TrueFalse表达式 1FalseTrue条件 1条件 2条件 3表达式 2表达式 3TrueTrueFalseFalseOMRON 功能块(FB)教材 21 举例:要求如下,如果 A0,X=10。否则,先参考参数 B,如果 B1,则 X1,如果B2,则 X=2,如果都不是,X=0.IF A0

44、 THEN X:=10;ELSIF B=1 THEN X:=1;ELSIF B=2 THEN X:=2;ELSE X:=0;END_IF;3.选择语句(CASE 语句)这类语句适中有一个变量,它可选择多个值,如果选择的值不同会执行不同的控制。我们可以这样理解,在工业控制中要控制对某一材料的切割,由于材料硬度不同,需要不同刀具进行切割。如:材料 1,需要用 1 号刀具进行切割;材料 2,需要用 2 号刀具进行切割, 材料 3,需要用 3 号刀具进行切割。例如这样的控制情况就可以选用CASE 语句。 表达式: CASE OF1:;2:;.N:;ELSE ;END_CASE; 举例: CASE A

45、OF1:X:=1;2:X:=2;3:X:=3;ELSE Y:=0;END_CASE;3.2.33.2.3 STST 语言编程规则语言编程规则 ST 语言编程有一些规则需要注意。在我们学会写一些简单的控制语句后,编译功能块后仍然会出现错误,所以在掌握了基本的编程符号和语句之后,也需要知道 ST 语言的编程语法和规则。1. 每个完整的表达式后要用“;”号结尾。而对于语句来说,不是每句后面都要加“;” ,所以需要注意什么地方应该加“;” ,什么地方不该加“;” 。2. 如果一个变量被定义成整型,那么不能被写成有小数点的形式。如果一个变量被定义成实型,那么这个变量不能被写成整数类型。例如:如果 A 为

46、整型,就不能写成A:=2.0。如果 A 为实型,就不能写成 A:=2。3. 布尔类型的变量的 ON、OFF 状态要用 TRUE、FALSE 来表示。如果 a 是 BOOL 变量,不能用 a:=ON(OFF), a:=1(0)来表示它的状态,要写成 a:=TRUE(FALSE)。4. 表达式前后的变量类型要一致。例如 C=A+B,如果 A、B、C 都是整型,就不会有错误。如果 C 是实型,则会出现语法错误。OMRON 功能块(FB)教材 22 当功能块程序不能通过编译的话,也可以通过查询错误代码来判断发生了什么语法错误。详细情况,可以参考附录一:附录一:STST 语言错误代码。语言错误代码。3.

47、3 创建 ST 语言 FB ST 语言功能块的创建和梯形图功能块的调用基本一样,基本步骤为:新建 ST 语言功能块定义功能块变量编写 FB 内部程序调用功能块定义功能块的 I/O 地址,如下图3-7 所示。和创建梯形图 FB 的步骤基本一致,唯一不同的是编写 FB 内部内程序需要是使用 ST 语言。 图 3-73.3.13.3.1 新建新建 STST 语言语言 FBFB 新建 ST 语言功能块与新建梯形图功能块的过程类似,只需在创建功能块的时候,选择“结构文本” ,即选择用 ST 语言建立 FB 内部程序。如下图 3-8 所示。新建功能块新建功能块创建一个新的 FB 项目定义定义 FBFB 变

48、量变量定义 FB 程序地址变量编写编写 FBFB 程序程序用 ST 语言编写程序调用调用 FB在主程序中调用功能块定义定义 I/O定义主程序 FB 的变量地址STST 语言语言OMRON 功能块(FB)教材 23 图 3-83.3.23.3.2 定义定义 STST 语言语言 FBFB 变量变量ST 语言功能块的编辑区如下图所示。 变量设置区 ST 语言编程区 图 3-9 ST 语言的变量设置和梯形图 FB 中参数设置一致。此处不再赘述。3.3.33.3.3 编写编写 STST 语言语言 FBFB 程序程序ST 语言的编辑写在变量设置区的下方。原来在梯形图 FB 的编辑界面是梯形图编辑界面,在

49、ST 语言功能块的编辑区是文本区,可以编写高级语言程序。例如:要计算的圆柱体容积,数学公式为 V=r2h,除了定义变量 r 和 h 之外,根据前面学的 ST 语言符号和函数,在 ST 语言编程区写入如下公式即可:OMRON 功能块(FB)教材 24; 公式(3-1))*)2 ,(exp*(:Vhrt3.4ST 语言 FB 的使用3.4.13.4.1 调用调用 STST 语言语言 FBFB ST 语言功能块的调用和梯形图功能块的调用基本一致。只要给出功能块的输入地址和输出地址即可。如调用上述计算圆柱体容积的功能块,如图 3-10 所示: 图 3-10 调用功能块后,给出变量 r 的地址 DO,h

50、 的地址 D5,体积 V 的地址为 D10。需要注意,示例中变量类型为实型,不同变量的地址不能使用同一内存区中连续的地址,如:r、h、V 不能使用 D0、D1、D2,因为实型数据要占用连续 2-8 个通道(根据实型类型不同,数据长度有所变化) ,所以需要适当的分配输入、输出通道。3.4.23.4.2 STST 语言语言 FBFB 的嵌套的嵌套 梯形图 FB 的嵌套前面已经学习过,ST 语言 FB 同样也支持嵌套功能。在梯形图 FB 中可以嵌套 ST 语言 FB;同样,在 ST 语言 FB 中也可以嵌套梯形图 FB。如下图 3-11 所示:主程序调用 FB1,在 FB1 中嵌套 FB2。FB1

51、为 ST 语言功能块,FB2 为 ST 语言 FB 或者梯形图FB。图 3-11输入端给出半径和高度输出端自动计算出容积OMRON 功能块(FB)教材 25 但是 ST 语言 FB 调用嵌套 FB 的语法和使用梯形图 FB 嵌套的语法是不一样的。下面列出使用 ST 语言 FB 嵌套的语法:1. 需要使能位(EN) FB2 名称(EN:=A,FB2_IN1:= FB1_IN1, FB2_IN2:= FB1_IN2FB2_OUT1= FB1_OUT1, FB2_OUT2= FB1_OUT2) ;2. 不需要使能位(EN) FB2 名称(FB2_IN1:= FB1_IN1, FB2_IN2:= FB

52、1_IN2FB2_OUT1= FB1_OUT1, FB2_OUT2= FB1_OUT2) ;3.4.33.4.3 STST 语言语言 FBFB 的保存和调试的保存和调试 ST 语言 FB 的保存、调试和梯形图语言 FB 的保存、调试的操作步骤是一样的。需要注意的是:在主程序中调用 ST 语言功能块的话,双击主程序中的 FB,进入监控 FB 的界面后,ST 语言的运行过程是无法监控的。如果 ST 语言 FB 中有嵌套梯形图 FB 的话,可以使用工具栏上“监视功能块梯形图实例”图标来实现对嵌套梯形图 FB 的监控。OMRON 功能块(FB)教材 26第四章第四章 功能块功能块FBFB 库库4.1

53、FB 库概述 CX-Programmer6.0 软件有自带的功能块,当用 OMRON 的 PLC 和 FA 元器件以不同的联网方式通信,来完成一些控制功能的时候,就可以直接调用这些已经做好的功能块。这些CX-P 自带的功能块,我们称为 FB 库。4.1.14.1.1 FBFB 库特点库特点 CX-P 提供的标准 FB 库便于 OMRON 的 PLC 连接到元器件产品,提高了 PLC 单元和元器件之间链接的连贯性。下面我们了解一下使用 FB 库的特点:1. 编程简化。用户无需再去编写程序来实现 FB 库可以实现的功能,只要直接调用 FB 库中的文件即可。节省了编程的时间,使得编程更容易。2. 使

54、用简单,容易理解。即使用户不知道 FB 文件的程序是如何编写的,只要了解输入、输出地址的定义,正确的分配功能块的控制地址就可以了。FB 库中的文件明确、详细的列出了每个变量的控制定义,和整个功能块实现的控制功能。用户使用中一有疑问,查阅相关帮助即可理解。 图 4-13. 无需测试。FB 库中的功能块程序都通过了 OMRON 的检测,用户无需测试直接可以使用。4.1.24.1.2 FBFB 库应用简介库应用简介CJ/CS1 系列的 PLC,通过串行通信的方式(RS232、RS422/485)或者 DeviceNet 网络链接到 OMRON 的元器件(如温控器) 。如果要对元器件进行读操作(如读取

55、温控器当前温度值 PV)或者写操作(如设定温控器的温度设定值 SV) ,可以在 FB 库中调用该元器件实现该输入、输出分列在两边,清晰易见。变量定义也分别给出,容易解读。OMRON 功能块(FB)教材 27功能的功能块。例如(如下图 4-2 所示):要实现 PLC 读取温控器的 PV 值,直接调用 FB库中的“_E5xx202_ReadPV10”功能块,设置对应读取地址即可。无需再编写相应的通信程序。同样, (如图 4-3 所示)PLC 以 DeviceNet 的方式链和变频器从站进行通信,也可以通过调用功能块直接实现。图 4-2图 4-3OMRON 功能块(FB)教材 284.2 FB 库内

56、容介绍4.2.14.2.1 FBFB 库内容简介库内容简介 FB 库中功能块文件都是*.cxf 的文件。FB 库中的功能块能够实现欧姆龙的 PLC 对元器件基本和重要的控制要求。这些文件在 CX-Programmer 的安装目录下,下面列出了 FB 库的内容及基本结构。图 4-44.2.24.2.2 FBFB 库功能分类库功能分类 FB 库的结构是按照元器件及各种联网方式来进行分类的。各个目录下的功能块完成的功能也不一样。用户可以参考对应功能块的参考手册来进行使用。下面对各个目录下功能块实现的功能进行分类介绍。1. CodeReader 目录:包含对二维读码器的基本读操作。OMRON 功能块(

57、FB)教材 292. Inverter 目录:控制变频器(3G3MV、3G3RV)的起停,读取或者设置变频器的参数。3. Laser Sensor 目录:读取光电传感器的参数,或者设置光电传感器。4. PLC 目录:PLC 目录有 5 个子目录,包含了 PLC 可以通过不同的联网方式和元器件进行通信的功能块。 CLK:对 PLC 的 CLK 模块(Controllink 模块)的通信情况进行监控。 CPU:CPU 单元发出的 ON/OFF 信号的时序的、延时的控制,以及通信信号的控制。 ETN: 对 PLC 的 ETN 模块(以太网模块)的通信进行监控。 SCx: 对 PLC 的 SCU、SC

58、B 模块(串行通信单元、板)的通信进行监控和设置。 UNIT: 重新启动 PLC 上的单元。5. Position Controller 目录:对 NC 模块的设置及对控制轴参数的读写。6. SmartIO 目录:PLC 以 DeviceNet 的联网方式连接到指定的从站单元(如 DRT2-ID16) ,可以用该目录下的功能块来实现一些网络监控的要求。例如监控网络当前电压状况。7. RFID 目录:读取或者设置读码器 V600 的参数。8. Servo Driver 目录:读取或者改变驱动器 R88D 的参数。9. TemperatureController 目录:PLC 以串行通信或 Dev

59、iceNet 网络连接到温控器(或者温度控制单元 TC) ,都可用该目录下功能块读取、设置温控器(TC 单元)的参数。10. Vision Sensor 目录:监控和控制视觉传感器。 (F160、F210) 。4.34.3 FBFB 库功能块使用库功能块使用4.3.14.3.1 创建创建 FBFB 库中的功能块库中的功能块FB 库中功能块的调用和梯形图功能块的调用基本一样。只要在插入功能块处选择“从文件插入”就可以了。OMRON 功能块(FB)教材 30 图 4-5 从 omronlib 目录的 FB 库中选择要使用的 FB 文件。FB 库的每个功能块在 omronlib 目录下都有相对应的使

60、用说明供用户参考。例如:前面我们讲过,如果 PLC 以串行方式连接到温控器,可以调用 FB 库中,温控器目录(Temperature Controller)下的“_E5xx202_ReadPV10”文件来读取温控器的当前值(PV 值) 。 图 4-64.3.24.3.2 阅览阅览 FBFB 库中的功能块程序库中的功能块程序 创建了 FB 库中的功能块后,直接双击文件是不能够察看功能块内部的程序。要阅览FB 库功能块的程序,需要右击文件名,在属性中选中“显示功能块内部” 。然后双击功能块即可阅览功能块内部程序。 图 4-74.3.34.3.3 调用调用 FBFB 库中的功能块库中的功能块 调用 FB 库的功能块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论