![]() |
Alte Messwerte - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Alte Messwerte (/Thread-Alte-Messwerte) |
Alte Messwerte - Don_Corleone - 23.09.2010 11:58 Hi, jetzt wo Du's sagst... eigentlich sollen die Werte die reinkommen neu berechnet werden und dann ausgegeben werden. , also keine Standardwerte. Da sind wohl Altlasten aus einer frühen Version drin geblieben die da nicht mehr sinnvoll sind. Gedacht war, die Eingänge und das Array nach der Berechnung wieder zurückzusetzen, damit die alten Werte bei einem erneuten Aufruf weg sind. Denkfehler? Die Outputs zu resetten war allerdings nicht geplant, das Ergebnis wenn 2 Leute an einem Programm arbeiten ;-). Ich nehm das mal raus und versuchs nochmal... Hey, das war der ganze Witz... *grmbl*... Hab die Reinitialisierung für die beiden Outputs rausgenommen. Vielen Dank für die Hilfe, das ist mir erst aufgefallen als Du es gesagt hast, obwohl ich die ganze Zeit diese VI geöffnet habe um zu kontrollieren was rausgeht. Gruß der Heiko Alte Messwerte - GerdW - 23.09.2010 12:06 Hallo Don, "Denkfehler?" - JA! "damit die alten Werte bei einem erneuten Aufruf weg sind" Hä? LabVIEW ist eine Datenflusssprache - wenn du bei einem erneuten Aufruf vorn neue Daten reinschiebst, fallen hinten auch neue Werte raus. Alte Messwerte - Don_Corleone - 23.09.2010 13:22 Hi, ok, hab's verstanden, hab die Sequenzen jetzt gelöscht und das funktioniert auch. Jetzt zeigt sich aber noch ein anderes Probelm, vielleicht kannst Du dazu noch was sagen. Mit der zuletzt geschickten VI versuche ich ja die x-Werte der Messkurve zu den jeweiligen y-Werten zu finden. Jetzt habe ich das Problem, ist vorher nicht aufgefallen, dass wenn ich über eine bestimmte Spannung komme, irgendwelche Phantasiewerte für die x-Werte angezeigt werden. In dem aktuellen Bild kannst Du erkennen dass die Werte nicht mit der Kurve übereinstimmen. Danke Heiko [attachment=29562] Alte Messwerte - SeBa - 23.09.2010 14:10 ' schrieb:Mit der zuletzt geschickten VI versuche ich ja die x-Werte der Messkurve zu den jeweiligen y-Werten zu finden.Ansich kein Problem. Theoretisch könnten einem Y-Wert ja mehrere X-Werte zugeordnet werden, in deinem Fall scheint das aber nicht so zu sein. ' schrieb:Jetzt habe ich das Problem, ... dass wenn ich über eine bestimmte Spannung komme, irgendwelche Phantasiewerte für die x-Werte angezeigt werden.Über einer bestimmten Spannung sind die Werte komisch? Wie bestimmt ist diese Spannung denn? Ich hab jetzt einfach keine Lust zu spekulieren, daher einfach ein Rat: Speicher deinen Siganlverlauf als Standard ab. Lade das (Beispiel-) VI mit dem gespeichertem Signal und die nötigen Berechnungs VI's hoch. Dann schreib noch dabei, von welchem Y-Wert du gerne den passenden X-Wert wissen willst. Gruß SeBa Alte Messwerte - Don_Corleone - 28.09.2010 07:34 Hi, hat etwas länger gedauert... Im Anhang sind jetzt die VIs die für die Aufzeichnung, Auswertung und Berechnung der Messwerte bzw. Toleranzen benötigt werden. Das Programm ist so nicht lauffähig, es fehlen noch einige Dateien die ich jetzt nicht alle hochladen möchte. Ich habe eine Kurve gespeichert, ich hoffe das passt so. Nun noch kurz zum Fehler: Wenn das Programm das erste mal geladen wird, werden alle Punkte korrekt gefunden. Mit jeder weiteren Messung stimmen die berechneten x-Werte nicht mehr mit der Anzeige überein. Sinn des Programms: Das Programm dient zur Überprüfung von Thermoelementen, speziell der Ansprechzeit. Hierfür wird das Thermoelement zuerst in einen Wasserbehälter mit 20° und danach in 80° getaucht. Aus der resultierenden Kurve werden aus der maximalen Spannung die Werte für T10 und T90 errechnet. Aus diesen Werten werden weiterhin die zugehörigen Zeiten gesucht. Die Differenz dieser beiden Zeiten ist dann die Ansprechzeit. Hoffe ich konnte mich einigermaßen gut ausdrücken :-) Werte die immer stimmen: T10 und T90 in V (y-Werte) Werte die nicht stimmen: T10 und T90 in ms (x-Werte) Zu den VIs: [attachment=29625] --> Hauptprogramm [attachment=29626] --> findet das Minimum bzw. Maximum der Kurve (MIN funktioniert noch nicht richtig, wird aber momentan nicht benötigt) [attachment=29627] --> sucht die x-Werte zu den übergebenen y-Werten und gibt diese aus [attachment=29628] --> Berechnet auf Basis vom Maximum die Punkte für T10 (10% MAX) und T90 (90% MAX) --> Ansprechzeit des Thermoelements [attachment=29629] --> Wie der Name schon sagt... der erste gemessene Wert wird von allen Folgewerten abgezogen LabVIEW 8.6 Danke für die bisherige Hilfe, Heiko Alte Messwerte - GerdW - 28.09.2010 07:51 Hallo Heiko, von den neuen Messwerte bestimmst du T10/T90 in V. Dann hängst du die neuen Messwerte an die alten hinten ran (FeedbackNode). Nach Ende der Schleife suchst du dann in den gesammelten Werten nach den Zeitwerte. Das Problem ist nur, dass die Suchfunktion steigende Werte erwartet... Einfach mal die ausführliche Hilfe dazu durchlesen! Warum benutzt du in Min-Max eine pt-by-pt-Funktion und nicht die "normale" ArrayMinMax-Funktion? Warum auch dort dieses unnötige "ResetToDefault"? Warum benutzt du immer noch soviele lokale Variablen, wenn direkt daneben unbenutzte Terminals im Blockdiagrammm rumliegen (z.B. in der Init-Sequenz)? Warum brichst du das Programm mit "STOP" ab, anstatt das Ergebnis der Benutzerabfrage an das Stop-Terminal der äußeren While-Schleife anzuschließen (Ende-Frame)? P.S.: Noch ein Tipp: Benutz doch nächstes Mal ein ZIP-Programm. Dann brauchen wir nur eine Datei downloaden und die VI-Namen bleiben korrekt erhalten... Alte Messwerte - Don_Corleone - 28.09.2010 09:19 Hi Gerd, danke für die Hinweise, vor allem die mit dem Zip-Programm... gelobe Besserung ;-). So als allgemeine Erklärung für die vielen Fragen, ich habe mein bisheriges LabVIEW-Wissen von einem Praktikanten der bei uns war, er war auch maßgeblich an dem Programm beteiligt. Ich bin also noch sehr unbeholfen in Sachen LabVIEW, bitte da um Verständnis. Steigende Werte sagst Du... das könnte des Rätsels Lösung sein. Werd mich mal dranmachen ne Alternative zu finden! Zitat:Warum benutzt du in Min-Max eine pt-by-pt-Funktion und nicht die "normale" ArrayMinMax-Funktion? Warum auch dort dieses unnötige "ResetToDefault"?MIN/MAX werde ich wie gesagt noch komplett überarbeiten, da es aber momentan für meine Anforderungen genügt steht das auf meiner Bug-Liste. Die normale ArrayMinMax hat wenn ich mich recht erinnere nicht richtig funktioniert. Zitat:Warum benutzt du immer noch soviele lokale Variablen, wenn direkt daneben unbenutzte Terminals im Blockdiagrammm rumliegen (z.B. in der Init-Sequenz)?Die Variablen werden in der Init-Sequenz alle wieder auf 0 gesetzt damit alle Anzeigen bei einer neuen Messung keine alten Werte anzeigen. Nicht richtig? Zitat:Warum brichst du das Programm mit "STOP" ab, anstatt das Ergebnis der Benutzerabfrage an das Stop-Terminal der äußeren While-Schleife anzuschließen (Ende-Frame)?Das Stop dient zum beenden der laufenden Messung und soll nicht das Programm beenden. Anders gesagt wird nach dem Umsetzen von 20° --> 80° die Messsung gestoppt, ausgewertet und die 2. Vergleichsmessung gestartet. Ich muss die Messung ja unterbrechen, sonst weiß das Prog ja nicht wann die Messung beendet ist... Danke + Gruß Heiko Alte Messwerte - Martin Heller - 28.09.2010 09:25 ' schrieb:Anders gesagt wird nach dem Umsetzen von 20° --> 80° die Messsung gestoppt, ausgewertet und die 2. Vergleichsmessung gestartet. Ich muss die Messung ja unterbrechen, sonst weiß das Prog ja nicht wann die Messung beendet ist... Du kanns doch über einen Event abfragen, wann der obere Wert (80%?) erreicht ist und kannst dann die Messung beenden lassen.... Vermutlich ist der Button-Name nicht optimal gewählt. lg Martin Alte Messwerte - GerdW - 28.09.2010 09:26 Hallo Heiko, "damit alle Anzeigen bei einer neuen Messung keine alten Werte anzeigen. Nicht richtig?" Das du die Anzeigen löscht, ist schön. Aber warum dann eine lokale Variable , wenn direkt daneben ein Terminal unbenutzt rumliegt? Lokale Variablen haben ihre Berechtigung, aber die liegt nicht darin, Terminals unbenutzt rumliegen zu lassen... "Stop dient zum beenden der laufenden Messung" Das geht aber auch ohne ein VI per Keule zum Beenden zu überreden... Ich redete auch von der STOP-Funktion, nicht irgendein Button auf der Oberfläche! Alte Messwerte - Don_Corleone - 28.09.2010 09:32 Hi nochmal, das mit der MinMAx-Funktion ist soweit korrekt. Es soll ja der höchste bzw. niedrigste Wert für die Kurve gefunden werden und das für jede Aufzeichnung. Nach meinem Verständnis schiebe ich während der laufenden Messung immer wieder die aktuellen Werte in die MinMax VI. Das heißt, die Vi darf nur die Werte ausspucken die größer als der letzte Größte bzw. kleiner als der letzte kleinste Wert waren. Im Prinzip ja nichts Anderes als ein Array nach dem größten bzw. kleinsten Wert durchsuchen?!? Gruß Heiko |