.

结构体

.
.

通过单击添加对象,在带有DUT对象的项目中创建结构体。

结构体声明以关键字TYPESTRUCT开头,以关键字END_STRUCTEND_TYPE结尾。

声明结构体的语法:


TYPE <结构体的名称>: 
STRUCT
    <声明变量1>
    ...
    <声明变量n>
END_STRUCT
END_TYPE
 

<结构体的名称>是一种CODESYS可以识别整个工程的类型,你可以将其用作标准数据类型。

你也可以使用嵌套结构。唯一的限制是不允许你将地址分配给变量(因为不允许AT声明)。

.

.名为Polygonline的结构体定义示例


TYPE polygonline: 
STRUCT
    start:ARRAY [1..2] OF INT;
    point1:ARRAY [1..2] OF INT;
    point2:ARRAY [1..2] OF INT;
    point3:ARRAY [1..2] OF INT;
    point4:ARRAY [1..2] OF INT;
    end:ARRAY [1..2] OF INT;
END_STRUCT
END_TYPE
 
.
初始化结构体
.

.例如:

pPoly_1 : polygonline := ( start:=[3,3], point1:=[5,2], point2 := [7,3], point3 := [8,5], point4 := [5,7], end := [3,5]);

不允许使用带有变量的初始化。有关初始化结构体数组的示例,请参见ARRAY数据类型的帮助页面。

.
访问结构体成员

你可以使用以下语法访问结构体成员:

<结构体的名称>.<组件的名称>

因此,在上面的示例中,你可以使用poly_1.start访问polygonline结构体中的start组件。

.
结构体中的位访问

Bit是仅在结构体中定义的特殊数据类型。它保留一个内存位,并允许使用名称来寻址结构的单个位。


TYPE <结构体的名称>: 
STRUCT
    <位名称bit1> : BIT;
    <位名称bit2> : BIT;
    <位名称bit3> : BIT;
    ...
    <位名称bitn> : BIT;
END_STRUCT
END_TYPE
 

你可以使用以下语法访问BIT结构体中的成员:

<结构体的名称>.<位名称>

 

你不能使用任何指向BIT变量的引用或指针。此外,不允许你在数组中使用BIT变量。