INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Problem mit Funktion "Werte prüfen und erzwingen"



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

25.01.2012, 09:30 (Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2012 09:34 von M Nussbaumer.)
Beitrag #2

M Nussbaumer Offline
Zarathustra
****


Beiträge: 654
Registriert seit: Sep 2009

2009 SP1
2009
EN

6300
Schweiz
RE: Problem mit Funktion "Werte prüfen und erzwingen"
(25.01.2012 09:07 )Roter Milan schrieb:  Hallo zusammen,

ich habe ein Verständnisproblem mit der Funktion "Werte prüfen und erzwingen".

Ich berechne den Min- und Max-Wert von einem Sollwert (+0,2 und -0,2 vom Sollwert). Ich habe einschließlich Ober- und Untergrenze eingestellt.

Ich erwarte, dass wenn der Istwert + 0,2 oder - 0,2 vom Sollwert ist, dass die Funktion True ausgibt. Mit Ganzzahlen funktioniert das auch. Ich habe aber Kommazahlen und da gibt es folgendes Problem:

Test1:
Angenommen, der Sollwert ist 5,0. Wenn ich in das Istwertfeld 6 eingebe und Enter drücke und dann mit der Schaltfläche um 0,1 dekrementiere, erwarte ich das im Wertebereich 5,2 bis 4,8 die Funktion True ausgibt. Macht sie aber nicht. True wird von 5,1 bis 4,8 ausgegeben. 5,2 ist false und das verstehe ich nicht!

Test2:
Angenommen, der Sollwert ist 5,0. Wenn ich in das Istwertfeld 4 eingebe und Enter drücke und dann mit der Schaltfläche um 0,1 inkrementiere, erwarte ich das im Wertebereich 4,8 bis 5,2 die Funktion True ausgibt. Macht sie aber nicht. True wird von 4,9 bis 5,2 ausgegeben. Hier wird bei 4,8 false ausgegeben!

Wie gesagt, ich habe einschließlich Ober- und Untergrenze eingestellt.

Kann mir damit jemand helfen?

Danke vorab

Gruß

Volker

Hallo Volker

Kann deine VI's leider nicht öffnen, da ich noch LabVIEW 2009 verwende, wage aber trotzdem ein Schuss ins blaueTongue

Wenn ich mich nicht täusche verwendest du einen DBL-Wert um die Kommazahl darzustellen. Das Problem mit DBL (oder allgemein Kommazahlen) ist, dass der Computer diese Werte nicht auf Gleichheit prüfen kann.
Dies weil es sich bei deinem 5.8 in Wirklichkeit als 5.80000000000000071 oder ähnliches abgelegt ist.

Deshalb wird es auch nicht empfohlen Float-Datentypen auf Gleichheit zu prüfen. In deinem Fall kannst du das Problem lösen. Indem du deine Zahl mal 10 hoch *gewünschte Nachkommastellengenauigkeit* rechnest und in einen Integer umwandelst. Dadurch sollte die Funktion wie gewünscht funktionieren(Tongue) Natürlich musst die die Grenzwerte auch demensprechend anpassenWink

Hoffe das hilft dir weiter!

Gruss Marc


Edit: Du kannst auch den erlaubten Wertebereich auf das nächstgrössere bzw. kleinere setzten und ohne Ober und Untergrenze auswählen. Dadurch sollte es auch funktionieren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: Problem mit Funktion "Werte prüfen und erzwingen" - M Nussbaumer - 25.01.2012 09:30

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Problem mit "Find Callers" Funktion Lien_Alere 5 7.629 03.12.2019 11:20
Letzter Beitrag: Lien_Alere
  Array auf Doppelwerte prüfen und bestimmte dabei ignorieren sara2211 4 4.783 14.01.2017 13:13
Letzter Beitrag: sara2211
  Tool - LVLIB private/public automatisch prüfen achim @ FZK 1 3.476 08.07.2014 11:44
Letzter Beitrag: macmarvin
  Prüfen ob am Com-Port was eingestellt wurde arphex 20 14.272 25.01.2013 15:18
Letzter Beitrag: GerdW
  Min/Max-Werte der Joystick-Achsen der Funktion "Acquire Input Data" Lupin 1 3.228 10.01.2013 12:46
Letzter Beitrag: Kasi
  Prüfen ob Fenster/VI in Windows aktiv ist ipasuser 3 4.886 28.02.2012 09:33
Letzter Beitrag: ipasuser

Gehe zu: