Als elementare Datentypen werden ein-, zwei- und dreidimensionale Felder (Arrays) unterstützt. Arrays können sowohl im Deklarationsteil einer POU als auch in den globalen Variablenlisten definiert werden. Maximal 9 Dimensionen können sich aus der Verschachtelung von Arrays ergeben ("ARRAY[0..2] OF ARRAY[0..3] OF ..." ).
Syntax:
<Field_Name>:ARRAY [<ll1>..<ul1>,<ll2>..<ul2>] OF <elem. Type>.
ll1, ll2, ll3 bezeichnen die untere Grenze des Feldbereichs; ul1, ul2 und ul3 bezeichnen die obere Grenze. Die Grenzwerte müssen ganzzahlig sein und dem DINT-Wertebereich entsprechen.
Beispiel:
Card_game: ARRAY [1..13, 1..4] OF INT;
Initialisierung von Arrays:
Beispiel für die vollständige Initialisierung eines Arrays:
arr1 : ARRAY [1..5] OF INT := 1,2,3,4,5; arr2 : ARRAY [1..2,3..4] OF INT := 1,3(7); (* short for 1,7,7,7 *) arr3 : ARRAY [1..2,2..3,3..4] OF INT := 2(0),4(4),2,3; (* short for 0,0,4,4,4,4,2,3 *)
Beispiel für die Initialisierung eines Arrays einer Struktur:
TYPE STRUCT1 STRUCT p1:int; p2:int; p3:dword; END_STRUCT ARRAY[1..3] OF STRUCT1:= (p1:=1,p2:=10,p3:=4723),(p1:=2,p2:=0,p3:=299),(p1:=14,p2:=5,p3:=112);
Beispiel für die teilweise Initialisierung eines Arrays:
arr1 : ARRAY [1..10] OF INT := 1,2;
Elemente, denen kein Wert zugewiesen ist, werden mit dem Standardausgangswert des Basistyps initialisiert. Im obigen Beispiel werden daher die Elemente anarray[6] bis anarray[10] mit 0 initialisiert.
Zugriff auf Array-Komponenten:
Auf Array-Komponenten wird in einem zweidimensionalen Array mit der folgenden Syntax zugegriffen:
<Field_Name>[Index1,Index2]
Beispiel:
Card_game [9,2]
Wenn Sie in Ihrem Projekt eine Funktion mit dem Namen CheckBounds definieren, können Sie diese verwenden, um in Ihrem Projekt⮫ „Wie ist ein Projekt strukturiert?“⮫ „Funktion CheckBounds“ auf Bereichsüberläufe zu prüfen.