TIA S7-1500 umbeschriebne Tempvariable manchmal True manchmal False

blimaa

Level-2
Beiträge
956
Reaktionspunkte
103
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi
Bin auf IBN und es kommen komische Sachen vor :-x

In einem FC sind unbeschriebene Tempvariablen manchmal True und manchmal False.
Bei einer Siemens Vorstellung wurde ausdrücklich gesagt, dass bei den 1500er alle Tempvariablen normal false seien!

Wie habe ich das entdeckt?
U temp_varialbe
= db_Tempvariable

Auch im trace nachvollziehbar!

Es kamen immer wieder komische zustände vor, die vom Programm her überhaupt nicht auftreten können! In einem FC kann ja man nicht mit z.B. Blkmve oder so überschreiben?!

Wer hat damit schon Erfahrungen gemacht?

S7-1512 CPU Firmware V1.8
TIA V13 Sp1 upd4

Gruss blimaa
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist dein Baustein optimiert oder nicht?

Das steht im Leitfaden:

Temporäre- und Out-Variablen sind beim Aufruf in nicht optimiertenBausteinen undefiniert. Bei optimierten Bausteinen sind die Werte immer mitdem „Defaultwert“ vorbelegt (S7-1500 und S7-1200 Firmware V4). Dadurchentsteht kein zufälliges Verhalten, sondern ein reproduzierbares Verhalten.

PS: Deine Firmware ist das Problem.
 
Zuletzt bearbeitet:
Ich würde mich sowieso nicht darauf verlassen, daß die TEMP-Variablen immer irgendwie initialisiert sind. Egal welche CPU, welche Firmware, welches Marketing.

Harald
 
ah scheisse ja ist kein optimierter Baustein. Dachte das gibt es nur mit den DB's die Geschichte mit den optimierten Bausteinen.
Und wie initialisiert ihr die Fc's?
 
Na wenigstens hast du jetzt eine Erklärung. Entweder optimieren oder halt am Anfang auf false setzen... Aber wie centipede sagt, es macht keinen Sinn eine Temp Variable als erstes zu lesen... Auch wenn sie von der SPS her schon initialisiert worden ist.
 
Wie macht ihr den das am Besten?
clr
= temp1
= temp 2
??
Ganz einfach: Temp-Variablen einfach nicht in Sprüngen und ähnlichen verwenden ... dann stellt sich das Problem eigentlich nicht ...
Wenn ein falscher Wert in einer Temp-Var bei dir solche Auswirkungen hat, solltest du dir eh nochmal grundsätzlich über die Robustheit deines Programmes gedanken machen.
 
Einfach alle TEMP im ersten NW initialisieren.
Wo bitte ist das Problem?
Das ist eigentlich schade um jeden weiteren Satz dazu! ;-)
 
Zurück
Oben