- 1、本文档共164页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【例3.10】 三控开关。 3个开关位于3个不同位置,要求在任何位置都可以控制同一个灯,即如果灯是关的,任何一个开关都可以将其打开;如果灯是开的,任何一个开关都可以将其关闭。 输入A、B、C分别代表3个按键,如果按下,则为1,按键弹开后,则为0。输出Y控制灯的开关。 梯形图如图3-107所示。 【例3.11】 三个水泵两两轮流工作的控制。三个水泵两两轮流工作,每个水泵轮流工作8h。 输入:3个泵A、B、C的故障输入信号为F_A、F_B、F_C,故障时为1,正常时为0。 3个泵的启动、停止A、B、C输出为1时启动,为0时停止。 3个水泵的工作顺序是:AB-AC-BC-AB。两个泵一起工作的时间是4h,这样每个泵都轮流工作8h。设置3个时间为4h(即4?3?600?1?000ms)的延时计时器T1、T2、T3。程序进行功能划分,由主程序、轮流工作程序LLGZ、故障处理程序GZCL组成。 时序图如图3-108所示。 主程序梯形图实现如下。 3个泵轮流工作主程序如图3-109所示。 轮流工作子程序分别如图3-110、图3-111和图3-112所示。 故障处理子程序如图3-113所示:至少有1个泵有故障,无故障的泵继续运行。 (1)用户自定义指令AOI 用户自定义指令AOI(Add On Instruction)是由用户自己创建的指令,可以多次调用,且可以带入/带出用户自定义的参数。AOI指令是使用标准的指令集或其他AOI指令,按照用户特定的要求进行代码的开发,封装为新的指令,可以独立使用的特殊指令。 (2)AOI指令的优点 ? 通过创建通用的用户指令集,可以节省项目开发时间; ? 可以实现多个项目的一致性,不用每次都编制通用的控制算法; ? 支持多种编程语言创建AOI指令—LD、FBD、ST; ? 支持多种编程语言调用AOI指令—LD、FBD、ST、SFC; ? 可以实现源代码密码保护,防止源代码密码被修改; ? 源代码锁定,对关键代码进行锁定,防止意外修改,但是可以查看和编译; ? 原始输入和输出参数类型可以自动转换,减少指令代码和编译; ? 基于实例(Instance)的查看功能; ? 调用实例(Instance)标签时,自动生成指令调用的描述,减少输入工作; ? 易于维护。 (3)创建AOI指令 ? 控制器结构中包含“Add-On Instruction”文件夹; ???AOI指令只需定义一次,指令可以被多个程序调用; ? 指令的数量仅受限于控制器的内存。 例如,在Controller管理器中,右键单击“Add-on自定义指令”,如图3-84所示,即可创建AOI指令。 (4)定义指令数据 ? 用户配置指令的参数,支持原始数据类型; ? 将参数名字和定义保存在控制器中,描述保存在项目文件中; ? 数据类型自动转换。指令被调用之前,输入值进行转换;指令执行之后,输出值进行转换。 新建AOI指令的页面如图3-85所示。 单击“确定”按钮,进入AOI指令参数设置页面,如图3-86所示。 (5)定义本地标签 ① 指令可以定义本地标签。 ② 本地标签在指令范围内被使用。 进入AOI指令的本地标签页面,如图3-87所示。 (6)AOI扫描模式 进入AOI指令的扫描模式页面,如图3-88所示。 至此,新创建了一条名为AOI_US的用户自定义指令,如图3-89所示。 创建的指令参数和本地标签都存储在AOI_US的数据库里,如图3-90所示。 (7)AOI指令的使用 ? 一次定义,在FBD、LD、ST中直接使用; ? 每个AOI实例(Instance)都拥有独立的数据实例(Data Instance),实现数据的自动隔离; ? 允许每个指令工作于定制的一套数据。 (8)导出AOI指令 可以将编写好的AOI指令导出,以文件形式保存,如图3-91所示。 (9)AOI指令和子程序的比较 AOI指令和子程序的比较如表3-12所示。 AOI指令 子 程 序 调用实现方式 控制器范围内复制,且仅复制一次 程序范围内,多次复制 参数传递方式 通过数值或参考值 通过数值 传递数据类型 原始类型 原始类型、数组、结构体 数字型参数 自动数据类型转换 无格式转换 参数检查 验证检查 用户管理 数据封装 本地数据隔离,仅在指令内使用 所有程序和控制器范围内的数据,任何数据均可被使用 查看调用 单次调用,实例数据 重复调用,混合数据 内部编程语言 LD、ST、FBD LD、ST、FBD、SFC 外部编程语言 LD、ST、FBD、SFC LD、ST、FBD、SFC 保护方式 锁定、只读 锁定、只读 内存使用 紧凑 调用时,会占用较多内存 执行性能 调用更为高效;输入/输出传递参照值;参照值自动实现定标 控制指令增加运算负荷;复制所有数据;
文档评论(0)