TIA Schieberegister - fehlerhafte Funktion

markd77

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe ein kleines Problem mit meinem Code und ich komme einfach nicht drauf, warum es nicht funktioniert.

Ich habe ein einfaches Schieberegister, und das Program stürzt sich bei jeder Schiebung ab. Die folgende Fehlermeldung kommt:

"Fault LED SF"

"Temporary CPU error: Area length error in FC 1
affecting OB 1 execution
read access Volatile DB area
Incorrect address, operand replaced
Processing will continue (no OB processing)


The value addressed by the access address is outside or not completely within the permitted operand range (CPU-specific variable or size of the data block).
Resolution:
Select the access address so as to ensure the addressed value lies completely within the permitted operand range. Check the type of addressing and the addressed operand type.
Open the block to display the error in the context of the block program code."

Fotos sind unter dem Link vom Program:

 
Die Fehlerbeschreibung sagt doch schon einiges aus. Ich tippe mal darauf, dass du in der For-Schleife versuchst, auf ein Feld ausserhalb der Arraygrenzen zu zugreifen. Mit was ist den ix_lenght definiert?
 
Ix_lenght ist die Länge von array, wenn das Array 10 lang ist und ix_lenght nur 5, dann verwende ich die Hälfte nur.

Ich habe jede Möglichkeit mit ix_lenght ausprobiert, aber der gleiche Fehler kommt.

Ich sehe wirklich nicht, was falsch ist.
 
Der Fehler ist ziemlich einfach ...
In deiner Schleife gehst du von 0 bis length. Dabei kopierst du die Elemente index auf index-1 um. Das heißt beim ersten Durchlauf versuchst du das Element -1 deines Arrays zu beschreiben (welches es ja gar n icht gibt) ...

Für die Zukunft fände ich es besser wenn du deinen Code direkt hier einstellen würdest - man könnte sich dann leichter darauf beziehen ...
 
Der Fehler ist ziemlich einfach ...
In deiner Schleife gehst du von 0 bis length. Dabei kopierst du die Elemente index auf index-1 um. Das heißt beim ersten Durchlauf versuchst du das Element -1 deines Arrays zu beschreiben (welches es ja gar n icht gibt) ...

Für die Zukunft fände ich es besser wenn du deinen Code direkt hier einstellen würdest - man könnte sich dann leichter darauf beziehen ...
Danke an euch alle!
Ja das klingt aber sehr logisch!
Ich probieres aus.
 
Zurück
Oben