easy-forum
Deutsch - Software => Galileo => Thema gestartet von: DerE4Jan am März 14, 2025, 08:41:12 Vormittag
-
Guten Morgen,
im Prinzip geht es um eine Bedingung, wenn Wert X zwischen 20-30 liegt, kommt ein Signal, alles über 30 natürlich nicht.
Das Programm fühlt sich nun durch den Ausdruck then gestört. If ... then...else müsste doch eine gängige Bezeichnung sein, oder übersehe ich hier eine Kleinigkeit?
Habe mal ein Screenshot beigefügt.
Andere Skripte oder Ergänzungen sind natürlich gerne gesehen und man trifft sich bei der richtigen Lösung :)
Vielen Dank : )
-
Hallo!
Warum setzt du die Zuweisung nach THEN in Klammern? Lass sie weg! bringt nix.
Gruß,
ELWMS
-
Hallo ELWMS,
okay habe ich geändert, danke! Jetzt meldet er Zuweisung oder Funktionsaufruf erwartet für then. ???
-
Bitte auf die Bindungsstärken der Operatoren achten. Dann hast du hinter then den Doppelpunkt der Zuweisung vergessen. Hast do evtl zwischen der ersten Zeile und dem then kein Leerzeichen? Kann sonst nicht erkennen warum der Compiler meckert.
Es muss hier nicht unbedingt eine IF Anweisung sein. Eine normale Zuweisung tut es auch und ist kürzer.
0.M049_M064[51] := (2.Istwert_Drehzahl_Pumpe1 >= 20) and (
2.Istwert_Drehzahl_Pumpe1 =< 30);
-
Hallo,
also mit den korrigierten Zeilen meldet er trotzdem einen Fehler.
Habe jetzt die Zuweisung genommen, =< auf <= geändert und es klappt super.
Vielen Dank und einen guten Start in die Woche
-
Also der korrekte Audruck mit einer IF wäre so:
if ((Istwert_Drehzahl_Pumpe1 >= 20) and (Istwert_Drehzahl_Pumpe1 <= 30))
0.M049_M064[51] := true;
else
0.M049_M064[51] := false;
endif
Das 'THEN' braucht es in Galileo nicht. Ich muss da auch immer umdenken weil ich es von ST anders gewöhnt bin.