LabVIEWForum.de - Hochlaufende Min Max Anzeige

LabVIEWForum.de

Normale Version: Hochlaufende Min Max Anzeige
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich habe ein, für mich recht tolles, SubVi erstellt mit dem ich einen hochlaufenden Min und Max Wert aus einem Kanal meiner DAQ über die gesamte Messdauer ermitteln kann. Es funktioniert auch gut, wenn man es alleine verwendet! Sobald man zwei von diesen SubVis betreibt gibt es Probleme. Der min- bzw. max-Wert wird vom anderen SubVi übertragen. Ich vermute es liegt an der Rückführung und der dadurch entstandenen globalen Variable. Womöglich verwenden beide SubVis die selben Variablen. Dies ist natürlich schlecht, den so können die einzelnen Kanäle nicht getrennt geprüft werden.

Welche Möglichkeiten gibt es noch, außer jedes zusätzlich SubVi des selben Typs umzubenennen?

Anbei mein Test-VI
Hallo Klaus,

(24.01.2014 23:26 )klausinger86 schrieb: [ -> ]Ich vermute es liegt an der Rückführung und der dadurch entstandenen globalen Variable. ... Womöglich verwenden beide SubVis die selben Variablen.

Eine globale Variable entsteht ja nu nicht aus dem NIX!
Wenn du eine verwendest und mehrere VIs auf dieselbe Variable schreiben, dann überschreiben sie sich natürlich gegenseitig die Werte. (Ich muss dazu sagen, dass ich deine VIs nicht öffnen kann)
Ich vermute mal, dass du mit jedem SubVI einen Kanal prüfst. Ein Vorschlag wäre, die Werte nicht in eine glob. Var. zu schreiben sondern in eine Queue, die du so gestaltest, dass jedes Sub-VI in seinen eigenen Bereich schreiben kann. Parallel dazu kannst du in einem neuen Auswerte-VI die Daten aus der Queue lesen und deine Auswertung machen.


Gruß, Marko
Liest sich wie der klassische Fall für ein reentrant VI.

Gruß, Jens
@Jens
Aber wie isses denn, wenn die reentrant VI-Instanzen alle auf dieselbe glob. Var. schreiben?

Gruß, Marko
@Marko:
Das kommt jetzt auf den Sourcecode an, kann ich mir gerade auch nicht anschauen.

Wenn wirklich eine globale Variable angelegt wurde, dann bleibt das Problem natürlich bestehen.

Wenn das Zitat "Rückführung" aber eine Feedback-Node meint, dann ist das keine globale Variable. Dann löst "Reentrant" das Problem.

Gruß, Jens
Okay, dann ist meine LabView-Welt wieder zurechtgerückt Smile


Gruß, Marko
Dein SubVI gibt es übrigens auch als fertige Funktion, und die ist dann auch reentrant.
[attachment=48228]
Danke für den Tipp mit dem fertigen SubVi, ich dachte nur, dass so ein Array VI nicht bei dynamischen Daten funktioniert, deshalb habe ich es nicht mal versucht.
Ich hab es jetzt eingebaut und mit dynamischen Daten aus dem DAQ-Assistenten ausprobiert und es schein soweit zu funktionieren. Weitere Tests werden noch durchgeführt.

Ich selbst habe keine globale Variable erstellt.

Falls es sich noch jemand anschauen will stelle ich noch die VIs in einer älteren Version zur Verfügung.
(25.01.2014 19:40 )klausinger86 schrieb: [ -> ]Danke für den Tipp mit dem fertigen SubVi, ich dachte nur, dass so ein Array VI nicht bei dynamischen Daten funktioniert, deshalb habe ich es nicht mal versucht.

Bei der von mir vorgeschlagenen Funktion handelt es sich aber gerade nicht um ein "Array"-VI, sondern um das Gegenteil: ein "Point to Point" -VI. Eigentlich kann man das gar nicht übersehen, aber Du hast das irgendwie doch geschafft. Big Grin
Hallo Lucki,

jetzt habe ich entdeckt warum ich das Vi-nicht gefunden haben. Ich habe es nicht in der Bibliothek.
Also Danke für das Vi. Jetzt kann ich hoffentlich ein SubVi daraus machen.

lg
Seiten: 1 2
Referenz-URLs