der_NooB
Level-2
- BeitrÀge
- 285
- Reaktionspunkte
- 8
-> Hier kostenlos registrieren
und somit sieht jzt mein Programm so aus ^_^ 

Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfĂŒgbar.
Nein, weil dann wird ja alles auch nur zurĂŒckgesetzt, wenn du in das ELSE kommt aber nicht wenn z.B. von LOW auf OK umgeschaltet wird.stimmt, kann ich dann unter
ELSE
doHigh:= FALSE;
doOk:= FALSE;
doLow:= FALSE;
doAlarm:=FALSE;
End_IF
?
Das funktioniert so nicht ( siehe Beitrag #62 )und somit sieht jzt mein Programm so aus ^_^![]()
Dein Code kommt aber nie ins ELSE, wie ich Dir bereits erklÀrt habe.stimmt, kann ich dann unter
ELSE
Danke, aber was macht dein Programm wenn den Wert auĂerhalb, nichts oder
er wird doHight TRUE setzen
oder doLow auf TRUE
gÀ ?
Bevor du immer eine Ănderung machst und diese ganz schnell postest, nimm dir Zeit, schau es dir an, simuliere alle vorhandenen FĂ€lle einmal durch... Dann kommst du auch selber drauf, dass da was nicht passt.und somit sieht jzt mein Programm so aus ^_^
Das [/CODE] ist eins von vielen Tags, die die Forumssoftware nutzt. In die Tags zwischen die Tags [CODE] und [/CODE] wird z.B. Quelltext gesetzt, dadurch wird dieser leichter lesbar. Diese Tags werden eigentlich automatisch gesetzt und Du siehst Sie beim Editieren nur, wenn ĂŒber den Button mit den zwei Eckigen Klammern die Ansicht umgeschaltet hast.was ist mit [/CODE] gemeint ?
Hier mĂŒsstest Du bitte einmal genau definieren, was Du willst. Soll das Ergebnis Nachkommastellen haben oder nicht? Falls es welche haben soll muss die Variable PercentLevel vom Typ REAL oder LREAL sein, dann musst Du aiLevel auch in ein REAL oder LREAL konvertieren und bei den Konstanten ".0" anhĂ€ngen. Bei der Rechnung mit Ganzzahlen fĂ€llt das ".0" weg.diese konvertieren funktioniert mit mir nicht.
um mit nachkommazahl zu rechnen muss mein Zielergebnis in REAL sein. bei mir PercentLevel
und falls die Variable (Sensor+Berechnung) in Ganzzahlen passieren da muss ich meine Konstante mit .0 machen, und mein aiLevel von INT_TO_REAL machen damit nachkommazahl nicht weggeht. und mir bei Percentlevel mit Komma gezeigt wird
habe ich richtig verstanden ?
Ja, denn je nachdem ob der Sensor 0-5V liefert oder 0-10V ist 100% ja etwas anderes und die Rechnung muss entsprechend angepasst werden (* 100 statt * 200).bei mir steht mein Sensor liefert mir 0-32767, heiĂt ich muss nachprĂŒfen ob er 0-5v liefert oder 0-10V
Da braucht man Jahre fĂŒr und selbst dann begegnet einem immer wieder etwas Neues.brauchen alle solang um diese Thema zu verstehen oder geht es nur bei mir so ?
BezĂŒglich der IF-Abfrage gab es ja schon Antworten.jzt spinnt bei mir total, IF_ELSE hat alle BITS TRUE gesetzt![]()
"Ich meinte, wenn der Wert auĂerhalb des zulĂ€ssigen Bereichs liegt, ist doHigh immer TRUE, aber das ist nicht so schlimm."Dein Code kommt aber nie ins ELSE, wie ich Dir bereits erklĂ€rt habe.
Gibt es das auch in Deutsch
Wie werden all die Flags denn ggf. wieder auf FALSE zurĂŒckgesetzt? Das erfolgt mit obigen Code nĂ€mlich nicht!
IMHO sauberer Code wÀre:
Code:doHigh := PercentLevel >= 90; doOk := PercentLevel < 90 AND PercentLevel > 25; doLow := PercentLevel <= 25 AND PercentLevel > 1; doAlarm := PercentLevel <= 1; doDefekt := ?; [COLOR=rgb(209, 72, 65)][B]mit der Fragezeichen hier ist BOOL variabel gemeint [/B][/COLOR] [/QUOTE] [QUOTE="hucki, post: 920106, member: 17699"] [/QUOTE] Das bedeutet auch, dass IF_ELSE in meinem Beispiel nichts zu Suchen hat. Aber das ist wirklich ein Problem. Wie setzt man bei einer echten Anlage die Bits zurĂŒck? Bestimmt gibt es eine Lösung, oder?"
Sorry Oli,Du kannst es auch mit IF/ELSIF/ELSE machen, Du musst halt nur in den verschiedenen Zweigen die Variablen nicht nur setzen, sondern auch zurĂŒcksetzen.
Das sollte auch keine Empfehlung sein es genau so zu tun, sondern nur ein Hinweis, dass es so auch geht.Sorry Oli,
aber ich halte solche Lösungen fĂŒr ziemlich unprofessionell ...
![]()
Wenn Du nachher eh Integer, also Ganzzahlen nutzt, bringt die Konvertierung in REAL nichts, Du musst halt nur darauf achten, dass im Zuge Deiner Berechnungen auf die Reihenfolge achten, da ja die Nachkommastellen wegfallen.ich habes dann wieder auf UINT gemacht, dann wollte ich aber meine Berechnung in REAL machen (.0 INT_TO_REAL)
geht auch nicht
Das ist jetzt nicht dein Ernst?
Anhang anzeigen 77393
nimm dir bitte @hucki Žs Lösung zu Herzen. Das hier ist keine saubere Lösung.
Danke fĂŒr deine ErklĂ€rungen zum Rechnen. Ich freue mich schon auf das Buch. ^_^Bitte, ehe Du postest, lies Dir die Hilfe zu den Befehlen durch.
Ich habe "DINT_TO_REAL(Variable)" geschrieben und nicht "(DINT_TO_REAL Variable)".
Und wieso DINT_TO_REAL, dein aiLevel ist doch ein INT.
CASE funktioniert nur mit Integer Variablen, sei es jetzt unsigned oder "normale".
Ăbrigens noch ein Stolperstein, eine Abfrage auf einen genauen Wert funktioniert bei einer FlieĂkommazahl nicht unbedingt, da nicht alle Zahlen sich als FlieĂkommazahl genau darstellen, oder besser ablegen lassen.
danke fĂŒr die motivierende Wörter <3Ăbrigens sei mal etwas geduldiger mit Dir. Das Thema bekommst Du nicht an einem Nachmittag verinnerlicht, das dauert, wie gesagt, Monate oder Jahre.
... als Kunde wĂŒrde ich Dich fĂŒr diesen Weg erschlagen.
PS:
Das macht ja nichts, der TE ist dazu eingeladen selber auch mitzudenken und zu testen. Das ist ja eine rein logische Angelegenheit die man sehen sollte auch wenn man kein SCL Profi ist.Da bin ich jetzt Schuld
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen