LabVIEWForum.de - PEAKCan SubVI Ausgänge werden zurückgesetzt

LabVIEWForum.de

Normale Version: PEAKCan SubVI Ausgänge werden zurückgesetzt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Servus,

ich habe ein kleines Problem mit einem VI welches ich als SubVI in ein anderes VI einbinde.

Es handelt sich bei diesem um ein VI womit ich Daten auf den CAN Sende und eine bestimmte Antwort erwarte. Soweit funktioniert das auch sehr gut. Das Problem besteht erst dann, sobald ich es als SubVI in ein anderes einbinde. Dann werden die Ausgänge beim nächsten Schleifendurchlauf zurückgesetzt. Das Rücksetzen ist aber nicht Teil meines Plans Big Grin

Wenn ich mit der Sonde mitmesse sind die Werte im SubVI so wie sie sein sollen, nur im MainVI werden diese zurückgesetzt.
Woran das liegt ist mir ehrlich gesagt ein großes Rätsel.

Die Bibliotheken/Treiber habe ich aus folgendem Forum:
http://www.labviewportal.eu/viewtopic.php?f=14&t=31
Hallo Rino,

Zitat:Dann werden die Ausgänge beim nächsten Schleifendurchlauf zurückgesetzt.
Verstehe ich dich richtig: Dein Problem ist, dass das subVI an seinen Ausgängen Werte zurückmeldet, die dir nicht gefallen?

Oder vielleicht:
Dein Problem ist, dass du in deinem (unsauber programmierten) subVI lokale Variablen verwendest, die evtl. zu falschen Rückgabewerten führen? (Irgendwelche RaceConditions?)
Ich hab es nochmal an einem kleineren (und einfacheren) Beispiel nachvollziehen können. (siehe Anhang)
Wenn ich den Button im MainVI drücke berechnet er und zeigt mir auch die LED's richtig an. Der Button hat Latch verhalten, wird also vom Labview zurückgesetzt. Beim nächsten Schleifendurchlauf erkennt das SubVI (Rechnung-Test) False. Soweit ist alles richtig. Allerdings werden mir in diesem Moment meine Ausgänge, sprich LED und die Berechneten Ergebnisse auf 0 bzw False gesetzt..(ich würde behaupten auf Standardwert)

Das tritt aber nur dann auf, wenn im SubVi ein Case Vorhanden ist. Entferne ich den Berechnen Button und das Case aus dem SubVI und lege den in mit einem Case ins MainVi werden die Ausgänge nicht zurückgesetzt.
Hallo Rino,

das ist der Grund, warum NI im StyleGuide festlegt, dass Ein- und Ausgabelemente von (sub)VIs möglichst außerhalb aller Strukturen liegen sollten...

In deinem Fall: die Ausgabeelemente gehören aus dem Case heraus! Sonst wird halt der Defaultwert genommen - du hast es ja so programmiert (indem du selbst keine Werte festlegst)!

So z.B.:
[attachment=36059]
...und wieder was dazu gelernt. Vielen Dank
Referenz-URLs