CompactLogix 控制器概述
CompactLogix简称CMX
CompactLogix 系统主要用于为小型和中型应用提供 Logix 解决方案。通常,这些应用为设备级控制应用。在更复杂的系统中,增加了其它网络、运动控制和安全控制能。作为集成架构系统的一部分,CompactLogix 控制器与所有 Logix 控制器使用相同的编程软件、网络协议和信息功能,为实现所有控制策略提供一个通用的开发环境。
• CompactLogix 5370 L1 控制器兼具 Logix 架构的功能与 POINT I/O 的灵活性。这些控制器是小型和中型机器的理想之选,对于期待通过低成本系统获得集成架构优势的客户而言非常具有价值。
• CompactLogix 5370 L2 控制器兼具 Logix 架构的功能与 Compact I/O 的灵活性。从独立的小型设备到高性能应用,这些控制器是装配机械、起吊系统、过程撬装设备、分度台和包装设备的理想选择。
• CompactLogix 5370 L3 控制器是经济实惠的可扩展控制解决方案,非常适合从小型单机设备到高性能分度台、过程撬装设备、装箱机、开箱机、包装设备等广泛应用项目。CompactLogix 5370 L3 控制器还提供真正意义上的集成运动控制解决方案。
基于 EtherNet/IP 网络的 CompactLogix 5370 系统
创建和使用自定义指令AOI
第 16 版 RSLogix 5000 引入了可重用代码对象的概念,称为用户自定义指令。借助用户自定义指令可将最常用的逻辑封装成可重用指令集,这些指令集与 Logix 控制器中内置的指令非常相似。由于可在项目中轻松地重用常用指令集,因而可节省时间;同时,又由于无论谁来实施项目,常用的算法都将按同样的方式工作,因而还有助于促进项目的一致性。
用户自定义指令可通过 RSLogix 5000 中标配的梯形图、功能块图和结构化文本编辑器来创建。用户自定义指令创建完成后,您无需进行任何额外操作,即可在任意 RSLogix 5000 编辑器中使用。此外,由于提供了上下文视图,使您能够查看指令在具体使用实例下的逻辑,用户自定义指令的在线故障处理工作也变得更为简单。同时,用户还可为指令自定义帮助信息,从而更便于指令用户获取所需帮助并成功使用指令。
最后,您可使用 RSLogix 5000 源代码保护功能将使用您指令的某用户的访问权限设为只读,也可禁止指令用户访问该指令所使用的内部逻辑或局部标签。这样可以防止意外更改您的指令,也能保护您的知识产权。
输入输出定义
输入应为:
Start_PB(Bool)
Stop_PB(Bool)
Pump_Running(Bool)
输出应为:
Run_Motor(Bool)
Pump_Start_Fault(Bool)
1.右键单击“用户自定义指令”(Add-On Instructions) 文件夹并选择“新建用户自定义指令”(New Add-On Instruction)。
2.按下图所示填写“新建用户自定义指令”(New Add-On Instruction) 对话框,然后单击“确定”(OK)。
随后将显示许多新内容:名为 Pump_Control 的新用户自定义指令文件夹(其中包含参数和局部变量、逻辑)和一个新的附加定义数据类型。
注:一旦指定一种类型(梯形图、FBD 或 ST),之后便无法将定义更改为其它类型。如果要更改定义中的类型,则必须重新开始。
3.由于我们在上一窗口中选中了“打开定义”(Open Definition),将自动打开下面的对话框。
“常规”(General) 选项卡中包含指令创建时首先输入的项目。
“版本注释”(Revision Note) 表格中的版本信息支持各种形式,并且完全由用户更新和使用;没有采用任何自动版本跟踪机制。
此窗口底部有几个项目,它们对用户始终可用。“逻辑”(Logic) 按钮可直接打开此指令的逻辑例程。
“数据类型尺寸”(Data Type Size) 则动态显示指令数据将占用的总存储空间(以字节为单位)。
如果我们未选中“打开定义”(Open Definition),将不会打开该对话框。此时,我们应右键单击“Pump_Control”并选择“打开定义”(Open Definition)。
4.单击“参数”(Parameters) 选项卡。
“EnableIn”和“EnableOut”参数为预定义参数,它们会默认添加到每一个用户自定义指令中。
“参数”(Parameters) 选项卡是此用户自定义指令特有参数的标签数据库编辑器窗口,其中包括下列定义特定的字段:“用途”(Usage)、“默认值”(Default)、“要求”(Req) 和“可见”(Vis)。
“用途”(Usage) 允许用户将参数指定为:
“输入”(Input)指令的输入(基本类型)
“输出”(Output)指令的输出(基本类型)
“读写”(InOut)通过“引用”传递给到该指令的参数(可以是任意数据类型,包括 UDT、数组等)
“默认值”(Default) 允许用户为关联参数指定默认值。默认值是首次创建用于调用指令的实例标签时赋予参数的值。
“要求”(Req) - 如为参数选中“要求”(Required),则用户要在例程中使用实例指令时必须输入一个标签或与此参数建立一个 FB 连接。这种调节机制定义了之后将进行的语言检验行为。选中“要求”(Required) 的参数在默认情况下也会中“可见”(Visible)。
“可见”(Vis) - 如果为参数选中“可见”(Visible),则在例程中使用该指令时,它将默认为可见。根据指令实例所采用数据类型和语言(LD、FB、ST)的不同,使用此调节机制将产生不同的结果。
“描述”(Description) 字段非常重要,因为这里使用的任何信息都将“传递”给用户程序中的所有指令实例。描述将自文档化指令用途、单位等信息。
5.输入如下所示的参数和规范:
· 单击空白的“名称”(Name) 字段并输入新的参数名。
· 单击“用途”(Usage) 字段并使用下拉菜单进行选择。
用途“读写”(InOut) 指示该指令通过“引用”传递数据。这相当于向指令传递一个“指向数据的指针”,而不是传递“数据的值”。使用数组、预定义结构或 UDT 作为用户自定义指令的输入时,应采用这种方式。
· 单击“数据类型”(Data Type),然后单击省略号并选择数据类型。
· 根据需要,单击“默认值”(Default) 并进行修改。
· 根据需要选中“要求”(Req) 或“可见”(Vis)。
· 根据需要,添加描述。
· 配置完所有字段后,按下 Enter 键或单击“应用”(Apply) 按钮。
6.双击“逻辑”(Logic) 按钮打开 Pump_Control 的空白梯形图逻辑例程。
7.向例程中添加以下逻辑梯级。注:此梯级的所有标签都已创建。
8.再添加一个逻辑梯级并添加定时器,如下图所示。
9.按下图所示填写对话框:
“局部标签”是仅限指令使用的标签,而不是仅限指令用户使用的标签。因此,当指令已在例程中实际使用时,数据结构中将不会显示这些标签。典型用途是用作用户自定义指令的内部指令标签,或用作某些运算中需要保留的中间值。这些标签只能在指令定义中查看。
12.按下图所示完成梯级。
13.按下图所示再添加一个梯级。
完成AOI的制作,保存程序
调用AOI
AOI可用于任何梯形图逻辑、功能块或结构化文本语言(包括 SFC)。指令的外观符合所处的环境。在“参数”(Parameter) 定义中进行的参数属性选择决定了在每种语言中的输入、检验和显示行为。
之前创建的用户自定义指令可从任意常规指令编辑机制访问:
指令工具栏中有一个“用户自定义指令”(Add-On) 选项卡,其中列有项目中当前可用的所有用户自定义指令。
14.打开 MainProgram 的 MainRoutine。
15.使用工具栏或指令名称向空白梯级中添加一个泵控制指令。
16.右键单击第一个问号 (?) 并选择“新建标签”(New Tag)。
17.按下图所示完成“新建标签”(New Tag) 对话框,然后单击“确定”(OK)。
18.向指令中输入下面两个标签引用,如下所示。
19.逻辑梯级应如下所示:
关于AOI源代码保护功能将后期单独介绍。

