LabVIEWForum.de
Hochlaufende Min Max Anzeige - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Hochlaufende Min Max Anzeige (/Thread-Hochlaufende-Min-Max-Anzeige)

Seiten: 1 2


Hochlaufende Min Max Anzeige - klausinger86 - 24.01.2014 23:26

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


RE: Hochlaufende Min Max Anzeige - Trinitatis - 24.01.2014 23:44

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


RE: Hochlaufende Min Max Anzeige - jg - 25.01.2014 00:17

Liest sich wie der klassische Fall für ein reentrant VI.

Gruß, Jens


RE: Hochlaufende Min Max Anzeige - Trinitatis - 25.01.2014 00:26

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

Gruß, Marko


RE: Hochlaufende Min Max Anzeige - jg - 25.01.2014 08:44

@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


RE: Hochlaufende Min Max Anzeige - Trinitatis - 25.01.2014 09:29

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


Gruß, Marko


RE: Hochlaufende Min Max Anzeige - Lucki - 25.01.2014 10:08

Dein SubVI gibt es übrigens auch als fertige Funktion, und die ist dann auch reentrant.
[attachment=48228]


RE: Hochlaufende Min Max Anzeige - klausinger86 - 25.01.2014 19:40

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.


RE: Hochlaufende Min Max Anzeige - Lucki - 26.01.2014 09:35

(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


RE: Hochlaufende Min Max Anzeige - klausinger86 - 27.01.2014 09:43

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