AB PLC编程软件RSLOGIX5000入门7——UDT用户自定义数据类型
- 格式:doc
- 大小:1.50 MB
- 文档页数:32
附录第一章位指令 (2)第一节数据文件 (3)第二节位指令 (6)第二章计时器和计数器指令 (11)第三章比较指令 (21)第四章算术指令 (26)第五章传送和逻辑指令 (32)第六章移位和顺序进出指令 (35)第七章程序流程指令 (42)第八章I/O,文件,PID指令 (46)第九章高速计数指令 (64)第一章位指令位指令可对数据的单个位进行操作。
在运行时,处理器可以根据其所在梯级的逻辑条件置位或复位一位。
应用程序可以根据需要对一位寻址任意次。
本章第一节介绍位指令地址可使用的数据文件,第二节介绍基本的位指令。
第一节数据文件系统默认的数据文件分为以下几种类型:1.输出和输入数据文件(O0:和I1:)2.状态文件(S2:)3.位文件(B3:)4.计时器文件(T4:)5.计数器文件(C5:)6.控制文件(R6:)7.整数文件(N7:)上面的文件号也为系统默认的(即系统默认文件0为输出文件,1为输入文件,2为状态文件,等等)。
下面对这些系统默认的文件类型分别予以介绍。
1.输出和输入数据文件(O0:和I1:)文件O0中的各位表示外部的输出,文件I1中的各位表示外部的输入。
在大多数情况下,这些文件中的每个16位字号与位于控制器内的一槽相对应,位号与相应的输入或输出端子号对应。
输出和输入的地址格式用e表示槽号,s表示字号。
处理文件指令时,数据文件元素举例:O:3/5 槽3,输出位5I:7/8 槽7,输入位8I:2.1/3 槽2,字1,输入位3字地址:O:5 槽5,输出字0O:5.1 槽5,输出字1I:8 槽8,输入字0特别的,当一个槽的I/O点数超过16个时,寻址位有两种表示方法:使用字、位寻址和直接位寻址。
如:MicroLogix 1500系列输出0槽有64点。
寻址O:0.2/13时,也可写为O:0/45。
缺省值:用户编程设备显示的地址格式将更加正规。
例如:当分配地址O:5/0时,编程设备将显示为O:5.0/0(输出文件,槽5,字0,端子0)。
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. 在控制器项目管理器中,双击"控制器标签"(Controller Tags)。
将出现标签编辑器。
可注意到,标签数据库的外观与传统 PLC 非常类似。
Logix 标签数据库在传统 PLC 中,用物理地址标识各个数据项,例如 N7:0 或 B3:0/0。
AB -Logix5000 PLC 使用培训教程目录第一章AB PLC使用介绍第一节 BOOTP软件的应用以太网模块在第一次使用时里面没有IP地址,只有物理地址即MAC地址,需要用户给以太网模块分配IP地址。
现在来介绍如何用BOOTP软件给以太网模块设置IP地址。
注意只有没有IP地址的以太网模块才可以用BOOTP软件,如果已经有了IP地址修改IP地址,BOOTP软件是不适用的。
按如下步骤1、找到BOOTP软件可以在RSLogix5000软件的TOOLS里找到也可以在开始菜单里找到如下图在使用bootp软件之前要把本地网络IP地址设置成固定IP和最终想设置的以太网模块地址是同一个网段。
不能是自动获取。
2、然后打开BOOTP-DHCP-Server出现如下图所示,白色对话框里是自动扫描到的MAC地址。
3、然后双击MAC地址会出现如下4、在IP地方输入IP地址5、点击OK出现如下图6、使IP地址部分高亮然后电机按钮直到Status处出现commad successful此时已经把以太网模块的IP地址设置成动态的,断电后还会丢失(注意:有时候需要点击多次才能成功是正常的)然后在点击按钮,直到Status处出现commad successful此时IP地址已经设置成静态的。
7、用BOOTP设置IP地址完毕第二节RSlinx通讯软件介绍RSlinx是通讯软件,用于建立PLC和PC之间的通信。
下面我们将介绍通过DF1通信协议以及ENthernet IP协议,建立计算机和PLC的通信。
一、通过DF1通信协议建立计算机和PLC的通信步骤如下:1.打开RSlinx,可以按如下的路径打开,或者是直接点击右侧任务栏下的图标。
RSlinx打开后出现如下界面:2、打开RSlinx后,直接点击图标,即上图标注出的Configurate drives,或者是通过Communications>Configurate drives,3、将下拉箭头展开,出现如下界面:4、选择RS-232 DF1 devices,然后选择Add New按钮,点击OK5、注意在Comm下,若是编程电缆直接和电脑的串口相连,则用默认的COM1,若是采用了USB转串口,则需根据实际情况选择相应的串口,确认Comm,如下图所示。
RSLogix5000 入门运行“开始\所有程序\Rockwell Software \RSLogix 5000 Enterprise Series \RSLogix5000 ”或双击桌面上RSLogix 5000 的图标,打开RSLogix 5000软件。
1 从File菜单选择New,显示New Controller对话框。
2 从Type的下拉菜单中选择1756-L62(或1756-L55) ControlLogix Controller。
3 在Revision的下拉菜单中选择13。
4 在Name栏中键入字母和数字组合作为处理器的名字,如Test1。
5 从Chassis Type下拉菜单中选择1756-A10 10-Slot ControlLogix Chassis。
(机架槽数还可能为7槽或13槽此时请对应选择1756-A7 7-Slot ControlLogix Chassis或1756-A13 13-Slot ControlLogix Chassis)6 在Slot Number栏内选择0,与机架中的控制器模块的位置匹配。
7 在Create In栏内键入文件保存路径或点击Browse键定位地址目录,我们创建文件目录在C:\RSLogix 5000\Projects\ 。
8 确认输入与图1-2所示吻合,然后点击OK。
由此创建了一个控制器文件。
左侧菜单是控制程序的主体架构Controller Organizer,控制器组织画面由文件夹项目树和文件组成,文件中包含现在这个控制器文件中有关程序和数据的所有信息。
各部分说明如下:Controller File Name –包括控制器范围的标签、控制器故障处理程序和电源处理程序。
Tasks –在这个文件夹中显示任务,每个任务都有各自带梯形图例程和程序范围标签的程序。
Trends –在这个文件夹中创建趋势图。
Data Type –显示预定义和用户定义的数据类型,用户定义的数据在这个文件夹中创建。
2012-04-12 数据类型数据类型目录1Predefined Data Type (3)1.1Basic Predefined Data Type (3)1.2Advanced Predefined Data Type .............................................................. 3高级预定义数据类型1.3Module Predefined Data Type (4)2User Defined Data Type (5)2.1UDT概况 (5)2.2通用标准UDT (5)2.3非标准UDT (8)1、预定义数据类型基本预定义数据类型高级预定义数据类型模块预定义数据类型2、用户自定义数据类型1.Predefined Data TypePredefined预定义的数据类型是在系统中定义且不可修改的数据类型●Basic Predefined Data TypeBasic Predefined是构成数据类型的基本单元,所有其它数据类型基于此基础●Advanced Predefined Data TypeAdvanced Predefined是Rockwell 开发的一些由Basic Predefined数据类型组成,方便编程人员使用的系统自带的数据类型,如TMR(timer),RIN(Redundant Input冗余输入),下图1以RIN为例,所有的组成均为BOOL 量,每个变量的作用各不相同,可以参见RIN的注释,??图1Module Predefined Data Type【模块预定义数据类型】当编程人员在硬件组态时在IO/Configuration中添加模块时,系统自动生成对应该模块的标签,而Module Predefined数据类型是此类标签的数据类型,如下图所示当我们在硬件组态中添加sz_UB030E2时,自动会生成sz_UB030E2:I表示该模块的输入变量,而AB:1791DS_IB8XOB8_Safety2:I:0即为该模块的预定义数据类型,相同模块由于参数设置的不同,预定义数据类型可能不一样,详见硬件配置中的描述er Defined Data Type●UDT概况1,User Defined Data Type(下文简介UDT)是用户自定义数据类型,可以由各种预定义数据类型或者其他数据类型构成2,UDT将用户关于某一功能(如滚床,气缸)的所有需要用到的变量统一在同一组织结构中3,UDT减少了系统中变量的数量4,UDT使逻辑更加标准化,更具有可复制性●通用标准UDT user defined data type1,通用标准中关于滚床,气缸,关于Cell ,Station,Action【动作】和一些标准柜的UDT,不能删除任何东西而且最好不要修改,下图是以Action的UDT,在Action的动作程序需要用到的变量都包含在此UDT中如我们需要有关闭第一组夹头这个程序,首先我们需要建立已za_Action为数据类型的标签Clamp1Close,并且在CloseClamp的程序段中需要用到的中间变量我们都能在Clamp1Close变量组中找到,如下图1代表关闭完成,图2代表关闭的自动条件,图3代表关闭的命令图1图2图32,下图是以Zc_CellHMI的UDT,与Cell相关的HMI显示画面和此UDT相关,由于HMI使用标准模板,此UDT不能修改,非标准UDT –安全模块1,由于客户特殊的需求或者成本考虑,项目中经常会有非标准的盘柜或者应用,我们可以根据通用标准的UDT 根据项目特点做适当修改。
RSLogix5000培训教程RSLogix 5000是罗克韦尔自动化公司推出的一款基于Windows操作系统的集中式控制软件。
它广泛应用于工业自动化领域,许多工业企业都会在工作中使用这个软件。
因此,对RSLogix 5000软件进行培训教程将有助于工业人员更好地掌握和使用该软件,提高工作效率和质量。
首先,我们需要了解的是RSLogix 5000软件所用到的编程语言和基本概念。
RSLogix 5000支持几种编程语言,包括Ladder Diagram(梯形图)、Structured Text(结构化文本)、Function Block Diagram(功能块图)和Sequential Function Chart (序列功能图)。
每种编程语言都有它自己的语法和操作方式,根据实际应用需求选择相应的编程语言进行编程。
在使用RSLogix 5000软件时,我们需要了解基本概念,如标签、数据类型、Array(数组)、Tag UDT(用户定义的数据类型)等。
标签是一个变量的名称,可以定义为输入、输出或内部变量。
数据类型包括BOOL(布尔型)、INT(整型)、REAL (浮点型)等,其中BOOL是最常用的数据类型。
Array是由相同数据类型的元素组成的变量组合,其中每个元素都有相应的下标值。
Tag UDT是用户在程序中自定义的一个数据类型,可以包含不同的数据类型和结构体。
紧接着,我们需要了解的是如何创建一个工程和配置硬件设备。
在RSLogix 5000软件中,我们可以通过创建一个新工程来开始我们的编程工作。
在创建工程之前,我们需要选择相应的PLC类型、控制器和通信模块,并进行硬件配置。
这样,RSLogix 5000软件就可以连接到PLC并进行编程。
在完成硬件配置之后,我们可以配置主要的控制设备、输入和输出点等,这样可以保证我们的程序的准确性和稳定性。
在编写程序之前,我们还需要了解一些程序设计原则,如状态机、递归、中断服务程序等。
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. 在控制器项目管理器中,双击"控制器标签"(Controller Tags)。
将出现标签编辑器。
可注意到,标签数据库的外观与传统 PLC 非常类似。
Logix 标签数据库在传统 PLC 中,用物理地址标识各个数据项,例如 N7:0 或 B3:0/0。
不使用地址注释或符号,就很难阅读逻辑。
在 Logix 控制器中没有固定的内存 N7:0 或 B3:0/0。
Logix 内存是基于标签的系统。
标签名称本身就可以标识数据。
借此便能够组织数据以模拟机器。
您可在实际中 使用分配的标签名称记录代码,例如 Nozzle_1_Temperature 。
参考信息创建 Logix 项目标签的指导原则指导原则详细信息:1) 创建用户自定义数据类型。
用户自定义数据类型(结构)使您可以组织数据以匹配机器或进程。
用户自定义数据类型提供以下优势:一个标签包含系统特定方面的所有相关数据。
这样将相关数据保存在一起便于查找,不考虑其数据类型。
每个数据(成员)得到一个描述性名称。
这样自动为逻辑创建初始水平的文档。
可以使用该数据类型创建具有相同数据规划的多个标签。
例如,使用用户自定义数据类型存储罐的所有参数,包括温度、压力、阀门位置和预设值。
然后基于该数据类型为每个罐创建标签。
Tank_North North_TankTank_South South_Tank2. 在标签编辑器中单击 N7 旁边的 +。
这将展开 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 个数据表,浪费内存。
而通过创建 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 标签并注意 N7[0] 到 N7[7] 及其描述。
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上,定时器的地址为 T4[20]。
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 的标签。
只要记录中仍可看到铅笔图标,您便仍处于编辑模式下。
14. 要创建新标签,单击 Conveyor_2 下面的新空白行,并验证标签编辑器的显示如下:15. 使用与上述相同的方法,为 Conveyor_3 创建标签。
16. 完成后,验证标签数据库的显示如下:现在我们将需要更新梯形图代码以使用这些新标签。
我们将从 Conveyor_2 开始。
我们将仅修改 Alarm_Status 和 Energy_Manag 例程。
使用下表并参考 Conveyor_1 例程。
让我们从一个示例开始。
17. 在控制器项目管理器中,双击例程 C2_Alarm_Status。
重要说明:我们目前将忽略任何在描述中包括文字"映射"的 B3 地址。
18. 在梯级零上,注意描述为 C2 电机过载的 OTE 指令。
通过查看前一页中的图,您可发现此描述与 UDT 中的第二个成员相匹配。
19. 要更改地址,双击 B3[28]。
这将打开一个下拉框,以便您可选择一个新标签。
20. 单击向下箭头(这将打开标签浏览器),滚动浏览列表直到您找到 Conveyor_2。
21. 单击 + 展开该标签,然后选择 Conveyor_2.Motor_Overload,如下所示:22. 双击 Conveyor_2.Motor_Overload。
这会令 Conveyor_2.Motor_Overload 成为 OTE 指令的新标签。