AB PLC编程软件RSLOGIX5000入门7——UDT用户自定义数据类型
在本章中,我们将介绍如何通过用户自定义数据类型和数据范围划定来规划标签数据库。 这里将学到
§ 了解使用 UDT 的优势
§ 学习如何优化 UDT 规划
§ 使用数据范围划定帮助简化并加快开发工作
我们现在将重点关注 Logix 控制器中的数据规划。 打开现有控制器文件
1. 在计算机桌面上,双击 Lab Files 文件夹。
2. 双击名为 Conveyor_Program_S3.ACD 的现有项目。
这样将在 RSLogix 5000 中启动该项目。
为传送带创建用户自定义数据类型
您已重新组织了程序规划以更好地利用 Logix,现在已准备好开始对数据规划进行重新组织。可注意到,工程师规划数据的方式仍像使用带有整数、实数和定时器数据表的传统 PLC 一样。问题是,当与设备关联的数据分布到控制器内存中的各处时便很难进行跟踪。您已再次决定充分利用 Logix,使用用户自定义数据类型。 用户自定义数据类型
用户自定义数据类型也称为 UDT 或结构,借此按逻辑方式对数据进行组织或分组,以便所有与设备关联的数据都可组合在一起。
例如,每个传送带都有 8 个整数值、3 个实数值、2 个定时器和 11 个与其关联的布尔值。在传统PLC 中,可能需要 4 个不同的数据表。然后,当您具有多条传送带时,您可能需要详细地将传送带映射到各个数据表中。这样就会变得很难管理。
通过 UDT 能够实现的是将不同的数据类型(整数、实数、定时器、布尔等)组合到一起,共同作为用户自定义数据类型。然后便可创建该 UDT 类型的数组。这可使得编程工作、代码的记录和数据的跟踪都更加轻松。
1. 在控制器项目管理器中,双击\控制器标签\。
将出现标签编辑器。可注意到,标签数据库的外观与传统 PLC 非常类似。
Logix 标签数据库
在传统 PLC 中,用物理地址标识各个数据项,例如 N7:0 或 B3:0/0。不使用地址注释或符号,就很难阅读逻辑。
在 Logix 控制器中没有固定的内存 N7:0 或 B3:0/0。Logix 内存是基于标签的系统。标签名称本身就可以标识数据。借此便能够组织数据以模拟机器。您可在实际中 使用分配的标签名称记录代码,例如 Nozzle_1_Temperature。
参考信息
创建 Logix 项目标签的指导原则 指导原则 详细信息: 用户自定义数据类型(结构)使您可以组织数据以匹配机器或进程。用户自定义数据类型提供以下优势: 一个标签包含系统特定方面的所有相关数据。这样将相关数据保存在一起便于查找,不考虑其数据类型。 1) 创建用户自每个数据(成员)得到一个描述性名称。这样自动为逻辑创建初始水平的文定义数据类型。 档。 可以使用该数据类型创建具有相同数据规划的多个标签。 例如,使用用户自定义数据类型存储罐的所有参数,包括温度、压力、阀门位置和预设值。然后基于该数据类型为每个罐创建标签。 数组在一个公共标签名称下创建数据类型的多个实例。 数组使您可以组织一组使用相同数据类型并执行类似功能的标签。 以一维、二维或三维组织数据以匹配数据表示的内容。 2) 使用数组快 速创建一组类例如,使用二维数组组织油库的数据。数组的每个元素表示一个油罐。元素似 在数组中的位置表示罐的地理位置。 标签。 重要说明:尽量减少使用 BOOL 数组。许多数组指令不能在 BOOL 数组上使用。这使得更难以初始化和清除 BOOL 数据数组。 通常对 PanelView 屏幕的位级别对象使用 BOOL 数组。否则,使用 DINT 标签的各个位或 DINT 数组。 如果希望多个标签具有相同名称,请在每个不同程序的程序范围定义每个标签(程序标签)。这使您可以在多个程序中重新使用逻辑和标签名称。 避免同时为控制器标签和程序标签使用相同的名称。在程序中,如果程序的程序标签与控制器标签名称相同,则不能引用控制器标签。 某些标签必须是控制器范围(控制器标签)。 则分配此范围: 3) 利用程序范如果希望将标签用于: 围标签。 项目中的多个程序中 消息 (MSG) 指令中 控制器范围(控制器标签) 在控制器之间产生或使用数据与PanelView 终端通信 以上都不是
程序范围(程序标签) 要提高逻辑效率,请尽可能少用 SINT 或 INT 数据类型。条件允许时,对整数使用 DINT 数据类型。 Logix5000 控制器通常将值作为 32 位值(DINT 或 REAL)进行比较或操作。 4) 对于整数,使控制器在使用值前,通常会将 SINT 或 INT 值转换为 DINT 或 REAL 值。 用 DINT 数据 类型。 如果目标是 SINT 或 INT 标签,则控制器通常会将该值转换回 SINT 或 INT 值。 与 SINT 或 INT 的转换自动进行,无需额外编程。不过将占用额外的执行时间和内存。 下面是标签名称的规则: 仅字母字符(A-Z 或 a-z)、数字字符 (0-9) 和下划线 (_) 5) 限制标签名称必须以字母字符或下划线开始 不能多于 40 个字符 为 40 个字符。 不能连续出现下划线字符 (_) 或以下划线字符 (_) 结尾 不区分大小写 尽管标签不区分大小写(大写 A 和小写 a 相同),但混合大小写更容易阅读。 这些标签更容易阅读: Tank_1 6) 使用混合大小写。 Tank1 RSLogix 5000 软件以字母顺序显示相同范围的标签。要更容易监视相关标签,请对要保存在一起的标签使用类似的开始字符。 否则,标签可能彼此分隔。 标签名称 相比这些标签: TANK_1 TANK1 tank_1 tank1 7) 考虑标签的字母对罐的每个标签以 Tank 开始将标签 顺序。 保存在一起。 标签名称 Tank_North Tank_South
2. 在标签编辑器中单击 N7 旁边的 +。
North_Tank South_Tank 这将展开 N7 数组,显示其中的所有元素。可注意到从 N7[0] 到 N7[7] 的数据已定义。然后是从 N7[20]到 N7[27] 和从 N7[40] 到 N7[47]。这些区域分别对应 3 个传送带,是传统的 PLC 数据表布局。
3. 也仔细查看 B3、F8 和 T4。
它们都将采用相同的格式:传送带 1 从 [0] 开始,传送带 2 从 [20] 开始,传送带 3 从 [40] 开始。这样做的目的是使得在标签数据库中查找传送带数据更加容易。这样确实有一定作用,但是您为传送带使用了4 个数据表,浪费内存。