-> Hier kostenlos registrieren
Guten Abend,
ich programmiere in SCL und ich möchte kontinuierlich Daten in einem Array schreiben, löschen und hoch kopieren, damit der Array immer ein freier Platz hat.
Problemstellung:
ich arbeite mit zwei sensoren S1 und S2, die in zwei unterschiedlichen Stellen auf einem Band eingebaut sind. Außerdem sollen S1 und S2 kontinuierlich Teile erkennen. S1 und S2 sind high, wenn Sie ein Teil erkennen. Jedesmal, dass S1 ein Teil erkennt, dann schreibe ich ein boolischer Wert in den Array. Wenn ein Teil S2 erreicht hat, dann lösche ich der entsprechende boolische Wert dieses Teils aus dem Array und die Speicherinhalte des Arrays wird um 1 hoch kopiert. Zwischen S1 und S2 konnten 4 Teilen liegen.
Ich habe getestet, aber es läuft nicht. Machmal wird ein oder zwei Speicherinhalte beim Kopieren überspringen.
Wie kann ich das Problem lösen?
Danke im Voraus!!
ich programmiere in SCL und ich möchte kontinuierlich Daten in einem Array schreiben, löschen und hoch kopieren, damit der Array immer ein freier Platz hat.
Problemstellung:
ich arbeite mit zwei sensoren S1 und S2, die in zwei unterschiedlichen Stellen auf einem Band eingebaut sind. Außerdem sollen S1 und S2 kontinuierlich Teile erkennen. S1 und S2 sind high, wenn Sie ein Teil erkennen. Jedesmal, dass S1 ein Teil erkennt, dann schreibe ich ein boolischer Wert in den Array. Wenn ein Teil S2 erreicht hat, dann lösche ich der entsprechende boolische Wert dieses Teils aus dem Array und die Speicherinhalte des Arrays wird um 1 hoch kopiert. Zwischen S1 und S2 konnten 4 Teilen liegen.
Code:
IF s1 = 1 THEN
array[i] := result; // Result ist 0 oder 1
i := i + 1;
END_IF;
IF s2 = 1 THEN
array[i] := 0;
FOR j := 0 TO 9
array[j] := array[j+1];
END_FOR;
END_IF;
Ich habe getestet, aber es läuft nicht. Machmal wird ein oder zwei Speicherinhalte beim Kopieren überspringen.
Wie kann ich das Problem lösen?
Danke im Voraus!!