Structures

Structures are created as objects in the Object Organizer under the register card 40ed887c4373a97d0a33139018bd1ba8_10635f69c47d4d460a33139036a026c1 Data types. They begin with the keywords TYPE and STRUCT and end with END_STRUCT and END_TYPE.

The syntax for structure declarations is as follows:

TYPE <Structurename>:
STRUCT
 <Declaration of Variables 1>
 .
 .
 <Declaration of Variables n>
END_STRUCT
END_TYPE

<Structurename> is a type that is recognized throughout the project and can be used like a standard data type.

Interlocking structures are allowed. The only restriction is that variables may not be placed at addresses (the AT declaration is not allowed!).

Example for a structure definition named 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

Example for the initialization of a structure:

Poly_1:polygonline := ( Start:=3,3, Point1 =5,2, Point2:=7,3, Point3:=8,5, Point4:=5,7, End := 3,5);

Initializations with variables are not possible. See an example of the initialization of an array of a structure under ‘Arrays’.

Access on structure components:

You can gain access to structure components using the following syntax:

<Structure_Name>.<Componentname>

So for the above mentioned example of the structure ‘polygonline’ you can access the component ‘start’ by Poly_1.Start.