MCO 305 Projektierungshandbuch
DIM Anweisung
DIM muss die erste Anweisung in einem Programm sein und noch vor dem Unterprogrammbereich
erscheinen.
Die DIM Anweisung vereinbart die später verwendbaren Arrays. Sollten bis dahin noch keine Arrays ange-
legt gewesen sein, werden sie neu angelegt. Waren bereits Arrays definiert, müssen die Angaben mit der
ursprünglichen Definition übereinstimmen.
Beispiel
DIM ziel1>20@, ziel2>20@, ziel3>20@, werkoffset>50@
DIM parameter>10@
Mit diesen Befehlen werden insgesamt 5 Arrays mit den entsprechenden Größen definiert. Wenn dieses Pro-
gramm einmal ausgeführt wurde, sind die obigen Arrays in der Steuerung angelegt. Wird bei einem erneu-
ten Start eines Programms festgestellt, dass die Array-Definition von den Arrays in der Steuerung abweicht,
wird dies als Fehler angezeigt. Allerdings ist es korrekt, wenn ein zweites Programm nur folgende Zeile
enthält:
Beispiel
DIM ziel1>20@, ziel2>20@, ziel3>20@
Die Reihenfolge der Definition muss aber immer gleich sein, da die Steuerung nicht die Namen der Arrays
speichert, sondern nur deren Position in der DIM Anweisung. So ist auch die folgende Programmzeile
korrekt und das Array xpos ist dann identisch mit dem Array ziel1.
Beispiel
DIM xpos>20@, ypos>20@, zpos>20@, offs>50@
2-Dimensionale Arrays
Zweidimensionale Arrays werden ab MCO 5.00 unterstützt:
DIM test[10][100]
erzeugt ein Array mit insgesamt 1000 Elementen.
(Beachten Sie, dass es im Array Editor und in der
zbc-Datei als ein eindimensionales Array mit der
Größe 1000. erscheint.) Dieses Array kann wie folgt
adressiert werden:
Array Kopieren
APOSS erlaubt das Kopieren kompletter Arrays in
einen einzelnen Befehl:
Für den Fall, dass die Array-Größe differiert, begrenzt das kleinere der beiden Arrays den Kopierprozess. So
werden in dem oben gezeigten Fall nur die ersten 100 Longs von „feld" in „test" kopiert. Dies funktioniert
für lokale Arrays (LONG, DOUBLE) genauso.
Variable Arrays
Zusätzlich zu DIM Arrays, die es außerhalb von APOSS-Programmen gibt und im Flash gespeichert and von
APOSS gelesen werden können, ist es auch möglich, Arrays in der gleichen Weise zu definieren wie
Variablen. Diese Arrays existieren nur innerhalb des Anwendungsprogramms und werden nach dem Ver-
lassen des Programms wieder freigegeben. Solche Arrays werden durch normale Deklarations-Anweisungen
für Variablen definiert.
long aTest[100], bTest[10]
Solche Arrays werden wie Variablen gespeichert. Sie können auch lokal innerhalb von Funktionen definiert
werden, müssen sie sich aber dann im Stack befinden. Achten Sie daher darauf, dass der Stack nicht
überläuft. (Siehe Compiler Optionen).
__ Programmieren mit APOSS __
®
MG.33.L5.03 – VLT
ist ein eingetragenes Warenzeichen von Danfoss.
lin = 1
col = 1
wert = 1
WHILE(lin <= 10) DO
WHILE(col <= 100) DO
test[lin][col++] = wert++
ENDWHILE
lin++
ENDWHILE
DIM test[100], feld[200]
...
test[] = feld[]
171