第7章用户定制数据类型_15107898
- 格式:ppt
- 大小:931.00 KB
- 文档页数:137


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 非常类似。
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。不使用地址注释或符号,
7、⽤户⾃定义数据类型
1、结构体
1.1、结构体的定义
在实际的处理对象中,有许多信息是由多个不同类型的数据组合在⼀起进⾏描述,⽽且这些不同类型的数据是互相联系组成了⼀个有机
的整体。此时,就要⽤到⼀种新的构造类型数据-----结构体,简称结构。
结构体的使⽤为处理复杂的数据结构(如动态数据结构等)提供了有效的⼿段,⽽且,它们为函数间传递不同类型的数据提供了⽅便。
结构体和数组⼀样,也是⼀种构造型数据类型,是⽤户⾃定义的新数据类型,在结构体中可以包含若⼲个不同数据类型和不同意义的数
据项(当然也可以相同),从⽽使这些数据项组合起来反映某⼀个信息。
结构体是⼀种构造数据类型,结构体的语法如下:
Struct 结构体名
{
数据类型 成员名1;
数据类型 成员名2;
数据类型 成员名3;
….
数据类型 成员名n;
};
在花括号中的内容也称为“成员列表”或“域表”。其中每个成员的命名规则与变量名相同,成员之间⽤“;”作为结束符,整个结构的定义也
⽤“;”作为结束符,数据类型可以是基本变量类型、数组类型、结构体类型、联合体类型或枚举类型等。
先定义结构体类型,再定义结构体变量。
结构体中的成员名可以与程序中的变量名相同,⼆者并不代表同⼀对象,编译程序可以⾃动对它们进⾏区分。
定义结构体类型时不会分配空间,只有⽤结构体类型定义变量时才会分配空间。
总结⼀下结构体类型的特点:
(1)、结构体类型是⽤户⾃⾏构造的
(2)、它由若⼲不同的基本数据类型的数据构成
(3)、它属于C语⾔的⼀种数据类型,与整形、浮点型相当。因此,定义它是不分配空间,只有⽤它定义变量时才分配空间。
1.2、结构体变量的声明、使⽤及初始化
1.2.1、结构体变量的声明
在定义了结构体类型后,就可以声明结构体类型的变量。有下⾯⼏种形式:
(1)、先定义结构体类型,再定义变量名
Struct 结构体名
{
类型 成员名;
类型 成员名;
};
Struct 结构体名 变量名1,变量名2…;
1 第七章 用户自定义数据类型
7.1 结构体类型
7.1.1 结构体的概述
一个学生的学号、姓名、性别、年龄、成绩、家庭住址
num name sex age score addr
10010 Li Fun M 18 87.5 BeiJing
声明一个新的结构体的类型:
struct Student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
7.1.2 结构体类型变量的定义方法及其初始化
1. 定义结构体变量的方法
(1) 先声明结构体的类型再定义变量名
Student student1,student2;
(2) 声明类型的同时定义变量
struct Student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}std1,std2;
(3) 直接定义结构体类型变量
struct
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}std1,std2;
(4) 成员也可以是一个结构体变量
struct Date
{ int month;
int day;
int year;
};
struct Student
{ int num;
char name[20];
char sex;
int age; 2 Date birthday;
float score;
char addr[30];
};
2. 结构体变量的初始化
struct Student
{ int num;
char name[20];