资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
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. 在控制器项目管理器中,双击“控制器标签“(Controller Tags) 。将出现标签编辑器。可注意到,标签数据库的外观与传统 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 终端通信以上都不是程序范围(程序标签)4) 对 于 整 数 , 使用 DINT 数据类型。要提高逻辑效率,请尽可能少用 SINT 或 INT 数据类型。 条件允许时, 对整数使用 DINT 数据类型。Logix5000 控制器通常将值作为 32 位值 (DINT 或 REAL ) 进行比较或操作。控制器在使用值前,通常会将 SINT 或 INT 值转换为 DINT 或 REAL 值。如 果 目 标 是 SINT 或 INT 标 签 , 则 控 制 器 通 常 会 将 该 值 转 换回 SINT 或 INT 值。与 SINT 或 INT 的转换自动进行,无需额外编程。 不过将占用额外的执行时间和内存。5) 限 制 标 签 名 称为 40 个字符。下面是标签名称的规则:仅字母字符(A-Z 或 a-z) 、数字字符 (0-9) 和下划线 (_) 必须以字母字符或下划线开始不能多于 40 个字符不能连续出现下划线字符 (_) 或以下划线字符 (_) 结尾不区分大小写6) 使用混合大小写。尽管标签不区分大小写(大写 A 和小写 a 相同),但混合大小写更容易阅读。这些标签更容易阅读:相比这些标签:Tank_1 TANK_1 Tank1 TANK1 tank_1 tank1 7) 考虑标签的字母顺序。RSLogix 5000 软件以字母顺序显示相同范围的标签。要更容易监视相关标签,请对要保存在一起的标签使用类似的开始字符。对罐的每个标签以 Tank 开始将标签保存在一起。否则,标签可能彼此分隔。标签名称标签名称Tank_North North_Tank Tank_South South_Tank 2. 在标签编辑器中单击N7 旁边的 +。这将展开 N7 数组,显示其中的所有元素。可注意到从 N70 到 N77 的数据已定义。然后是从 N720到 N727 和从 N740 到 N747 。 这些区域分别对应 3 个传送带, 是传统的 PLC 数据表布局。3. 也仔细查看 B3、F8 和 T4。它们都将采用相同的格式:传送带 1 从 0 开始,传送带 2 从 20 开始,传送带 3 从 40 开始。这样做的目的是使得在标签数据库中查找传送带数据更加容易。这样确实有一定作用,但是您为传送带使用了4 个数据表,浪费内存。而通过创建 UDT 可更好地实现这一点。我们现在就来创建 UDT。4. 在 控 制 器 项 目 管 理 器 中 的 “数 据 类 型 “(Data Types) 文 件 夹 下 , 单 击 “用 户自 定 义“(User-Defined)旁边的 +。您将注意到这里有一个名为 Conveyor 的 UDT(已为您启动 UDT 的创建)。5. 双击 Conveyor 。这将为 Conveyor 数据类型打开 UDT 编辑器。可以看到,UDT 混合不同的数据类型。在编程时这是非常有用的工具。用户自定义数据类型的指导原则 创建用户自定义数据类型时,记住以下指导原则: 如果包括表示 I/O 设备的数据, 则必须使用逻辑将数据复制到 UDT 中。UDT 中不可为 I/O指定别名。 如果要在 UDT 中包括数组,应将数组限制为一维。UDT 不支持多维数组。 创建 UDT 时,将类似的数据类型组合到一起。这将创建更为紧凑的 UDT。查看 UDT 后,您会注意到,类似的数据类型并未组合到一起。BOOL 和 REAL 数据类型混在一起。 UDT的当前大小是 52 个字节。将 BOOL 组合在一起可降低这一数字。6. 要进行此操作,单击Motor_Overload 的左侧。这样将选中整行。7. 单击 “向上移动“(Move Up) 按钮。这会在 UDT 中将 Motor_Overload 标签向上移动。8. 对其它 BOOL 标签重复此操作,直到它们均组合到一起。9. 单击 “应用“(Apply)。现在请注意一下 UDT 的大小。您已节省了 12 个字节。10. 完成对 BOOL 标签的移动后,验证 UDT 的显示如下:11. 回到 “控制器标签“(Controller Tags) ,展开 N7 标签并注意 N70 到 N77 及其描述。12. 使用标签的描述将这些标签添加到 UDT。手动执行行此操作(并要记住参考前文中的指导原则 4) 。13. 完成后,单击 “应用“(Apply) 接受所做更改并验证 UDT 应类似下图。您现在已拥有一个在程序中定义传送带的完整 UDT。14. 单击 “确定“(OK)关闭 UDT 编辑窗口。15. 在“文件“(File) 菜单中选择 “关闭“(Close) 。软件将询问您是否要保存对文件所做的更改,选择 “否“(No)。使用传送带UDT现在您将使用刚创建的 UDT 传送带。您意识到 UDT 将帮助优化标签数据库,并使代码的故障处理和开发更容易。1. 在 RSLogix 5000 的工具栏菜单中,选择“文件 打开“(File Open)。2. 双击名为 Conveyor_Program_S4.ACD 的现有项目文件。这样将在 RSLogix 5000 中启动该项目。3. 在控制器项目管理器中,双击“控制器标签“(Controller Tags) 。这将打开标签编辑器。查看标签编辑器,您将发现数据库中有一个新标签Conveyor_1 。4. 单击 Conveyor_1旁边的 + 展开该标签。您可注意到标签的格式与刚创建的 UDT 相同。这可通过查看“类型 “(Type) 列进行确认。5. 在控制器项目管理器中,单击各个程序的+,展开连续任务中的 3 个传送带程序。6. 双击例程 C2_Start_Stop 。这将打开该例程,并可进行查看和编辑操作。7. 现在显示的是梯形图例程C2_Start_Stop 。您可注意到, 在此实例中 Conveyor_2 的寻址方式仍使用的是传统 PLC 的的寻址方式。 例如,在梯级 0 上,定时器的地址为 T420。8. 双击例程 C1_Start_Stop 。这将打开该例程,并可进行查看和编辑操作。9. 现在显示的是梯形图文件C1_Start_Stop 。可注意到传送带 1 的寻址方式使用的是 UDT。如您所见, 代码现在可以自文档化,而且标签名称可描述其具体的意义。您无需再像传统 PLC 中一样添加地址描述。代码中仍有一些较早样式的地址;我们将稍后处理它们。现在我们来继续更新其它两个传送带程序以使用 UDT。首先我们需要创建两个新标签。10. 在工具栏菜单中,选择“窗口 控制器标签 - Conveyor_Program(控制器)“(Window Controller Tags Conveyor_Program(controller) 。这会将标签编辑器窗口置于顶层。11. 在标签编辑器窗口的左下角处,单击“编辑标签“(Edit Tags)选项卡。在这里我们将创建两个新标签,Conveyor_2 和 Conveyor_3。12. 在标签编辑器中列表的底部,可注意到那里有一个开放空间,可创建一个新标签。13. 在“名称: “(Name:)列中,输入 “Conveyor_2“并在 “类型 “(Type) 列中输入 “Conveyor “。这样便会创建一个传送带类型的名称为 Conveyor_2 的标签。只要记
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号