FUNCTION FC51 : INT
VAR_TEMP
MyArray : ARRAY[1..17] OF WORD; //Dein Arr eines beliebigen Typs
PAny : ANY;
ATVar AT PAny : ARRAY[1..5] OF WORD;
END_VAR
PAny := Myarray;
// Zuweisungen zum Beobachten
ATVar[1] := ATVar[1];
ATVar[2] := ATVar[2]; // Hier steht die Länge Deines Arrays
ATVar[3] := ATVar[3];
ATVar[4] := ATVar[4];
ATVar[5] := ATVar[5];
FC51 := 51;
END_FUNCTION
Du noch Ideen, wie mans auch symbolisch hinkriegt ?
...Aus irgendeinem Grund geht Step7 wohl hin und formatiert bei symbolischer Adressierung intern auf Byte um.
Mein Interesse ist hier nur theoretischer Natur, würde mich halt mal interessieren warum das so ist.
CONST
BufStart := 1; // Start-Index
BufEnd := 100; // End-Index
END_CONST
VAR
N : INT; // Loop-Variable (FOR - NEXT)
END_VAR
VAR
// static Variables
// replace for: Buffer : ARRAY[1..100] OF WORD;
Buffer : ARRAY[BufStart..BufEnd] OF WORD;
END_VAR
BEGIN
// Commands
.
.
// erase buffer
FOR N := BufStart TO BufEnd DO
Buffer[N] := 0;
END_FOR;
.
.
FOR i := 0 TO maxIndex DO
<something>;
END_FOR;
Das bedeutet also, dass es keine Funktion gibt mit array.length die Länge abzufragen?!
Ja doch?wenn das Array als Variant vorliegt:
CountOfElement();
==> hier vielleicht vorher noch prüfen, ob ein Array vorliegt: IS_ARRAY();
wenn das Array als Array vorliegt:
UPPER_BOUND() - LOWER_BOUND();
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?