Hallo,
habe heute was mekwürdiges gefunden:
Habe zwei Variablen (VAR) deklariert:
Alarm:BOOL;
XYZ:REAL;
Im Programm steht jetzt:
XYZ:=0;
Alarm:=(XYZ<(-40) OR XYZ>120)
"Egbebis ist dann TRUE ". Also Alarm hat den Wert TRUE !
Kurzrum soll geprüft werden, ob der Wert größer 120 oder kleiner -40 ist.
Geht aber nicht...
Muß ich da etwas anders deklarieren ?
MfG
CAS
So wie du es hier machst, erscheint es mir nicht ganz einleuchtend.
Du weisst "Alarm" einen Wert ODER einen anderen zu !!
Machs doch mit ner IF- Anweisung:
IF XYZ<-40 OR XYZ>120
THEN Alarm:=TRUE;
ELSE Alarm:=FALSE;
END_IF
oder so in der art !!!
viel Glück !
Mfg Marco Burggraf
grundsätzlich ist deine Lösung das "Gleiche".
Aus (XYZ<-40) wird ja ein BOOLisches Ergebmis , dass dann direkt der VAR Alarm zugewiesen wird. Man spart sich das If ELSE ind End_IF.
Das Problem ist jedoch, das für die SPS TRUE herrauskommt.
Soweit ich weiss ist 0 größer -40 und somit ist (XYZ<-40) gleich FALSE wenn XYZ=0 ist.
Danke erstmal an der Mithilfe.
ja stimmt, du hast recht...
Eigentlich sollte deine Lösung genau so funktionieren
Nö....
Wenn ich eingebe:
Alarm:=(XYZ>120);
dann funktionierts einwandfrei.
aber...
Alarm:=(XYZ<-40);
geht nicht!
also ich habs grad auch ausprobiert. da ist alles so, wie es sein soll !
versteh ich nicht...
Zitat: ersteh ich nicht...
Bei mir tut's auch.
Welche Hardware verwendest Du?
Log in to post a comment.
Hallo,
habe heute was mekwürdiges gefunden:
Habe zwei Variablen (VAR) deklariert:
Alarm:BOOL;
XYZ:REAL;
Im Programm steht jetzt:
XYZ:=0;
Alarm:=(XYZ<(-40) OR XYZ>120)
"Egbebis ist dann TRUE ". Also Alarm hat den Wert TRUE !
Kurzrum soll geprüft werden, ob der Wert größer 120 oder kleiner -40 ist.
Geht aber nicht...
Muß ich da etwas anders deklarieren ?
MfG
CAS
So wie du es hier machst, erscheint es mir nicht ganz einleuchtend.
Du weisst "Alarm" einen Wert ODER einen anderen zu !!
Machs doch mit ner IF- Anweisung:
IF XYZ<-40 OR XYZ>120
THEN Alarm:=TRUE;
ELSE Alarm:=FALSE;
END_IF
oder so in der art !!!
viel Glück !
Mfg Marco Burggraf
Hallo,
grundsätzlich ist deine Lösung das "Gleiche".
Aus (XYZ<-40) wird ja ein BOOLisches Ergebmis , dass dann direkt der VAR Alarm zugewiesen wird. Man spart sich das If ELSE ind End_IF.
Das Problem ist jedoch, das für die SPS TRUE herrauskommt.
Soweit ich weiss ist 0 größer -40 und somit ist (XYZ<-40) gleich FALSE wenn XYZ=0 ist.
Danke erstmal an der Mithilfe.
ja stimmt, du hast recht...
Eigentlich sollte deine Lösung genau so funktionieren
Nö....
Wenn ich eingebe:
Alarm:=(XYZ>120);
dann funktionierts einwandfrei.
aber...
Alarm:=(XYZ<-40);
geht nicht!
also ich habs grad auch ausprobiert. da ist alles so, wie es sein soll !
versteh ich nicht...
Bei mir tut's auch.
Welche Hardware verwendest Du?