LabVIEWForum.de - Mehrfach verwendete SubVI und Klone

LabVIEWForum.de

Normale Version: Mehrfach verwendete SubVI und Klone
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo

Ich würde gern wissen wie eure Erfahrungen mit Klonen in LabVIEW ist?

Für die die nicht wissen wovon ich spreche ich meine die Bezeichnung Klon die einem VI namen angehängt wird wenn das VI mehrfach verwendet wird. Klon scheint man mit Instanz übersetzen zu können.

Meine erfahrung ist das es bei Klonen eines VI wohl schnell zu fehlern kommt und das man vermeiden sollte ein VI mehrfach zu verwenden. Obwohl die Literatur die ich bis jetzt gefunden habe sich durch weg Positiv über Klone äußert. In den Büchern wird beschrieben das automatisch eine Kopie des VI erzeugt und verwendet wird. Jedoch scheint es schon einen unterschied zu geben ob ich ein VI selber Kopiere und unter geänderten Namen verwende oder es eben von LabVIEW Klonen lasse.

2 Beispiele:

Mein Kollege hat sich mal ein Flip Flop gebaut und wollte dieses dann an verschiedenen stellen in seinem Programm verwenden. Damit hatte er keinen erfolg bis er wie oben beschrieben die Flip Flops selbst kopiert hat.

Ich habe zur Zeit ein ähnliches Problem ich habe ein SubVI erstellt welches ein Gerät auslesen und beschreiben kann. Verwende ich dieses SubVI nun in meinem Haupt VI, scheint es manchmal seine Funktion nicht zu erfüllen obwohl die Sonden die ich an die Eingänge des VI´s angelegt habe die Werte anzeigen mit denen das SubVI Funktoniert wenn ich es einzeln Teste.


Ich bin verwirrt sind Klone nun was gutes oder etwas schlechtes?
Achso ich verwende LabVIEW 8.2.1 ich hoffe mal das es bei der Version keinen Bug bei den Klonen gibt??
Habe NIE ein Problem mit einem Clone gehabt. Bei Reentrant Code ist das Clonen ja auch unumgänglich.
Oh Danke für die schnelle Antwort!

Mmmmh dann muss ich mich wohl noch mal auf Fehler suche begeben wenn es an den Klon nicht liegen kann Sad
' schrieb:Mein Kollege hat sich mal ein Flip Flop gebaut und wollte dieses dann an verschiedenen stellen in seinem Programm verwenden.
Genau das kann ich nicht nachvollziehen.
Meine Klone (=Instanzen) haben bisher immer funktioniert. Beachte aber: Jedes einzelne Icon im BD ist ein Klon!
hi,

habe kollegen gefragt.
er meinte, dass dies nicht funktioniert hat, weil zustände über den aufruf des vi`s hinaus gespeichert bleiben sollten. damit meinte er, dass die zustände beim nächsten aufruf des vi`s noch vorhanden sein mussten.
dies hat mit vi-klonen nicht funktioniert.
es funktionierte nur, wenn er das vi kopiert hat und unter anderem namen eingebunden hat.
Was verstest du eigentlich unter VI-klonen?
mmmh unter Klonen verstehe ich das was LabVIEW bei "Ablaufinvariant Ausführen" Einstellungen automatisch macht.

Sprich du nimmst ein SubVI fügst es beliebig oft ins MainVI ein und wählst es dann über das Block Diagramm aus.
Dann wird nicht das orinal SubVI angezeigt sondern ein VI mit der Bezeichnung SubVI.vi:1 (Klon).
' schrieb:damit meinte er, dass die zustände beim nächsten aufruf des vi`s noch vorhanden sein mussten.
Auch das kann genau so funktionieren.

Die Möglichkeit, den selben Datenbereich für alle Klone zu verwenden, gibt es erst seit 8.5 (oder 8.6?).

Kannst du das VI, das offensichtlich nicht funktioniert, hier posten?
Ok ich schick mal das Flip Flop VI mit anwendungs Beispiel so wie es dann Benutzt wurde also mit 5 umbenannten identischen SubVI. Weil unter LabVIEW 8.2.1 dies mit dem selben VI mehrfach aufgerufen, die Zustände nicht behalten hat.
Aber wenn "IchSelbst" recht hat und das erst mit 8.5 umgesetzt wurde erklärt das meinen Fehler. Danke!


LabVIEW 8.2.1:

[attachment=20993]
[attachment=20994]
[attachment=20995]
[attachment=20996]
[attachment=20997]
[attachment=20992]

Die Schrittkette auf ein SubVI umzubauen hab ich mal jedem selbst überlassen.
' schrieb:Aber wenn "IchSelbst" recht hat und das erst mit 8.5 umgesetzt wurde erklärt das meinen Fehler. Danke!
Umgekehrt!

Erst ab LV8.5 ist es möglich, reentranten VIs den selben Datenbereich zuzuweisen. Bei gleichen Datenbereich würde ich deinen Fehler verstehen. Nicht aber, wenn jedes VI seinen eigenen Datenbereich hat. Und inLv82_img1 hat jedes reentrantes SubVI seinen eigenen Datenbereich. Dein Fehler kann hier also nicht auftreten.

Wenn ich jetzt dein MainVI mit 5 reentranten SubVIs ausführen lasse, wie erkenne ich denn da einen Fehler?
Seiten: 1 2
Referenz-URLs