ab plc编程软件rslogix5000入门7——udt用户自定义数据类型.doc

上传人:仙人指路1688 文档编号:2393531 上传时间:2023-02-17 格式:DOC 页数:32 大小:1.48MB
返回 下载 相关 举报
ab plc编程软件rslogix5000入门7——udt用户自定义数据类型.doc_第1页
第1页 / 共32页
ab plc编程软件rslogix5000入门7——udt用户自定义数据类型.doc_第2页
第2页 / 共32页
ab plc编程软件rslogix5000入门7——udt用户自定义数据类型.doc_第3页
第3页 / 共32页
ab plc编程软件rslogix5000入门7——udt用户自定义数据类型.doc_第4页
第4页 / 共32页
ab plc编程软件rslogix5000入门7——udt用户自定义数据类型.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《ab plc编程软件rslogix5000入门7——udt用户自定义数据类型.doc》由会员分享,可在线阅读,更多相关《ab plc编程软件rslogix5000入门7——udt用户自定义数据类型.doc(32页珍藏版)》请在三一办公上搜索。

1、AB PLC编程软件RSLOGIX5000入门7UDT用户自定义数据类型在本章中,我们将介绍如何通过用户自定义数据类型和数据范围划定来规划标签数据库。这里将学到了解使用UDT的优势学习如何优化UDT规划使用数据范围划定帮助简化并加快开发工作我们现在将重点关注Logix控制器中的数据规划。打开现有控制器文件1.在计算机桌面上,双击Lab Files文件夹。2.双击名为Conveyor_Program_S3.ACD的现有项目。这样将在RSLogix 5000中启动该项目。为传送带创建用户自定义数据类型您已重新组织了程序规划以更好地利用Logix,现在已准备好开始对数据规划进行重新组织。可注意到,工

2、程师规划数据的方式仍像使用带有整数、实数和定时器数据表的传统PLC一样。问题是,当与设备关联的数据分布到控制器内存中的各处时便很难进行跟踪。您已再次决定充分利用Logix,使用用户自定义数据类型。用户自定义数据类型用户自定义数据类型也称为UDT或结构,借此按逻辑方式对数据进行组织或分组,以便所有与设备关联的数据都可组合在一起。例如,每个传送带都有8个整数值、3个实数值、2个定时器和11个与其关联的布尔值。在传统PLC中,可能需要4个不同的数据表。然后,当您具有多条传送带时,您可能需要详细地将传送带映射到各个数据表中。这样就会变得很难管理。通过UDT能够实现的是将不同的数据类型(整数、实数、定时

3、器、布尔等)组合到一起,共同作为用户自定义数据类型。然后便可创建该UDT类型的数组。这可使得编程工作、代码的记录和数据的跟踪都更加轻松。1.在控制器项目管理器中,双击控制器标签(Controller Tags)。将出现标签编辑器。可注意到,标签数据库的外观与传统PLC非常类似。Logix标签数据库在传统PLC中,用物理地址标识各个数据项,例如N7:0或B3:0/0。不使用地址注释或符号,就很难阅读逻辑。在Logix控制器中没有固定的内存N7:0或B3:0/0。Logix内存是基于标签的系统。标签名称本身就可以标识数据。借此便能够组织数据以模拟机器。您可在实际中使用分配的标签名称记录代码,例如N

4、ozzle_1_Temperature。参考信息创建Logix项目标签的指导原则指导原则详细信息:1)创建用户自定义数据类型。用户自定义数据类型(结构)使您可以组织数据以匹配机器或进程。用户自定义数据类型提供以下优势:一个标签包含系统特定方面的所有相关数据。这样将相关数据保存在一起便于查找,不考虑其数据类型。每个数据(成员)得到一个描述性名称。这样自动为逻辑创建初始水平的文档。可以使用该数据类型创建具有相同数据规划的多个标签。例如,使用用户自定义数据类型存储罐的所有参数,包括温度、压力、阀门位置和预设值。然后基于该数据类型为每个罐创建标签。2)使用数组快速创建一组类似标签。数组在一个公共标签名

5、称下创建数据类型的多个实例。数组使您可以组织一组使用相同数据类型并执行类似功能的标签。以一维、二维或三维组织数据以匹配数据表示的内容。例如,使用二维数组组织油库的数据。数组的每个元素表示一个油罐。元素在数组中的位置表示罐的地理位置。重要说明:尽量减少使用BOOL数组。许多数组指令不能在BOOL数组上使用。这使得更难以初始化和清除BOOL数据数组。通常对PanelView屏幕的位级别对象使用BOOL数组。否则,使用DINT标签的各个位或DINT数组。3)利用程序范围标签。如果希望多个标签具有相同名称,请在每个不同程序的程序范围定义每个标签(程序标签)。这使您可以在多个程序中重新使用逻辑和标签名称

6、。避免同时为控制器标签和程序标签使用相同的名称。在程序中,如果程序的程序标签与控制器标签名称相同,则不能引用控制器标签。某些标签必须是控制器范围(控制器标签)。如果希望将标签用于:则分配此范围:项目中的多个程序中控制器范围(控制器标签)消息(MSG)指令中在控制器之间产生或使用数据与PanelView终端通信以上都不是程序范围(程序标签)4)对于整数,使用DINT数据类型。要提高逻辑效率,请尽可能少用SINT或INT数据类型。条件允许时,对整数使用DINT数据类型。Logix5000控制器通常将值作为32位值(DINT或REAL)进行比较或操作。控制器在使用值前,通常会将SINT或INT值转换

7、为DINT或REAL值。如果目标是SINT或INT标签,则控制器通常会将该值转换回SINT或INT值。与SINT或INT的转换自动进行,无需额外编程。不过将占用额外的执行时间和内存。5)限制标签名称为40个字符。下面是标签名称的规则:仅字母字符(A-Z或a-z)、数字字符(0-9)和下划线(_)必须以字母字符或下划线开始不能多于40个字符不能连续出现下划线字符(_)或以下划线字符(_)结尾不区分大小写6)使用混合大小写。尽管标签不区分大小写(大写A和小写a相同),但混合大小写更容易阅读。这些标签更容易阅读:相比这些标签:Tank_1TANK_1Tank1TANK1tank_1tank17)考虑

8、标签的字母顺序。RSLogix 5000软件以字母顺序显示相同范围的标签。要更容易监视相关标签,请对要保存在一起的标签使用类似的开始字符。对罐的每个标签以Tank开始将标签保存在一起。否则,标签可能彼此分隔。标签名称标签名称Tank_NorthNorth_TankTank_SouthSouth_Tank2.在标签编辑器中单击N7旁边的+。这将展开N7数组,显示其中的所有元素。可注意到从N70到N77的数据已定义。然后是从N720到N727和从N740到N747。这些区域分别对应3个传送带,是传统的PLC数据表布局。3.也仔细查看B3、F8和T4。它们都将采用相同的格式:传送带1从0开始,传送带

9、2从20开始,传送带3从40开始。这样做的目的是使得在标签数据库中查找传送带数据更加容易。这样确实有一定作用,但是您为传送带使用了4个数据表,浪费内存。而通过创建UDT可更好地实现这一点。我们现在就来创建UDT。4.在控制器项目管理器中的数据类型(Data Types)文件夹下,单击用户自定义(User-Defined)旁边的+。您将注意到这里有一个名为Conveyor的UDT(已为您启动UDT的创建)。5.双击Conveyor。这将为Conveyor数据类型打开UDT编辑器。可以看到,UDT混合不同的数据类型。在编程时这是非常有用的工具。用户自定义数据类型的指导原则创建用户自定义数据类型时,

10、记住以下指导原则:如果包括表示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标

11、签重复此操作,直到它们均组合到一起。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)。软件将询问您是否要保

12、存对文件所做的更改,选择否(No)。使用传送带UDT现在您将使用刚创建的UDT传送带。您意识到UDT将帮助优化标签数据库,并使代码的故障处理和开发更容易。1.在RSLogix 5000的工具栏菜单中,选择文件打开(File Open)。2.双击名为Conveyor_Program_S4.ACD的现有项目文件。这样将在RSLogix 5000中启动该项目。3.在控制器项目管理器中,双击控制器标签(Controller Tags)。这将打开标签编辑器。查看标签编辑器,您将发现数据库中有一个新标签Conveyor_1。4.单击Conveyor_1旁边的+展开该标签。您可注意到标签的格式与刚创建的UD

13、T相同。这可通过查看类型(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。如您所见,代码现在可以自文档化,而且标

14、签名称可描述其具体的意义。您无需再像传统PLC中一样添加地址描述。代码中仍有一些较早样式的地址;我们将稍后处理它们。现在我们来继续更新其它两个传送带程序以使用UDT。首先我们需要创建两个新标签。10.在工具栏菜单中,选择窗口控制器标签- Conveyor_Program(控制器)(Window Controller Tags Conveyor_Program(controller)。这会将标签编辑器窗口置于顶层。11.在标签编辑器窗口的左下角处,单击编辑标签(Edit Tags)选项卡。在这里我们将创建两个新标签,Conveyor_2和Conveyor_3。12.在标签编辑器中列表的底部,可注

15、意到那里有一个开放空间,可创建一个新标签。13.在名称:(Name:)列中,输入Conveyor_2并在类型(Type)列中输入Conveyor。这样便会创建一个传送带类型的名称为Conveyor_2的标签。只要记录中仍可看到铅笔图标,您便仍处于编辑模式下。14.要创建新标签,单击Conveyor_2下面的新空白行,并验证标签编辑器的显示如下:15.使用与上述相同的方法,为Conveyor_3创建标签。16.完成后,验证标签数据库的显示如下:现在我们将需要更新梯形图代码以使用这些新标签。我们将从Conveyor_2开始。我们将仅修改Alarm_Status和Energy_Manag例程。使用下

16、表并参考Conveyor_1例程。让我们从一个示例开始。17.在控制器项目管理器中,双击例程C2_Alarm_Status。重要说明:我们目前将忽略任何在描述中包括文字映射的B3地址。18.在梯级零上,注意描述为C2电机过载的OTE指令。通过查看前一页中的图,您可发现此描述与UDT中的第二个成员相匹配。19.要更改地址,双击B328。这将打开一个下拉框,以便您可选择一个新标签。20.单击向下箭头(这将打开标签浏览器),滚动浏览列表直到您找到Conveyor_2。21.单击+展开该标签,然后选择Conveyor_2.Motor_Overload,如下所示:22.双击Conveyor_2.Moto

17、r_Overload。这会令Conveyor_2.Motor_Overload成为OTE指令的新标签。23.单击标签编辑器的空白处,验证梯级的显示如下(请再次注意自文档化的代码):24.现在,继续并完成此例程的更新。然后更新传送带2的Energy_Manag例程。25.为传送带3重复相同的步骤。26.可注意到标签Conveyor_2.Motor_Overload确实具有描述。对于版本V12和较早版本的RSLogix 5000,在UDT编辑器中输入的描述并不会在UDT编辑器以外显示。UDT传递和附加描述选项从RSLogix 5000的版本13开始,工作站选项(Workstation Option

18、s)下提供2个新设置。如果启用传递描述,则只要不为标签提供显式描述:在标签是别名时将会显示基础标签的描述,或者在标签是成员时将会显示定义的数据类型的成员描述,或者在标签是位、数组元素或成员时将会显示基础标签的描述,或者将会显示定义的基本数据类型的描述。如果选中此复选框,附加到基础标签描述(Append to Base Tag Descriptions)复选框便会启用。如果要使传递描述中包含基础标签描述,则选中附加到基础标签描述(Append to Base Tag Descriptions)复选框。根据传递描述规则添加任意附加描述。在提供此功能之前,用户必须手动从UDT编辑器中剪切描述,并在标

19、签编辑器里手动将这些描述粘贴到标签中。这样会使编程工作多花费许多个小时的时间。我们来了解一下此新功能的工作方式。27.在控制器项目管理器中的数据类型(Data Types)文件夹下,单击用户自定义(User-Defined)旁边的+。您将注意到有一个名为Conveyor的UDT。28.双击文字Conveyor。这将为Conveyor数据类型打开UDT编辑器。29.为UDT的成员添加一些描述,完成后单击应用(Apply)。30.更改UDT的描述,如下所示:31.单击应用(Apply),然后单击确定(OK)关闭UDT编辑器。32.在控制器项目管理器中,双击例程C2_Alarm_Status。您现在

20、可注意到,您输入的描述现在已显示在标签上。该描述包括UDT描述(传送带数据)和UDT成员描述(电机过载指示)。33.在工具栏菜单中,选择工具选项(Tools Options)。将出现选项(Options)窗口。34.在应用程序(Application)下,单击显示(Display)。窗口将如下所示。35.调整工作站选项(WorkStation Options)窗口的位置,以便您既可看见该窗口同时又可看到C2_Alarm_Status例程中的OTE指令。36.单击附加到基础标签描述(Append To Base Tag Descriptions)旁边的复选框关闭此选项,然后单击应用(Apply)

21、接受所做更改。可以注意到描述已更改。UDT描述传送带数据已移除。37.单击显示传递描述(Show Pass-Through Descriptions)旁边的复选框关闭此选项,然后单击应用(Apply)接受所做更改。可以注意到描述已再次更改。描述处已没有任何内容。这是在版本V12和更早RSLogix 5000版本中梯级的显示方式。38.重新打开两个选项,接着单击应用(Apply),然后单击确定(Ok)。39.完成后,单击保存(Save)图标。40.在文件(File)菜单中选择关闭(Close)。使用数据范围划定您刚刚使用过用户自定义数据类型,它们可更好地组织标签数据库,并可创建自文档化的代码。接

22、下来要进行的也是最后一步要进行的是,将标签的范围划定为程序级别。这就是数据范围划定。通过数据范围划定,您可:对不同的程序使用相同的标签名称,因为各程序范围内的标签彼此隔离。开发标准代码,可复制使用多次,无需担忧标签名称冲突。不再需要管理标签名称和数据位置。加速项目开发过程。数据范围划定创建标签时,您将其定义为控制器标签(全局数据)或特定程序的程序标签(本地数据)。Logix控制器允许您将应用分割为多个程序。无需管理程序间标签名称的冲突问题。这样便可更轻松地在多个程序中重复使用代码和标签名称。程序范围内的数据与其它程序隔离。例程不能访问其它程序的程序范围内的数据。可以在多个程序内重复使用程序范围

23、标签的标签名称。打开现有控制器文件在实验的本部分中,您将打开一个现有程序。3.在计算机桌面上,双击Lab Files文件夹。4.双击名为Conveyor_Program_S5.ACD的现有项目。这样将在RSLogix 5000中启动该项目。对程序进行数据范围划定1.在控制器项目管理器中,双击控制器标签(Controller Tags)打开标签编辑器。2.验证已处于编辑标签(Edit Tags)选项卡中(如果不是,则无法执行剪切/粘贴操作)。标签编辑器打开后,您将注意到有许多旧标签不见了(N7、F8、T4)。在创建传送带UDT并修改代码后,便不再需要这些标签了。标签Conveyor_1、Conv

24、eyor_2和Conveyor_3仍存在。F9和PD文件被更改为标签名称,而不是像传统PLC一样采用数据表编号的方式。在将PID移动到周期性任务中后,已将T10文件删除。现在我们要将标签Conveyor_1、Conveyor_2和Conveyor_3从控制器范围移动到程序范围。3.双击数据类型(Data Type)列。这样会将标签排列为更适合我们将进行的编辑。首先我们会将标签Temp_Loop_PID、Control_Output和Process_Variable移动到Temperature_Loop程序范围。4.单击标签Temp_Loop_PID的左侧。这样将选中整行。5.按住Shift键并

25、单击标签Process_Variable的左侧。这样将选中所有3个标签。6.在工具栏菜单中,选择编辑剪切(Edit Cut)。7.在范围(Scope)下拉菜单中,单击向下箭头。单击程序(Programs)旁边的+展开该标签。这将显示所有当前的控制器和程序标签数据库。8.选择PID_Loop范围,如下所示:这将会为程序PID_Loop的程序范围标签打开标签编辑器。在下拉菜单中,名称前的指明这是控制器范围标签。控制器称为Conveyor_Program。所以Conveyor_Program表示控制器范围标签。列表中的所有其它名称是程序名称或控制器中的设备阶段。当前PID_Loop在程序范围级别没有

26、定义任何标签。我们现在将向标签中粘贴第7步中剪切下来的内容。9.单击打开的标签名称文件,以便光标出现在下图位置:10.在工具栏菜单中,选择编辑粘贴(Edit Paste)。11.验证3个标签已粘贴,如下所示:12.切换回控制器范围(Controller scope)标签。将显示如下画面:13.将标签Conveyor_1剪切/粘贴到Conveyor_1程序范围中。14.将标签Conveyor_2剪切/粘贴到Conveyor_2程序范围中。15.将标签Conveyor_3剪切/粘贴到Conveyor_3程序范围中。16.完成后,验证B3是控制器范围中唯一所剩的标签。17.完成对标签的移动后,单击校

27、验控制器(Verify Controller)图标。将会显示4个错误,但这属正常情况。这些错误与仿真器程序相关。之前,我们提到过程序范围内的数据与其它程序隔离。例程不能访问其它程序的程序范围内的数据。但是,可以在多个程序内重复使用程序范围标签的标签名称。让我们来证明这一点,进入所有3个传送带的程序范围标签,将标签名称Conveyor_1、Conveyor_2和Conveyor_3均更改为Conveyor。18.在范围(Scope)下拉菜单中选择Conveyor_1。19.将标签名称Conveyor_1更改为Conveyor。20.修改其它2个标签,将Conveyor_2和Conveyor_3也改为相同名称。21.标签名称更改完成后,单击校验控制器(Verify Controller)图标。将会显示4个错误,但这属正常情况。这些错误与仿真器程序相关。重复的标签不会发生任何错误。这是因为各程序范围内的标签彼此隔离。对标签进行数据范围划定,这使得更容易在多个程序间重复使用代码和标签名称。在此情况下可创建使用程序范围标签的名为conveyor的程序。然后可根据传送带段数向项目中添加相应数量的此程序,无需再修改代码或标签。25.在工具栏菜单中,选择文件关闭(File Close)。26.当软件询问是否保存更改时,选择否(No)。结束

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号