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:07
Beitrag #1

Roter Milan Offline
LV-Anwender
*


Beiträge: 26
Registriert seit: Jan 2011

2014
2010
DE

753xx
Deutschland
Problem mit Funktion "Werte prüfen und erzwingen"
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


Angehängte Datei(en)
11.0 .vi  Vergleich2.vi (Größe: 10,77 KB / Downloads: 208)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
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
25.01.2012, 09:38 (Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2012 10:58 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Problem mit Funktion "Werte prüfen und erzwingen"
(25.01.2012 09:07 )Roter Milan schrieb:  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!
Bekanntes Problem, aber hier in der Praxis ohne Bedeutung. Die Gleitzahlen haben nur eine endliche Auflösung, und die Darstellung der Anzeige ist entsprechend dem gewählten Anzeigeformat gerundet.
Wenn ich bei dir 15 Kommastellen einstelle, dann sieht man es:

   

Edit: Marc hat die Frage eher richtig beantwortet. Ich würde nur darin widersprechen, dass da irgendein Handlungbedarf besteht. Gut, die wirklichen Toleranzgrenzen liegen also nicht bei +- 0.2, sondern sind, sagen wir mal, um ein hundert Millionstel fehlerhaft. Sollte man wirklich dagegen etwas unternehmen, nur um der Anzeigenoptik Genüge zu tun?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2012, 10:19
Beitrag #4

Roter Milan Offline
LV-Anwender
*


Beiträge: 26
Registriert seit: Jan 2011

2014
2010
DE

753xx
Deutschland
RE: Problem mit Funktion "Werte prüfen und erzwingen"
Hallo zusammen,

das Problem ist, dass sich mein Istwert in Schritten von 0,1 ändert. Dann hat die ganze Sache schon eine Auswirkung, wie beschrieben. Ich werde die Lösungsvorschläge von Marc prüfen. Danke.

Gruß Volker
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2012, 10:35
Beitrag #5

Roter Milan Offline
LV-Anwender
*


Beiträge: 26
Registriert seit: Jan 2011

2014
2010
DE

753xx
Deutschland
RE: Problem mit Funktion "Werte prüfen und erzwingen"
(25.01.2012 10:19 )Roter Milan schrieb:  Hallo zusammen,

das Problem ist, dass sich mein Istwert in Schritten von 0,1 ändert. Dann hat die ganze Sache schon eine Auswirkung, wie beschrieben. Ich werde die Lösungsvorschläge von Marc prüfen. Danke.

Gruß Volker

Hier noch der Ausschnitt meines VIs...


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2012, 10:42
Beitrag #6

Hook1986 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jan 2012

2010
2011
DE_EN


Deutschland
RE: Problem mit Funktion "Werte prüfen und erzwingen"
Hallo Milan,

Dann stell bei den Vergleichswerten halt +/-0,25 statt +/-0,2 ein. Damit sollte es klappen.

MfG Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


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

Gehe zu: