TIA Schulaufgabe Tankanlage

Zuviel Werbung?
-> Hier kostenlos registrieren
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
Da hast du natürlich recht.
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;

Wenn ich fragen darf auf welcher Berufschule geht ihr Azubi?
Wir sind in Gera, Thüringen ansässig, unser Azubi geht glaube ich auch dort zur Schule.

LG
Chris
 
Ob ich jetzt drei Variablen habe NummerTankZuerstBefuellen, NummerTankAlsZweitesBefuellen, NummerTankAlsDrittesBefuellen. oder ob in ein Array ReihenfolgeBefuellung habe, verkompliziert die Sache aus meiner Sicht nicht sonderlich.

Aber so lernt Tim vielleicht etwas Neues, das später nochmal nützlich werden kann.
Ich werde mich mit dem ARRAY definitiv noch mehr beschäftigen und das ganze probieren zu simulieren in FaktoryIO.
Die Lehre is ja schließlich noch nicht vorbei 🫣
LG Tim
 
Zurück
Oben