TIA Meldung 619:205 beim übersetzen SCL-FB

Berger

Level-2
Beiträge
95
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
neuer Tag, neues Problem ... :?

Beim übersetzen eines SCL-FB's bringt TIA die Meldung:

131,Der Parameter '#"xyz"' wird möglicherweise nicht initialisiert.,0,1,08:18:31

In der Hilfe zur Meldung 619:205 steht unter anderem:
"Behebung
Ändern Sie die Programmstruktur oder belegen Sie die Variable in der
Schnittstelle mit einem Defaultwert."


Ich verstehe zwar was gemeint ist, finde aber die Meldung ziehmlich überflüssig. Zudem wird die Meldung auch ausgegeben wenn ich den Defaultwert belegt habe.

Kurios zudem:
Wenn ich das Beispiel aus der Hilfe mal übernehme, dann wird die Warnung sowohl im Beispiel 1 als aich im Beispiel 2 ausgegeben:

Beispiel 1.jpg

Beispiel 2.jpg

Mit Defaultwerten das gleiche:

Beispiel 3.jpg

:confused::confused::confused:

Kann man das irgendwie abstellen ohne das ich das Programm umstellen muss? Wie geht Ihr damit um?

Beste Grüsse!
 
Naja wenn du Myout abfragst bevor du irgendwas da draufschreibst, ist das halt nicht sooo schön.
Und die Warnung absolut berechtigt.

Da wäre IMHO IN/OUT angesagt.

mfG René
 
Weil du den OUT Variabel mit ein IF abfragst bevor du es mit ein Zuwesung definiert.
Ich denke es ist ein generellen Warnung weil es ist "schlechten code" egal ob es ein Defaultwert gibt oder nicht.
Ich wurde nie ein OUT Variabel abfragen bevor Initialisierung, egal ob FC oder FB.
Da steht ja auch "möglicherweise", da der Compiler nicht so intelligent dein Code analysieren kann wie du selber.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich stocher ein wenig in SCL unter TIA rum und hab ein ähnliches Problem mit einem Codebeispiel aus einem TIA 1200-Buch.
Am Beispiel "PT1-Glied" ist es ähnlich:

#OUT : "...Variable wird möglicherweise nicht initialisiert..."

Wie müßte das richtig gemacht werden? (Die Rechnung funktioniert aber ...)
Wenn ich dem #Out vor der Rechnung einen festen Wert zuweise läuft er nicht mehr hoch, wenn ich VAR_IN_OUT verwende auch nicht...

Jörg


Hier der Quell-Code dazu:

FUNCTION_BLOCK "PT1"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
//einfacher Tiefpass, Ausgangsverlauf nahe e-Fkt.
VAR_INPUT
IN : Real;
KP : Real := 1.0;
T : Time := T#10s; // Zeitkonstante
Cycle : Time := T#100ms; // Abtastzeit in OB35
END_VAR

VAR_OUTPUT
OUT : Real := 0.0;
END_VAR

VAR
n : Real; // nach n-Zyklen wird der Eingangswert erreicht
END_VAR


BEGIN

// PT1-Glied, einfacher Tiefpass, Ausgangsverlauf nahe e-Funktion
#n := DINT_TO_REAL(TIME_TO_DINT(#T)) / DINT_TO_REAL(TIME_TO_DINT(#Cycle));
#OUT := ((#IN * #KP - #OUT) / #n) + #OUT;

END_FUNCTION_BLOCK
 
Warnt das TIA auch, wenn man eine Stat-Variable zum merken benutzt?
Code:
   VAR 
      n : Real;   // nach n-Zyklen wird der Eingangswert erreicht
[B]      stat_var1 : Real;[/B]
   END_VAR

BEGIN
    
    // PT1-Glied, einfacher Tiefpass, Ausgangsverlauf nahe e-Funktion
    #n := DINT_TO_REAL(TIME_TO_DINT(#T)) / DINT_TO_REAL(TIME_TO_DINT(#Cycle));
[B]    #stat_var1 := ((#IN * #KP - #stat_var1) / #n) + #stat_var1;
    #OUT := stat_var1;[/B]

Harald
 
Hallo Harald,
danke, das war der entscheidende Tipp.
Mit dem kleinen "Umweg" über #Stat_Var meckert TIA V13SP1 nicht mehr.
(In TIA V12 als Basis des Buches muß es wohl direkt gegangen sein...)
Ich übe noch ein wenig ;)

Gruß, Jörg
 
Zurück
Oben