Auswertung Boolescher Ausdrücke

Rumble2006

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle Forenmitglieder und an alle die mir helfen wollen.

Bin SPS-Einsteiger und habe folgendes Problem, welches ich gerne verstehen würde:

Code:
a := 1;
b := 2;
L := 0;
 
FOR i:=1 TO 100 DO
 
IF L<(a+b) THEN
 
L := L + a;
 
ELSE
 
Irgendewas anderes
 
END_IF
 
END_FOR

Wenn L den Wert 3 erreicht hat, wird nochmal L:=L+a gerechnet, obwohl ich programmiert habe L "echt kleiner a+b". Programmiere ich das so:

Code:
a := 1;
b := 2;
L := 0;
test := 0;
 
FOR i:=1 TO 100 DO
 
test := a+b; 
 
IF L<test THEN
 
L := L + a;
 
ELSE
 
Irgendewas anderes
 
END_IF
 
END_FOR

dann gehts. Aber warum?


Danke schonmal an alle, die sich Zeit für mich nehmen.

Viele Grüße

Rumble
 
Mit was programmierst du? Codesys, TwinCAT, etc.??

Ich hab bei mir TwinCAT 2.11 Build 1545 drauf und da funzt es wie es soll. Mit beiden Varianten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich programmier mit TwinCat 2.11.

Keine Ahnung warum das nicht geht. Werd noch wahnsinnig. Kann doch nicht bei jeder if-Anweisung meine zu überprüfenden Ausdrücke erst vorher berechnen. Da brauch ich ja zich Variablen mehr. Da blickt dann ja keiner mehr durch.
 
Ich hab auch keine Ahnung warum's bei mir geht und bei dir nicht.

Du bist dir absolut sicher, dass das bei dir so ist wie du beschrieben hast?
 
Zurück
Oben