01-05-2018 08:33 AM
Hallo zusammen,
folgendes Problem liegt vor:
Beim mehrmaligen aufrufen des Vi's bzw. des Filters.vi's wird dieses immer "neu" initialisiert (Ist auch nachvollziehbar warum). Dadurch erhalte ich zu Beginn im Signalgraph immer Sprünge (egal ob Init/Kont auf T oder F).
Mir ist soweit klar, dass dieser Fehler durch das sequenzielle Abarbeiten der for-Schleife verursacht wird.
Wenn ich die For-Schleife (mit Filter) n-mal parallel ausführe (P-Anschluss an For-Schleife), habe ich das Problem weiterhin.
Wenn ich das Filter.vi n-mal parallel (in einer Sequenz) ausführe (mit n-Filter.vi's) habe ich das Problem nicht mehr.
Nun möchte ich aber gerne die Auto-Indizierung (z.B. in der for-Schleife) beibehalten. Gibt es eine weitere Möglichkeit dieses vorzunehmen? Call-by-Referenz?
Vielen Dank.
Gruß Thomas
Solved! Go to Solution.
01-18-2018 02:52 AM
Guten Tag,
das Problem liegt tatsächlich daran, dass zwar verschiedene Instanzen des Filter VIs erstellt werden, man dann aber keine Kontrolle mehr hat, welcher Teil des Waveform Arrays mit welcher Instanz des Filter VIs verwendet wird.
So kommen dann bei mehr als einer Ausführung die Sprünge zustande.
Wie schon vermutet, liegt der Trick darin für jeden Filter eine VI Referenz zu erstellen (und kontinuierlich beizubehalten) und diese eindeutig und konsistent den einzelnen Array Zeilen zuzuordnen.
Aussehen würde das dann in etwa so wie im angefügten Beispielcode.