Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
11.10.2020
Размер:
3.68 Mб
Скачать

Die Datentypen 295

Definierte Datentypen

tod#00:00:00

DATE_AND_TIME-Konstanten, Kombination von Datum und Uhrzeit:

DATE_AND_TIME-Konstanten beginnen mit "dt#", "DT#", "DATE_AND_TIME#" oder "date_and_time#". Nach der Datumsangabe folgt ein Bindestrich und danach die Uhrzeit.

Beispiele:

DATE_AND_TIME#1996-05-06-15:36:30

dt#1972-03-29-00:00:00

11.3 Definierte Datentypen

11.3.1Array

Es werden ein-, zwei-, und dreidimensionale Felder (Arrays) von elementaren Datentypen unterstützt. Arrays können im Deklarationsteil eines Bausteins und in den globalen Variablenlisten definiert werden.

Syntax:

<Feld_Name>:ARRAY [<ug1>..<og1>,<ug2>..<og2>,<ug3>..<og3>] OF <elem. Typ>.

ug1, ug2, ug3 geben die untere Grenze des Feldbereichs an, og1, og2, og3 die obere Grenze. Die Grenzwerte müssen ganzzahlig sein.

Beispiel:

Kartenspiel : ARRAY [1..13, 1..4] OF INT;

Initialisierung von Arrays:

Beispiele für die komplette 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); (* kurz für 1,7,7,7 *)

arr3 : ARRAY [1..2,2..3,3..4] OF INT := 2(0),4(4),2,3; (* kurz für 0,0,4,4,4,4,2,3 *)

Beispiel für die Initialisierung eines Arrays einer Struktur:

TYPE STRUCT1

STRUCT

WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32

296 Die Datentypen

Definierte Datentypen

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 eine teilweise Initialisierung eines Arrays:

arr1 : ARRAY [1..10] OF INT := 1,2;

Elemente, für die kein Wert vorgegeben wird, werden mit dem DefaultInitialwert des Basistypen initialisiert. Im obigen Beispiel werden also die Elemente anarray[6] bis anarray[10] mit 0 initialisiert.

Auf Komponenten von Arrays greift man bei einem zweidimensionalen Feld mit folgender Syntax zu:

<Feld_Name>[Index1,Index2]

Beispiel:

Kartenspiel[9,2]

Hinweis:

Wenn Sie in Ihrem Projekt eine Funktion mit Namen CheckBounds definieren, können Sie damit Bereichsüberschreitungen bei Arrays automatisch überprüfen!

11.3.1.1Funktion Checkbounds

Wenn Sie in Ihrem Projekt eine Funktion mit Namen CheckBounds definieren, können Sie damit Bereichsüberschreitungen in Arrays automatisch überprüfen! Der Name der Funktion ist festgelegt und darf nur diese Bezeichnung besitzen.

x Beispiel für die Funktion CheckBounds

Das folgende Beispielprogramm zum Testen der CheckBounds-Funktion greift außerhalb der Grenzen eines definierten Arrays zu. Die Funktion CheckBounds gewährleistet, daß der Wert TRUE nicht an die Stelle A[10], sondern an der oberen noch gültigen Bereichsgrenze A[7] zugewiesen wird. Mit der CheckBounds-Funktion können somit Zugriffe außerhalb von ArrayGrenzen korrigiert werden.

x Test Programm für die CheckBounds Funktion

WAGO-I/O-SYSTEM 759 WAGO-I/O-PRO 32

Соседние файлы в папке 759-332