LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Invariante Ausführung mit fest Kopieanzahl für Filter-Initalisierung erzwingen

Solved!
Go to solution

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

Download All
0 Kudos
Message 1 of 2
(2,193 Views)
Solution
Accepted by topic author thhipp

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.

Download All
0 Kudos
Message 2 of 2
(2,137 Views)