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!
Zitat:die Initialisierung falsch ist und wie ist sie denn nun richtig?
Du darfst das SR nicht wieder löschen, sondern musst dir den letzten Wert der Tabelle merken und wieder "vorn" bereitstellen. So, wie du es bei Date/Time auch machst...
Zitat:Das Problem ist, dass es im HauptVI danach NICHT mehr zu sehen ist.
Wie sollen wir dein HauptVI anhand eines subVI beurteilen?
ich habe noch ein bisschen rumprobiert und die Initialisierung weggenommen. War das die Idee? Mit der Methode, wie ich es mit dem Datum mache, habe ich es jedenfalls nicht hinbekommen.
Nun wird die Tabelle zwar immer länger, also alle Daten werden immer schön hinten rangehängt, aber wenn man das SubVI beendet und die Tabelle wieder neu starten will (case struktur=true), sind alle Daten vom vorherigen Durchlauf noch drin. Das soll so aber auch nicht sein, sondern bei jedem Einschalten der case struktur soll die Tabelle von vorn anfangen. Da muss ich doch sicher irgendwo initialisieren, oder? Zum besseren Verständnis habe ich mein HauptVI mal stark vereinfacht und mit angehängt. Da sieht man auch, dass die Werte in der Tabelle verschwinden, sobald die case struktur auf false steht.
Bis dahin ganz allgemein: Du musst die Tabelle in einem Schieberegister speichern und dieses Schieberegister musst du ordentlich initialisieren (d.h. bei VI-Start leeren)...
hier mal eine kleine Änderung am HauptVI...
Jetzt musst du nur im subVI dafür sorgen, dass dort immer das SR gelöscht wird - aber das kannst du ja schon
P.S.: Evtl. musst du im HauptVI noch ein- oder zweimal TransposeArray einfügen, damit die Tabelle richtig zusammengesetzt wird. Einfach ausprobieren...
Danke für Deine Hilfe, ich habe jetzt auch nochmal das SubVI geändert und das funktioniert auch alles super. Es soll aber bei jedem Drücken des Schalters "Aufzeichnen Beschleunigung/ Neigung" im HauptVi (-> case=true im SubVI ) die Tabelle neu starten, tut sie aber immer noch nicht, sondern wird vom vorherigen Mal fortgeführt. Ich schnall' es einfach nicht, kannst Du mir das evtl im SubVI zeigen, wie ich das einstelle? Es muss nach meinem Verständnis doch bei jeder ÄNDERUNG der case Struktur auf "true" die Tabelle oder besser gesagt, das Schieberegister neu initialisiert oder gelöscht werden, aber wie macht man das genau?
Zitat:Es soll aber bei jedem Drücken des Schalters "Aufzeichnen Beschleunigung/ Neigung" im HauptVi (-> case=true im SubVI ) die Tabelle neu starten, tut sie aber immer noch nicht, sondern wird vom vorherigen Mal fortgeführt.
Wenn du das so haben willst, dann musst du das auch so programmieren! Bisher hast du das nirgends getan...
Also wieder etwas Pseudocode:
Code:
IF RisingEdge(Aufzeichnen-Button) THEN
Schieberegister mit Tabellendaten löschen
ENDIF
Bei den Pt-By-Pt-Funktionen findest du eine, die dir sagt, ob ein RisingEdge vorliegt...
Zitat:Wenn du das so haben willst, dann musst du das auch so programmieren! Bisher hast du das nirgends getan...
wenn ich das schon programmiert hätte, würde ich ja hier nicht danach fragen. Die Theorie verstehe ich ja, aber ich weiß nicht, wie ich es umsetzen kann, das ist ja gerade mein Problem.
Zitat:Bei den Pt-By-Pt-Funktionen findest du eine, die dir sagt, ob ein RisingEdge vorliegt...
leider finde ich bei Point By Point functions unter signal processing nichts dergleichen, habe es auch schon mit einer extra case struktur versucht und das hat auch nicht geklappt. Ich bin ratlos.