kraftstromer
Level-2
- Beiträge
- 21
- Reaktionspunkte
- 3
-> Hier kostenlos registrieren
Da hast du natürlich recht.I'm sorry, what?
Natürlich kann das über ein Array gelöst werden. (Projektiert ist hier eine S7-314C). Das muss nicht kompliziert über Pointer auf Arrays in AWL gelöst
Solange mit direkten Indizes gearbeitet wird geht das wunderbar, bei variablem
Index muß man sich anders behelfen.
OT
Üblicherweise ziehe ich meine FIFO-Speicher so auf, daß ich ein Array mit
(meinetwegen 0..30) für 30 Elemente habe.
Das 31. Element (Index 30) bleibt immer leer.
Ich definiere mir eine Konstante
MAX_ARRAY: INT = 30
In der FIFO-Funktion
Code:
VAR_STATIC
arrayZeiger: INT; // STartwert = 0
myArray: Array [0..MAX_ARRAY] of Real;
END_VAR
VAR_TEMP
_i: Int;
END_VAR
// Hinzufügen:
IF
pushFlanke
AND (arrayZeiger < MAX_ARRAY)
THEN
myArray[ArrayZeiger] := "Messwert";
arrayZeiger := arrayZeiger + 1;
END_IF;
// Entnehmen:
IF popFlanke THEN
ersterWert := myArray[0];
FOR _i := 0 to MAX_ARRAY - 1 do
myArray[_i] := myArray[_i + 1];
END_FOR;
arrayZeiger := arrayZeiger - 1;
END_IF;
Wir sind in Gera, Thüringen ansässig, unser Azubi geht glaube ich auch dort zur Schule.Wenn ich fragen darf auf welcher Berufschule geht ihr Azubi?
LG
Chris