Hallo,
ich benutze das Gaussian Peak Fit VI um aus einem Signal das Maximum zu finden.
Mein Problem ist, dass das VI nur einmal ausgeführt werden kann.
Bei einem zweiten Durchlauf (selbes oder anderes Signal) liefert das Vi den Fehler −20002. (Die Folgen müssen die gleiche Größe haben.)
Selbst ein Stopp des Programmes und Neustart ändert daran nichts.
Wenn ich aber irgendwo im Programm eine Änderung vornehme und dann neu starte läuft es wieder 1x...
Hat jemand eine Idee, in welche Richtung das Problem gehen könnte?
Ich habe nur einen Screenshot angehängt, da das Programm sehr umfangreich ist.
Danke!
Ich sehe ein nicht-initialisiertes Shift-Register. Hierdurch wird dein Array immer länger und länger.
Wobei, das was du willst, geht doch viel einfacher durch Autoindexing:
[
attachment=39005]
Gruß, Jens
Hallo Du bists nur,
im Bild ist klar ein nicht-initialisiertes Schieberegister zu sehen!
Außerdem könnte man die IndexArray-Funktion aufziehen und auf die Konstanten beim Index-Eingang verzichten...
Zitat:Wenn ich aber irgendwo im Programm eine Änderung vornehme und dann neu starte läuft es wieder 1x...
Beim Neukompilieren des VIs (nach Bearbeitung) wird der Inhalt von SRs gelöscht...
Zitat:Selbst ein Stopp des Programmes und Neustart ändert daran nichts.
Das ändert ja auch nichts am Inhalt des SRs!
(08.03.2012 13:39 )jg schrieb: [ -> ]Ich sehe ein nicht-initialisiertes Shift-Register. Hierdurch wird dein Array immer länger und länger.
Wobei, das was du willst, geht doch viel einfacher durch Autoindexing:
Gruß, Jens
Danke für die schnelle Rückmeldung. Habe das Autoindexing eingefügt.
Leider ändert das nichts am Problem..
Das vi gibt weiterhin im 2. Durchlauf keine Werte aus (NaN) und hat intern den Error -20002.
MFG, Stephan
Natürlich löst das das Problem nicht, hast du nicht die (ausführlichere) Erklärung von Gerd gelesen?
Du sollst das Shift-Register ganz löschen und stattdessen das per Autoindexing erstellte Array verwenden!!!
Gruß, Jens
Hallo,
jetzt habe ich Gerd´s Antwort auch gesehen (Danke dafür), aber leider nicht verstanden..
Ist für Euch sicherlich trivial, aber für mich das 1. mal Autoindex..
MFG Stephan
Dein Problem ist (wie die anderen schon sagten), dass dein Schieberegister nicht beim Programmstart mit einem bestimmten Wert gestartet wird, sondern mit dem letzten bekannten Wert vor Beenden anfängt. Wenn du das Schieberegister weglässt und in eine Schleife reingehst, erstellt LV automatisch ein Array der entsprechenden Werte, und zwar immer neu, also hast du das Artefakt nicht mehr drin. Das nennt man dann (so wie ich das verstehe) auto-indexing. Ich hoffe, so ist es klar geworden.
ein wenig
Stimmt dein Profil? LV-Erfahrung seit 2009, und du weißt nicht, dass eine uninitialisiertes Schieberegister (also ein Schieberegister, bei dem du beim Schleifeneingang keinen Wert anschließt) solange den Wert vom letzten Schleifendurchlauf weitergibt, solange das VI im Speicher des Computers ist? Kann ich kaum glauben.
Gruß, Jens