Temp Vriable verändert speicherbereich

Bensen83

Level-1
Beiträge
777
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich hatte heute folgendes Problem.
Ich habe in einer S7-300 in einem FC eine Temporäre DInt Variable zusätzlich den schon vorhandenen Variablen deklariert.

--> Anschließend funktionierte ein anderer FC nicht mehr. irgendwi kam es zu einer Speicherbereichsüberschneidung oe rso, denn wenn ich aus dem DInt ein Int gemacht habe, hat alles funktioniert.

Wie kann das denn sein? Denke die Temp Variaben verändern nur den Speicherbereich des FC´s in dem Sie deklariert sind. Oder?


Kann mir jemand helfen? Danke schon mal.
 
Hast du noch das fehlerhafte Projekt, oder kannst du den Fehler rekonstruieren? Wie es dazu kommen kann weiß ich auch nicht. Es wäre aber mal interessant zu wissen, ob man es mit "alles übersetzen" weg bekommt. Ich glaube mal gelesen zu haben, dass dabei auch der temporäre Speicherbereich reorganisiert wird.

Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Benson,
wo hast du die Variable denn eingefügt / verändert ? Steht die in der Mitte (oder am Anfang) des Temp-Bereichs oder am Ende ?
Wenn sie nicht am Ende steht dann würde ich sagen, das da irgendetwas mit absoluten L-Zugriffen oder aber mit Pointern auf den L-Bereich verwurschtelt worden ist. Ich vermute, dass der nicht mehr funktionierende FC von den veränderten Baustein mit Daten versorgt wird ... kann das sein ?

Gruß
Larry
 
Ok

Also ich habe die Variable am Ende des einen Bausteins eingefügt.
ich kann den Fehler noch rekonstruieren, indem ich die Variable einfach wieder deklariere. ich werdes vielleicht morgen noch einmal versuchen und dann mit alles übersetzen versuchen.
 
Hallo

Der Temporäre Variablenbereich ist der Zwischenspeicher vom Prozessor.
Dieser Speicher wird nicht gelöscht sondern nur beschrieben und gelesen.
Bei jeden Bausteinaufruf immer wieder von vorne.

Der Aufruf von Lokale Variablen darf nur nach vorheriger Zuweisung erfolgen.
Sie sind nicht Bausteinübergreifend.
Wird eine Temporäre Variable aufgerufen ohne vorherige Zuweisung, ist in ihr Datenmühl von irgendeinen anderen Baustein.
 
Zurück
Oben