Eingelesene Werte über vorgegbene Zeitachse anzeigen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Grafik & Sound (/Forum-Grafik-Sound) +---- Thema: Eingelesene Werte über vorgegbene Zeitachse anzeigen (/Thread-Eingelesene-Werte-ueber-vorgegbene-Zeitachse-anzeigen) |
Eingelesene Werte über vorgegbene Zeitachse anzeigen - GerdW - 22.07.2010 16:14 Hallo labuser, das erste, was mir nach Öffnen deines VIs auffiel, war die lokale Variable "blar". Was soll diese Variable bitte sehr? Mehrere Race-Conditions, ungenutztes Terminal. Bitte alle diese locals durch Drähte ersetzen - dann verschwinden auch gleich die Race-Conditions! (Siehe auch Bild, viermal"blar" wo ein einziger Draht ausreichend wäre...) Deinen XY-Graph erzeugst du, indem du skalare (Einzel-)Werte in ein Array packst, diese Werte dann teilweise wieder raus löscht, nochmal ins Array einfügst... Was willst du denn da erreichen? [attachment=28117] Um einen Plot aus mehreren Werten zu erhalten, musst du die Werte in einem Shiftregister sammeln! Eingelesene Werte über vorgegbene Zeitachse anzeigen - labuser2010 - 22.07.2010 16:50 Ja das mit den Lokalen Variablen ist in meiner Testphase passiert. Die kommen natürlich noch weg. :DAber wie geht denn das mit dem Schieberegister. Ich meine es so ziemlich wie in dem Beispiel zuvor zu haben, nur dass ich das x^y rausgenommen hab. Weiß momentan nicht weiter. Eingelesene Werte über vorgegbene Zeitachse anzeigen - GerdW - 22.07.2010 17:03 Hallo labuser, "Die kommen natürlich noch weg." Fang doch gar nicht erst damit an! Hier mal der Einsatz von Feedback-Nodes, die sind im Grunde das Gleiche wie SR: [attachment=28120] Nur um die Initialisierung musst du dich noch kümmern... Eingelesene Werte über vorgegbene Zeitachse anzeigen - labuser2010 - 23.07.2010 09:55 Ich habe es jetzt wie in dem Beispiel gemacht. Nur leider scheinen jetzt die Werte der Y-Achse miteinander zu verbunden werden. Diese werden dann über die X-Achse verteilt. Wüsste jetzt nicht wie ich es anders initialisieren soll. Nach 2500 Werten soll das Feld ja wieder leer sein. Hmm weiß nicht weiter. Im Anhang nochmal die aktuelle Version ind LabVIEW 2009 Eingelesene Werte über vorgegbene Zeitachse anzeigen - GerdW - 26.07.2010 09:26 Hallo Labuser, "Nach 2500 Werten soll das Feld ja wieder leer sein." Dann musst du es halt wieder löschen, sobald 2500 Werte erreicht sind... "Nur leider scheinen jetzt die Werte der Y-Achse miteinander zu verbunden werden." Werte auf der Y-Achse??? Du plottest einen XY-Graph und hast in den Plot-Settings eingestellt, dass die Werte durch eine Linie verbunden werden. Wenn du das nicht willst, musst du die Ploteinstellung ändern... Außerdem ist es reichlich sinnlos, 2500 Punktepaare auf einem nur 800 Pixel breiten Graph darstellen zu wollen, noch dazu mit so riesigen "Point"-Settings. Eingelesene Werte über vorgegbene Zeitachse anzeigen - labuser2010 - 27.07.2010 09:59 Für einen Kanal funktioniert es jetzt wunderbar. Ich habe noch einen Trigger eingebaut. Das geht auch. Problem ist jetzt, wenn ich einen zweiten Kanal anzeigen möchte, dann stören die sich gegenseitig. Kann das mit den Schieberigistern zu tun haben. Ich habe dafür das SubVI Ozzi gebaut, welches die VIs Skalierung und Trigger enthält. Kann das vielleicht mit dem Schieberigister zu tun haben? Im Anhang die VIs als LABVIEW 2009 Dateien Eingelesene Werte über vorgegbene Zeitachse anzeigen - GerdW - 27.07.2010 10:57 Hallo Labuser, erstmal: Packe deine ganze Liste von VIs bitte in eine LLB oder ein ZIP-File vor dem Upload. So müssen wir nicht neun einzelne Dateien runterladen, deren Namen sich auch noch (dank der Forumsoftware) geändert haben und die man im HauptVI erstmal wieder verlinken muss... "Kann das mit den Schieberigistern zu tun haben." Ja. In deinen FeedbackNodes werden die Werte der einzelnen Kanäle gemixt, da die subVIs ja immer schon nacheinander abgearbeitet werden. Probiers doch mal mit "reentrant" (ablaufinvarianten) subVIs. Oder verwalte deine Einzelwerte in einem Array (es geht doch nichts über eine vernünftige Planung, bevor man mit dem Programmieren anfängt). Außerdem: Du scheinst kein Freund von geraden Drähten und einfachsten LabVIEW-Funktionen zu sein. Beides macht aber (bei korrektem Einsatz) VIs wesentlich leichter zu lesen! (Siehe subVIs...) Eingelesene Werte über vorgegbene Zeitachse anzeigen - labuser2010 - 27.07.2010 14:41 Habe es mit den "reentrant" (ablaufinvarianten) subVIs probiert. Das klappt. Nur in dem subVI für die Triggerung scheint noch ein Fehler zu sein. Habe es durch meine Version mit dem Formelknoten ersetzt. Dann geht die Triggerung, jedoch treten dann wieder die Vermischungsprobleme auf. Ich denke bei dem z^-1 gibt es ein Problem. Eingelesene Werte über vorgegbene Zeitachse anzeigen - GerdW - 27.07.2010 15:06 Hallo labuser, "Habe es durch meine Version mit dem Formelknoten ersetzt. ... Vermischungsprobleme" Du kannst auch deine Version mit Formelknoten nehmen, musst das VI aber auch reentrant setzen. Und dann ersetze bitte diese Case-Struktur rechts unten durch einen einfachen "<>0"-Vergleich... Wo immer ein VI einen Datenbuffer enthält (SR, Feedback, etc.), musst du dafür sorgen, dass jede Instanz seinen eigenen Buffer verwendet. Die "reentrant"-Methode ist dabei vielleicht die einfachste Möglichkeit - aber aufpassen muss man trotzdem noch! Eingelesene Werte über vorgegbene Zeitachse anzeigen - labuser2010 - 27.07.2010 15:12 Es lag an der Negation in dem subVI für die Triggerung. Das muss weg. |