LabVIEWForum.de
laufendes Sub-VI finden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: laufendes Sub-VI finden (/Thread-laufendes-Sub-VI-finden)



laufendes Sub-VI finden - Trinitatis - 02.03.2012 12:16

Hallo zusammen,

ich beschäftige mich gerade mit folgendem Problem:

Ich pflüge gelegentlich in LV-Applikationen herum, die einen sehr großen Quellcodeumfang mit hunderten VIs, Sub-VIs, SubSub-VIs ... usw. haben. Nun hatte ich schon einmal den Fehler, dass durch einen Programmierfehler ein Sub-VI in der 5. Unterebene in einer Whileschleife festhing, da die Abbruchbedingung nicht eindeutig deklariert war. Mir war auch klar, dass das Programm in irgendeiner Schleife hängen würde.

Gibt es eine elegante Möglichkeit, die LabView selbst (8.0) ggf. schon an Board hat, um das gerade laufende oder auch die gerade laufenden VIs anzuzeigen, denn mein Problem war ja nicht die Schleife in dem hängenden Sub-VI zu finden, sondern erst einmal das Sub-VI selbst zu lokaliesieren. Das tat ich mit logischer Überlegung und der Betrachtung des Ausführungspfeils in stichprobenartig geöffneten Sub-VIs, bis ich es dann gefunden hatte.

Vielen Dank schonmal für Eure Anregungen.


RE: laufendes Sub-VI finden - b.p - 02.03.2012 12:35

Ein paar Vorschläge:

Ich bin mir nicht sicher, ob es das bei dir schon gibt, aber Fenster->Profil->Leistung und Speicher zeigt den Speicherverbrauch usw. von Vis und SubVIs. Da kann man auch eine Momentaufnahme machen. Generell sollte das Profiling beim Finden von "stehenden" vis ganz gut helfen.

Dann gibt es die Property Node Application -> Alle Vis im Speicher, vielleciht geht die?

Wie sind denn diese Riesendinger architekturmäßig aufgebaut?
Wenns relativ verschachtelt ist, würde ich in der höchsten Ebene bei allen SubVIs /undoder States Haltepunkte setzen, dann auf weiter gehen, bis ich lokalisiert habe, wo das Programm auf oberster Ebene steht, dann darin auf die nächste Ebene gehen, usw.

Sonst hätte ich eine Scripting-Lösung, aber da bin ich mir sicher, dass die in 8.0 nicht tut.

Gruß,
Birgit


RE: laufendes Sub-VI finden - Trinitatis - 02.03.2012 16:11

Hallo Birgit,
die Idee mit dem Profilfenster hielt ich für eine gute - habe es gleich ausprobiert, jedoch leider ohne Erfolg. Das Sub-VI, das ich zu diesem Zweck künstlich mit einer Endloswhileschleife lahmgelegt habe wird zwar angezeigt, es hebt sich jedoch in keiner Weise von anderen (ruhenden) VIs ab. Ich muss allerdings dazusagen, dass ich die Endlosschleife nicht so schnell sie kann laufen lasse, sondern mit einer Wartezeit von 100 ms, weil das auch der Realität entspricht.
Ich bräuchte quasi eine Anzeige darüber, wie lange meine VIs ausgeführt werden. Das werden sicher dann auch mehrere sein, die permanent laufen, aber in dieser reduzierten Anzahl könnte ich mich schon wesentlich besser zurechtfinden und könnte schon wenigstens eine Ahnung bekommen, welches das hängende sein könnte.

Nochmal zur Erläuterung: Du hattest etwas von einem "stehenden" VI geschrieben - mein VI steht ja nicht, es läuft, wird aber durch den fehlenden Schleifenabbruch niemals beendet. D.H., es verhält sich so, wie z.B. mein Haupt-VI, das ja auch ständig läuft. Deswegen ist es nicht ganz so trivial, dieses hängende VI zu finden.

Die Sache mit den Haltepunkten hatte ich damals probiert, als ich mein hängendes VI beim Kunden finden musste, aber das dauert natürlich ewig und ist ja nur ein Rumstochern. Zudem handelt es sich bei mir um ein Haupt-VI, das dynamisch zur Laufzeit verschiedene Vis aufruft, die ihrerseits mit unzähligen Sub-VIs in verschiedensten Unterebenen zugeschüttet sind - inzwischen so um die 500 VIs insgesamt. Da wird es dann mit den Haltepunkten recht zäh Smile

Aber trotzdem Vielen Dank - Ich denke das Profilfenster ist für andere Informationen zu den VIs recht nützlich

Gruß, Marko