功能块 ( FB ) 教材.doc_第1页
功能块 ( FB ) 教材.doc_第2页
功能块 ( FB ) 教材.doc_第3页
功能块 ( FB ) 教材.doc_第4页
功能块 ( FB ) 教材.doc_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

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

文档简介

OMRON 功能块 FB 教 材 目录目录 第一章第一章 功能块功能块 FB FB 编程概述编程概述 1 1 1 1 功能块 FB 简介 1 1 2 功能块 FB 使用特点 1 1 3 功能块 FB 使用环境 2 1 3 1 支持 FB 功能的 PLC 类型 2 1 3 2 支持 FB 功能的软件 2 1 3 3 CX Programmer6 0 功能块特点 2 第二章第二章 梯形图功能块梯形图功能块 3 3 2 1 梯形图功能块编程基础 3 2 1 1 梯形图功能块结构介绍 3 2 1 2 梯形图功能块编辑区介绍 4 2 2 创建功能块 4 2 2 1 新建梯形图 FB 5 2 2 2 设置功能块变量 5 2 2 3 编写 FB 内梯形图 7 2 3 使用功能块 8 2 3 1 调用梯形图功能块 8 2 3 2 梯形图 FB 的嵌套 9 2 3 3 保存梯形图 FB 10 2 3 4 调试梯形图 FB 11 2 4 FB 内存分配注意事项 12 第三章第三章 高级语言 高级语言 STST 语言 功能块语言 功能块 1414 3 1ST 语言功能块编程基础 14 3 1 1 高级语言编程概念 14 3 1 2 ST 语言编程特点 14 OMRON 功能块 FB 教 材 3 2ST 语言编程系统介绍 15 3 2 1 ST 语言常用运算符 16 3 2 2 ST 语言基本命令 17 3 2 3 ST 语言编程规则 20 3 3创建 ST 语言 FB 21 3 4ST 语言 FB 的使用 22 3 4 1 调用 ST 语言 FB 22 3 4 2 ST 语言 FB 的嵌套 22 3 4 3 ST 语言 FB 的保存和调试 23 第四章第四章 功能块功能块 FBFB 库库 2424 4 1 FB 库概述 24 4 1 1 FB 库特点 24 4 1 2 FB 库应用简介 24 4 2 FB 库内容介绍 26 4 2 1 FB 库内容简介 26 4 2 2 FB 库功能分类 26 4 3 FB 库功能块使用 27 4 3 1 创建 FB 库中的功能块 27 4 3 2 阅览 FB 库中的功能块程序 28 4 3 3 调用 FB 库中的功能块 28 第五章第五章 功能块应用示例功能块应用示例 2929 附录一 附录一 STST 语言语法错误一览表语言语法错误一览表 3434 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 第一章第一章 功能块功能块 FB FB 编程概述编程概述 OMRON 编程软件 CX Programmer 从 5 0 版本开始 增加了一个全新的编程功能 功 能块 Function Block 简称 FBFB CJ CS CP1H 系列的 PLC 可以使用这个功能进行编程 它大大增强了 CX Programmer 软件对 PLC 编程 控制和调试的能力 功能块 FB 主要提 供了梯形图和高级语言 2 种编程方法 结合软件自带的功能库 给用户提供了全新的简单 高效 集成化的编程方法和环境 1 1 功能块 FB 简介 功能块 Function Block 是预先编辑或测试的程序集合 具有特定的功能要素 可 嵌入原有的梯形图中执行 并通过设置 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 PCX P 软件自带软件自带 FBFB 库 库 CX Programmer 软件自带 FB 库 用户可以根据需要调用 FB 库中自带的功能块 FB 库让用户无需编辑梯形图 就可以使用 PLC 单元和元器件的 基本功能 并且易于使用 无需程序调试 简单易懂 具可扩展性 4 编程操作更简单 编程操作更简单 功能块的调用 编辑 删除就象对指令的操作一样简单 编辑功 能块内部的程序也很简便 只需找到相对应的功能块 就可以在 块 的内部进行 程序的编辑 而不需要在繁冗的程序中查找修改 5 程序检查更容易 程序检查更容易 功能块程序的检查很方便 只要在 块 中检查程序的流程和可 靠性即可 工作量小 检查简单 使用功能块缩短了主程序的大小 并且功能块的 查找也很简单 从而使得程序的检查工作变得更容易 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 上述功能块 FB 的这些特点给用户提供了一个易于编程 管理程序 调试程序的编 程环境 下面就详细介绍功能块功能的使用和操作 1 3 功能块 FB 使用环境 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 45H CS1H HCS1H CPU63H 64H 65H 66H 67H CJ1G HCJ1G CPU42H 43H 44H 45H CJ1H HCJ1H CPU65H 66H 67H CJ1MCJ1M CPU11 12 13 21 22 23 1 3 2 1 3 2 支持支持 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 的内部程序中调用 FB2 FB2 的内部程序调用 FB3 梯形图 FB 最多支持 8 层嵌套 而 ST 语言 FB 则可以自由的嵌套 3 FB 支持程序更新 CX Programmer6 0 中 如果更改了 FB 的内部程序 在调用该 功能块的地方 只需更新该功能块即可 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 第二章第二章 梯形图功能块梯形图功能块 2 1 梯形图功能块编程基础 使用过 CX Programmer 的用户都非常熟悉梯形图编程模式和编程环境 因此 CX Programmer 仍然提供了老用户熟悉的梯形图语言来创建和编辑功能块的内部程序 2 1 12 1 1 梯形图功能块结构介绍梯形图功能块结构介绍 梯形图功能块是由完成特定功能的程序段组成的 组成程序的每一步都有输入和输出 功能块中的输入和输出被定义成变量的这种特点 决定着它能够成为一个编程 元素 而 能够在不同的程序中被多次调用 总的来说 功能块是由变量 算法变量 算法构成的 1 变量 变量是指输入 输出和内部地址 在编辑功能块的时候给这些地址一个变量名 功能块运行时 它们对应着外部的实际地址 2 算法 算法是依靠梯形图的编程来完成的 依靠算法可以完成某个特定的控制功能 举个简单的例子说明 如下图 2 1 所示 要实现按下开 0 00 开关 5 秒后接通输出 10 00 梯形图程序如 a 图所示 如要把这个功能做成功能块的形式 以便今后编程时 调用 必须将其中的输入 输出甚至中间变量都定义称为变量 如 b 图所示 在每次调 用功能块的时候 无需知道内部结构 只要知道该 FB 能实现的控制功能 及输入 输出变 量对应完成什么功能 就可以直接使用了 如图 2 1 c 所示 图 2 1 a b c 将输入 输出定义 成变量 调用时输 入地址 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 2 1 22 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 功能 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 图 2 3 2 2 12 2 1 新建梯形图新建梯形图 FBFB 在 新 PLC 目录下 可以看到 功能块 子目录 包含有这个子目录的 PLC 才支持 FB 功能 右击 功能块 选择 插入梯形图功能块 就创建了一个梯形图功能块 并且 创建的功能块就在 功能块 目录下 图 2 4 新建功能块新建功能块 创建一个新的 FB 项目 定义定义 FB 变量变量 定义 FB 程序地址变量 编写编写 FB 程序程序 编写 FB 的内部程序 调用调用 FB 在主程序中调用功能块 定义定义 I O 定义主程序 FB 变量的地址 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 2 2 22 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 名称 即变量名 是用来定义功能块中变量的 在不同的功能块中可使用同样的变量 名 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 2 数据类型 功能块提供如下数据类型可供使用 表 2 1 定义变量可使用的数据类型列表 数据类数据类 型型 类型含义类型含义数据占用空间数据占用空间输入变输入变 量量 输出变输出变 量量 内部变内部变 量量 BOOLBOOL 位1 位 OKOKOK INTINT 整型16 位 OKOKOK UNITUNIT 无符号整型16 位 OKOKOK DINTDINT 有符号双字32 位 OKOKOK UDINTUDINT 无符号双字32 位 OKOKOK LINTLINT 有符号长整型 4 字 64 位 OKOKOK ULINTULINT 无符号长整型 4 字 64 位 OKOKOK WORDWORD 字16 位 OKOKOK DWORDDWORD 双字32 位 OKOKOK LWORDLWORD 长字64 位 OKOKOK REALREAL 实型32 位 OKOKOK LREALLREAL 长实型64 位 OKOKOK TIMERTIMER 计时器型1 字 标志位占 1 位 NONOOK COUNTERCOUNTER 计数器型1 字 标志位占 1 位 NONOOK 3 使用 定义变量为内部变量 输入变量 输出变量 外部变量其中之一 4 初始值 选择变量的初始状态 变量是位地址时 初始状态为 ON OFF 变量地址是字 地址时 初始状态是设定通道内的初始值 5 注释 可以为变量名添加一些注释 2 2 32 2 3 编写编写 FBFB 内梯形图内梯形图 如图 2 2 所示 FB 的梯形图需要在下方的梯形图编辑区中进行编写 FB 的梯形图和主 程序中的梯形图的区别在于 FB 梯形图中的地址都是以变量名的方式定义的 而主体程序 中的地址都对应着实际的地址 现以图 2 1 的梯形图为例 说明如何创建实现该功能的 FB 梯形图 创建 FB 梯形图的步骤如下图 2 7 所示 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 图 2 7 1 列出输入 输出点 将原来梯形图中的表示输入和输出的地址列出来 2 将输入 输出地址转换成变量名 将原来输入 输出的 I O 地址一一定义一个变量 名 不同的控制对象需要选择不同的数据类型 例如程序中定义输入点 0 00 的变 量名为 a 数据类型为 BOOL T0000 的变量名为 b 数据类型为 TIMER 输出点的 变量名为 c 数据类型为 BOOL 3 编写 FB 梯形图 编写的方式和主体程序的编写方式几乎一样 区别在于 需要将 原来的实际地址转换成变量名 例如 TIM 指令 原来的写法是 TIM 0000 50 FB 程序就应该写成 TIM C 50 以上看来 在 FB 梯形图编辑区内编写梯形图和主体程序编写梯形图的方法几乎一 样 并且也可以调用工具栏上的快捷工具来进行程序的编写 只要在输地址的地方键 入变量名即可 2 3 使用功能块 2 3 12 3 1 调用梯形图功能块调用梯形图功能块 创建好梯形图 FB 后 在主体程序中就可以调用该功能块了 下面将调用以上创建好的 梯形图 FB 作为例子进行说明 1 1 列出输入列出输入 输出点输出点 2 2 将输入将输入 输出转为变量输出转为变量 3 用变量名作为编程地用变量名作为编程地 址 编写址 编写 FB 梯形图梯形图 地址 变量 0 00 a T0000 b 10 00 c OMRON 功能块 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 22 3 2 梯形图梯形图 FBFB 的嵌套的嵌套 编写好梯形图 FB 的内部程序后 基本创建了一个完整的功能块 但在编写一些工业控 制程序时 仅使用一个功能块的情况是非常少的 并且 如果控制功能多样复杂 简单的 调用也不能够满足需要 这时 功能块的嵌套功能就非常必要 下面主要介绍一下如何使 用功能块嵌套功能 要使用 FB 的嵌套功能 至少需要创建 2 个或 2 个以上的功能块 下面创建 2 个功能块 FB1 要求 输入接通后延时 n 秒后接通输出 FB2 要求 对延时时间 n 进行判断 如果超过 100 秒 则报警输出接通 嵌套功能需实现在 FB1 中嵌套 FB2 完成输入接通 n 秒后接通输 出 如果用户输入的时间超过 100 秒 输出报警 要实现在 FB1 中嵌套 FB2 先要创建 FB2 然后在创建 FB1 内部程序中才可以调用 FB1 下面列出 FB2 的变量和内部程序 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 表 2 2 功能块 2 变量列表 功能块功能块变量类别变量类别变量名变量名数据类型数据类型变量说明变量说明 输入变量 aINT 用户定义的延时时间 功能块 2 输出变量 bBOOL 超时报警点 图 2 9 FB2 内部程序 建立了 FB2 后 开始创建 FB1 在 FB1 中调用 FB2 只需将 FB2 看成像 指令 一样的 程序元素那样调用就可以了 调用的同时功能块会自动登陆到变量列表中 下面列出了 FB1 的变量和内部程序 表 2 3 功能块 1 变量列表 功能块功能块变量类别变量类别变量名变量名数据类型数据类型变量说明变量说明 输入 BOOL 用来控制输出的输入点 输入变量 时间值 INT 用户定义的延时时间 nTIMER 定时器号 内部变量 时间判断FB调用的 FB2 输出 BOOL 延时输出点 功能块 1 输出变量 输出报警 BOOL 超时报警点 图 2 10 FB1 内部程序 FB1 FB2 的创建完成后 就可以在主程序中直接调用 FB1 在输入时间的地址内 一 旦输入时间大于 100 秒 输出报警位就会置 ON 主程序部分如下图 2 10 所示 0 00 延 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 时接通 1 00 0 01 延时接通 1 01 延时的时间值分别放在 D0 和 D10 通道中 当其中的时 间值超过 100 秒 报警点 50 00 或者 50 01 就会输入报警 图 2 11 主程序部分 2 3 32 3 3 保存梯形图保存梯形图 FBFB 如下图 2 12 所示 可以将编辑好的功能块单独保存起来 文件名为 cxf 这样 如果用户创建好功能块后 今后也可以在不同的程序中进行调用 图 2 12 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 2 3 42 3 4 调试梯形图调试梯形图 FBFB 对于 CJ CS 系列的 PLC 的程序调试 无需连接到真正的 PLC 上 在 CX Programmer 软 件中可以通过仿真功能 就可以对梯形图程序进行监控 监控功能不仅能实现对程序使用的位和通道进行监控 同样也能对调用的功能块进行 监控 要监控功能块 在仿真状态 双击调用的功能块或者右击该功能块 选择 监控功能 块梯形图实例 就可转换到监控 FB 的界面 在监控 FB 的界面 可以完成监控 FB 中的位和 通道 改变 PV 值 强制置位 复位等操作 监控的操作步骤如下 1 选择 PLC 工作在线仿真器 模拟下传程序后 就可以对程序进行在线仿真的 调试工作了 2 选择 视图 窗口 查看 打开查看窗口 3 在主程序中选择调用的功能块 在弹出的菜单中选择 在查看窗口中注册 在弹 出的对话框中 用法 和 数据类型 选择全部全部 所有功能块中的变量都被登记 在查看窗口中 用户可以根据需要来进行调试 如图 2 13 所示 图 2 13 4 双击主程序中的功能块实例 就可以进入监控 FB 的内部程序的界面 5 用户可根据需要对位进行置位 复位 改变通道的 PV 值等操作 整个操作过程可以参考下图 2 14 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 图 2 14 2 4 FB 内存分配注意事项 前面介绍了功能块的创建以及使用方法 在创建和使用的过程中 熟悉了 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 所示 在此处输入实 例名称 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 图 2 16 PLC 自动分配一部分内存给 FB 实例供其运行 并且自动分配 H 区的 I O 供功能块实例 运行 用户也也可自己设定供 FB 实例使用的 I O 地址 选择 PLC 功能块内存 功能 块内存分配 来进行设定 如下图 2 17 所示 图 2 17 双击 起始地址 或者 结束地址 就可选择分配给功能块实例的内存区 然后输入 起始地址和结束地址 然后在主程序编程中 就需要注意不要使用这些已经分配给功能块 实例的地址作为编程的内部地址来使用 在编程时 主程序编写完成后 可以查看当前程序占用了多少内存 通过 视图 内 存视图 功能块内存分配 可以查看当前程序占用了多少内存 其中功能块占用了多少 以及还剩下多少内存 如下图 2 18 所示 图 2 18 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 第三章第三章 高级语言 高级语言 STST 语言 功能块语言 功能块 3 1 ST 语言功能块编程基础 3 1 13 1 1 高级语言编程概念高级语言编程概念 ST 语言 Structure Text Language 是一种用于工业控制的高级语言 它类似于 PASCAL 语言 有选择语句或者循环语句等这些语言结构 通过使用这些语言结构来编写控 制程序 一个的 ST 程序由多条语句组成 一个语句由变量和表达式组成 1 表达式 表达式是包含着算法和操作数的序列 算法包括逻辑运算 算术运算 比较 运算等算法 2 语句 语句是由表达式构成的 可以分为赋值语句或者控制语句 赋值语句中包含着 表达式的计算结果这个信息 控制语句包含选择语句 循环语句 条件语句等 下面举例说明上述概念 图 3 1 3 1 23 1 2 STST 语言编程特点语言编程特点 用户除了可以创建梯形图 FB 之外 熟悉高级语言编程的技术人员还可以创建 ST 语言的 FB CX Programmer 为熟悉不同编程语言的用户提供了不同的编程平台 这样 懂得高级语言的用户编写好复杂的 ST 语言功能块后 其它用户甚至是不熟悉 ST 语言 的操作人员也可以使用该功能块 这样就大大降低了操作人员对编程语言的限制 另外 使用高级语言编程 可以轻松完成复杂的算术运算 如果用梯形图语言编 辑复杂的算术运算功能 会写很多条程序 占用更多的程序容量 如果用 ST 语言来写 用表达式就可以代替梯形图复杂的程序 CASECASE COLORCOLOR OFOF 1 NofRed NofRed 1 2 NofBlue NofBlue 1 ELSE NofOther NofOther 1 ENDEND CASE CASE IFIF NofRed 100 OR NofBlue 100 THEN STOP TRUE ENDIF ENDIF 这个就是表达式 其中 NofRed 就是变 量 表达式左右 2 边包含的就是算法 下面的就是 CASE 语句 选择语句 和 IF 条件 语句 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 例如 圆柱体容器的体积公式为 V r2h 如果要计算其中液体的体积 用梯形图 编程程序如下图所示 图 3 2 如果改用 ST 语言编写的话 程序如下 公式 3 1 2 exp Vhrt 用梯形图语言编程 需要写 4 6 步程序 而且操作数较多 不便于管理和修改 而使用 ST 语言 只要写好表达式即可 所以说 对于含有复杂的算术运算的控制程序 使用 ST 语言编程有着一定的优势 下面 我们就来学习如何使用这一功能 3 2 ST 语言编程系统介绍 一般来说 一段程序总是由表达式和语句构成的 了解 ST 语言的编程系统 就 要从表达式和语句开始 对于表达式 需要从操作符号和变量入手 而对于语句 需要掌握它的功能和语言结构 下面 我们就来介绍一下 ST 语言的常用运算符及基 本命令 r r2 h h r2 r2h OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 3 2 13 2 1 STST 语言常用运算符语言常用运算符 ST 语言能够实现的算术运算除了基本的加 减 乘 除之外 还能实现一些复杂的函 数运算 例如指数 正 余 弦函数 对数函数等 下面我们就来熟悉一下这些运算符号 及用法 1 基本运算符 基本运算符包括简单的加 减 乘 除 比较及一些逻辑关系的表达符号 这些 符号的使用比较简单 使用这些符号可以实现一些不太复杂的运算要求 具体的规则 及使用方法可以参考下表 表 3 1 基本运算符 运算功能运算功能操作符号操作符号应用示例应用示例 加 A B 其中 A B 为变量 减 A B 乘 A B 除 A B 比较 A B A B A B 等于 A B 逻辑与 执行流程图 图 3 4 举例 如果 A 0 则 B 等于 A 的值 并且线圈 C 有信号输出 否则 B 等于 0 线圈 C 无信号输出 IF A 0 THEN B A C TRUE ELSE B 0 C FALSE END IF 2 IF 语句 多条件嵌套 表达式 1 IF THEN IF THEN ELSE END IF END IF 流程图 1 条件 表达式 1表达式 2 False True OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 图 3 5 表达式 2 IF THEN ELSIF THEN ELSIF THEN ELSIF THEN ELSE END IF 流程图 2 图 3 6 表达式 1表达式 2 False True 条件 1 条件 2 True False 表达式 1 False True 条件 1 条件 2 条件 3 表达式 2表达式 3 True True False False OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 举例 要求如下 如果 A 0 X 10 否则 先参考参数 B 如果 B 1 则 X 1 如果 B 2 则 X 2 如果都不是 X 0 IF A 0 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 OF 1 2 N ELSE END CASE 举例 CASE A OF 1 X 1 2 X 2 3 X 3 ELSE Y 0 END CASE 3 2 33 2 3 STST 语言编程规则语言编程规则 ST 语言编程有一些规则需要注意 在我们学会写一些简单的控制语句后 编译功能块 后仍然会出现错误 所以在掌握了基本的编程符号和语句之后 也需要知道 ST 语言的编程 语法和规则 1 每个完整的表达式后要用 号结尾 而对于语句来说 不是每句后面都要加 所以需要注意什么地方应该加 什么地方不该加 2 如果一个变量被定义成整型 那么不能被写成有小数点的形式 如果一个变量被定义 成实型 那么这个变量不能被写成整数类型 例如 如果 A 为整型 就不能写成 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 教 材 专业文档供参考 如有帮助请下载 当功能块程序不能通过编译的话 也可以通过查询错误代码来判断发生了什么语法错 误 详细情况 可以参考附录一 附录一 STST 语言错误代码 语言错误代码 3 3 创建 ST 语言 FB ST 语言功能块的创建和梯形图功能块的调用基本一样 基本步骤为 新建 ST 语言功能 块 定义功能块变量 编写 FB 内部程序 调用功能块 定义功能块的 I O 地址 如下图 3 7 所示 和创建梯形图 FB 的步骤基本一致 唯一不同的是编写 FB 内部内程序需要是使 用 ST 语言 图 3 7 3 3 13 3 1 新建新建 STST 语言语言 FBFB 新建 ST 语言功能块与新建梯形图功能块的过程类似 只需在创建功能块的时候 选择 结构文本 即选择用 ST 语言建立 FB 内部程序 如下图 3 8 所示 新建功能块新建功能块 创建一个新的 FB 项目 定义定义 FBFB 变量变量 定义 FB 程序地址变量 编写编写 FBFB 程序程序 用 ST 语言编写程序 调用调用 FB 在主程序中调用功能块 定义定义 I O 定义主程序 FB 的变量地址 STST 语言语言 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 图 3 8 3 3 23 3 2 定义定义 STST 语言语言 FBFB 变量变量 ST 语言功能块的编辑区如下图所示 变量设置区 ST 语言编程区 图 3 9 ST 语言的变量设置和梯形图 FB 中参数设置一致 此处不再赘述 3 3 33 3 3 编写编写 STST 语言语言 FBFB 程序程序 ST 语言的编辑写在变量设置区的下方 原来在梯形图 FB 的编辑界面是梯形图编辑界 面 在 ST 语言功能块的编辑区是文本区 可以编写高级语言程序 例如 要计算的圆柱体 容积 数学公式为 V r2h 除了定义变量 r 和 h 之外 根据前面学的 ST 语言符号和函数 在 ST 语言编程区写入如下公式即可 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 公式 3 1 2 exp Vhrt 3 4ST 语言 FB 的使用 3 4 13 4 1 调用调用 STST 语言语言 FBFB ST 语言功能块的调用和梯形图功能块的调用基本一致 只要给出功能块的输入地址 和输出地址即可 如调用上述计算圆柱体容积的功能块 如图 3 10 所示 图 3 10 调用功能块后 给出变量 r 的地址 DO h 的地址 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 为 ST 语言功能块 FB2 为 ST 语言 FB 或者梯形图 FB 图 3 11 输入端给出 半径和高度 输出端自动 计算出容积 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 但是 ST 语言 FB 调用嵌套 FB 的语法和使用梯形图 FB 嵌套的语法是不一样的 下面列 出使用 ST 语言 FB 嵌套的语法 1 需要使能位 EN FB2 名称 EN A FB2 IN1 FB1 IN1 FB2 IN2 FB1 IN2 FB2 OUT1 FB1 OUT1 FB2 OUT2 FB1 OUT2 2 不需要使能位 EN FB2 名称 FB2 IN1 FB1 IN1 FB2 IN2 FB1 IN2 FB2 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 教 材 专业文档供参考 如有帮助请下载 第四章第四章 功能块功能块 FBFB 库库 4 1 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 使用简单 容易理解 即使用户不知道 FB 文件的程序是如何编写的 只要了解输入 输出地址的定义 正确的分配功能块的控制地址就可以了 FB 库中的文件明确 详细 的列出了每个变量的控制定义 和整个功能块实现的控制功能 用户使用中一有疑问 查阅相关帮助即可理解 图 4 1 3 无需测试 FB 库中的功能块程序都通过了 OMRON 的检测 用户无需测试直接可以使用 4 1 24 1 2 FBFB 库应用简介库应用简介 CJ CS1 系列的 PLC 通过串行通信的方式 RS232 RS422 485 或者 DeviceNet 网络 链接到 OMRON 的元器件 如温控器 如果要对元器件进行读操作 如读取温控器当前温度 值 PV 或者写操作 如设定温控器的温度设定值 SV 可以在 FB 库中调用该元器件实现该 输入 输出分列在两边 清 晰易见 变量定义也分别给 出 容易解读 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 功能的功能块 例如 如下图 4 2 所示 要实现 PLC 读取温控器的 PV 值 直接调用 FB 库中的 E5xx202 ReadPV10 功能块 设置对应读取地址即可 无需再编写相应的通信程 序 同样 如图 4 3 所示 PLC 以 DeviceNet 的方式链和变频器从站进行通信 也可以通 过调用功能块直接实现 图 4 2 图 4 3 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 4 2 FB 库内容介绍 4 2 14 2 1 FBFB 库内容简介库内容简介 FB 库中功能块文件都是 cxf 的文件 FB 库中的功能块能够实现欧姆龙的 PLC 对元 器件基本和重要的控制要求 这些文件在 CX Programmer 的安装目录下 下面列出了 FB 库 的内容及基本结构 图 4 4 4 2 24 2 2 FBFB 库功能分类库功能分类 FB 库的结构是按照元器件及各种联网方式来进行分类的 各个目录下的功能块完成的 功能也不一样 用户可以参考对应功能块的参考手册来进行使用 下面对各个目录下功能 块实现的功能进行分类介绍 1 CodeReader 目录 包含对二维读码器的基本读操作 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 2 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 SCB 模块 串行通信单元 板 的通信进行监控和设置 UNIT 重新启动 PLC 上的单元 5 Position Controller 目录 对 NC 模块的设置及对控制轴参数的读写 6 SmartIO 目录 PLC 以 DeviceNet 的联网方式连接到指定的从站单元 如 DRT2 ID16 可以用该目录下的功能块来实现一些网络监控的要求 例如监控网络当前电压状况 7 RFID 目录 读取或者设置读码器 V600 的参数 8 Servo Driver 目录 读取或者改变驱动器 R88D 的参数 9 TemperatureController 目录 PLC 以串行通信或 DeviceNet 网络连接到温控器 或者 温度控制单元 TC 都可用该目录下功能块读取 设置温控器 TC 单元 的参数 10 Vision Sensor 目录 监控和控制视觉传感器 F160 F210 4 34 3 FBFB 库功能块使用库功能块使用 4 3 14 3 1 创建创建 FBFB 库中的功能块库中的功能块 FB 库中功能块的调用和梯形图功能块的调用基本一样 只要在插入功能块处选择 从 文件插入 就可以了 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 图 4 5 从 omronlib 目录的 FB 库中选择要使用的 FB 文件 FB 库的每个功能块在 omronlib 目 录下都有相对应的使用说明供用户参考 例如 前面我们讲过 如果 PLC 以串行方式连接 到温控器 可以调用 FB 库中 温控器目录 Temperature Controller 下的 E5xx202 ReadPV10 文件来读取温控器的当前值 PV 值 图 4 6 4 3 24 3 2 阅览阅览 FBFB 库中的功能块程序库中的功能块程序 创建了 FB 库中的功能块后 直接双击文件是不能够察看功能块内部的程序 要阅览 FB 库功能块的程序 需要右击文件名 在 属性 中选中 显示功能块内部 然后双击功 能块即可阅览功能块内部程序 图 4 7 4 3 34 3 3 调用调用 FBFB 库中的功能块库中的功能块 调用 FB 库的功能块和调用梯形图功能块 ST 语言功能块是一样的 只要按照说明文 章上给出对应的输入控制地址和输出控制地址即可 OMRON 功能块 FB 教 材 专业文档供参考 如有帮助请下载 第五章第五章 功能块应用示例功能块应用示例 在实际的编程工作中 使用 CX Programmer 的 FB 功能 不仅能够减少编程人员的编程 工作量 同样使得对程序的检查工作也变得相对容易 下面介绍一个 FB 功能应用在一个简 单的电梯程序中的案例 电梯案例要求 运用 PLC 编制程序 完成一台 10 层楼电梯简易控制程序 用逻辑控制 和随机控制满足控制要求 实现电梯的数字化控制 电梯

温馨提示

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

评论

0/150

提交评论