Ich programmiere normalerweise im CFC, aber nun wollte ich auf die schnelle eine Überprüfung im Strukturierten Text schreiben.
Dabei soll folgendes überprüft werden:
Wenn temp < 180 und sig1 <> 0 und sig2 <> 100 dann var1 = 'A'
Allerdings habe ich jetzt das Problem, dass wenn temp unter 180 ist, das 'A' bereits in die Variable var1 geschrieben wird. Die Schleife prüft also nicht, ob sig1 und sig2 ebenfalls gültig sind!
Ich hoffe, ihr versteht was ich meine. Es sollen alle Bedingungen geprüft werden, bevor die THEN-Anweisung ausgeführt wird!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2006-02-20
Originally created by: Gast
moin moin e-pappy,
wenn ich dich richtig verstanden habe müsste dein programm wie folgt aussehen:
IF temp < 180 AND sig1 <> 0 AND sig2 <> 100 THEN
var1 := 'A';
else
var1 := 'B';
END_IF
viel glück
franklin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Die Bedingungen werden der Reihe nach überprüft! Wenn demnach also temp < 180 ist, wird der Rest gar nicht mehr erst überprüft, sondern var1 wird 'A'
Die Anweisung überprüft also nicht die kompletten Bedingungen. var1 darf aber nur 'A' werden, wenn alle Bedingungen zutreffen. Und genau das funktioniert nicht!
Sobald eine der Bedingungen zutrifft wird die THEN-Anweisung durchgeführt und das soll eben nicht sein!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
ich habe mir den Thread mehrmals durchgelesen, weil ich nicht verstehe wo Dein Problem ist. !?
Die Lösung von Franklin funzt doch einwandfrei !!
Wie kommst du darauf, das var1 "A" zugewiesen wird, wenn die temp < 180 ist ? Die THEN anweisung wird nur ausgeführt wenn alle Bedingungen TRUE ergeben da sie ja mit AND verknüft sind. Wenn nur eine Bedingung FALSE ist, wird die ELSE Anweisung ausgeführt.
Gruß Codewarrior
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2006-02-28
Originally created by: -AB-
Die Lösung von Franklin funktioniert.
Sollte sie es bei widererwachten nicht funktionieren, dann setz einfach mal eine Klammer um die ganze Bedingung.
IF (temp < 180 AND sig1 <> 0 AND sig2 <> 100) THEN
var1:='A';
ELSE
var1:='B';
END_IF
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo!
Ich programmiere normalerweise im CFC, aber nun wollte ich auf die schnelle eine Überprüfung im Strukturierten Text schreiben.
Dabei soll folgendes überprüft werden:
Wenn temp < 180 und sig1 <> 0 und sig2 <> 100 dann var1 = 'A'
Allerdings habe ich jetzt das Problem, dass wenn temp unter 180 ist, das 'A' bereits in die Variable var1 geschrieben wird. Die Schleife prüft also nicht, ob sig1 und sig2 ebenfalls gültig sind!
Ich hoffe, ihr versteht was ich meine. Es sollen alle Bedingungen geprüft werden, bevor die THEN-Anweisung ausgeführt wird!
Originally created by: Gast
moin moin e-pappy,
wenn ich dich richtig verstanden habe müsste dein programm wie folgt aussehen:
IF temp < 180 AND sig1 <> 0 AND sig2 <> 100 THEN
var1 := 'A';
else
var1 := 'B';
END_IF
viel glück
franklin
Aber passiert folgendes:
Die Bedingungen werden der Reihe nach überprüft! Wenn demnach also temp < 180 ist, wird der Rest gar nicht mehr erst überprüft, sondern var1 wird 'A'
Die Anweisung überprüft also nicht die kompletten Bedingungen. var1 darf aber nur 'A' werden, wenn alle Bedingungen zutreffen. Und genau das funktioniert nicht!
Sobald eine der Bedingungen zutrifft wird die THEN-Anweisung durchgeführt und das soll eben nicht sein!
Hallo e-pappy,
ich habe mir den Thread mehrmals durchgelesen, weil ich nicht verstehe wo Dein Problem ist. !?
Die Lösung von Franklin funzt doch einwandfrei !!
Wie kommst du darauf, das var1 "A" zugewiesen wird, wenn die temp < 180 ist ? Die THEN anweisung wird nur ausgeführt wenn alle Bedingungen TRUE ergeben da sie ja mit AND verknüft sind. Wenn nur eine Bedingung FALSE ist, wird die ELSE Anweisung ausgeführt.
Gruß Codewarrior
Originally created by: -AB-
Die Lösung von Franklin funktioniert.
Sollte sie es bei widererwachten nicht funktionieren, dann setz einfach mal eine Klammer um die ganze Bedingung.
IF (temp < 180 AND sig1 <> 0 AND sig2 <> 100) THEN
ELSE
END_IF