LabVIEWForum.de - SUBVI´s

LabVIEWForum.de

Normale Version: SUBVI´s
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Moregen alle zusammen,
könnte mir jemand ganz schlicht und vor allem einfach erklären was die VOrteile bzw Nachteile von Subvi´s sind??
also einen Vorteil kenne ich schon Platzsparend und deshalb übersichtlicher

ABER SONST??

mfg
flizzer
Wie du schon ganz richtig erkannt hast, besteht der Hauptvorteil darin, dass deinProgramm übersichtlicher und somit leichter lesbar wird.
Ausserdem ist der Debuggingprozess mit SubVI wesentlich einfacher zu händeln.

Nachteile fallen mir spontan keine ein, solange man immer eine kurze Beschreibung in den VI-Eigenschaften hinterlegt, um die Funktion des VI schnell in der Kontexthilfe nachlesen zu können, ohne das VI selbst öffnen zu müssen.
Wenn man dies nicht macht und auch das Icon unklar ist, dann ist somit der Nachteil eines SubVI der, dass man nicht auf die Schnelle sehene kann, was in dem Code-Abschnitt passiert und es öffnen muss.

Auch wenn die meisten es nicht gerne hören: eine gute Dokumentation zahlt sich immer aus!
SubVIs haben per se keine Nachteile - zumindest keine solchen, die eine Nichtverwendung rechtfertigen würden.

Der zweite, wichtige Punkt nach der Einhaltung des Datenflussprinzips beim Programmieren mit LabVIEW ist das Verwenden von SubVIs. In jeder Programmiersprache werden Unterprogramme verwendet, auch in LV.
' schrieb:... Wird das Array an ein SubVI überreicht, so wird der Speicher noch mal gebraucht um die Daten zu kopieren. Hierzu gibt es bei NI geeignete Dokumente die das beschreiben. ...

Beim Rücksprung aus einem SubVI kann man von LV eine Speicherfreigabe anfordern: Application control > Memory Control > Request Deallocation.vi

Wenn ich das richtig verstanden habe (bitte um Berichtigung falls ich falsch liege) geschiet die Werteübergabe i.d.R. by Value und nicht By Reference. D.h. es werden mehr Ressorcen verbraucht. -> Nachteil.

Der größte Vorteil liegt meiner Meinung nach darin, dass Algorithmen die mehrmals im gesamten Programm gebraucht werden, schnell und einfach implementiert werden können.



Gruß dimitri
Danke für die Antworten
Sehe ich es denn richtig wenn ich behaupte das ein Subvi eine kompremierung mehrer VI´s ist also fasse ich quasi "27000" VI´s zu einem zusammen sehe in meinem Blockdiagramm nur noch ein VI mit den ein und Ausgängen der "27000" VI´s.
Somit kann ich wenn ich mir einen Timer bastel diesen als Subvi speichern und dann immer in anderen VI´s benutzen? So könnte ich mir eine eigene Bibliothek aufbauen oder?? wenn es mein Sachverstand zulassen würdeSmile

kann man denn ein Subvi auch in dem Funktionstablett des Blockdiagramms einfügen?? wenn ja, wie geht das?Smile

mfg
flizzer
Du hast das richtig verstanden und Du kannst das auch in die Palette einfügen. Zuerst Deine VIs (oder auch LLBs) in den "User.Lib"-Ordner in Deinem LabVIEW-Ordner kopieren und dann unter "Tools"->"Advanced"->"Edit palette set" einfügen.

Gruß Markus
DANKE Y-P
aber der Sin deiner Antwort ist es meine Frage zu beantworten, denke ich mir mal so.
Aber wenn du antwortest habe ich imemr noch mehr Fragen jetzt zB was sind LLB´s höre ich jetzt zum erstmal ^^

Smile

mfg
flizzer
' schrieb:Sehe ich es denn richtig wenn ich behaupte das ein Subvi eine kompremierung mehrer VI´s ist also fasse ich quasi "27000" VI´s zu einem zusammen sehe in meinem Blockdiagramm nur noch ein VI mit den ein und Ausgängen der "27000" VI´s.
Hinweis:

Jedes VI ist immer auch gleichzeitig ein SubVI. Sobald du nämlich ein VI in ein anderes plazierst, ist dieses praktisch ein SubVI. Einen Unterschied zu machen zwischen VI und SubVI macht keinen Sinn.
' schrieb:könnte mir jemand ganz schlicht und vor allem einfach erklären was die VOrteile bzw Nachteile von Subvi´s sind??
Die Frage läßt ist vielleicht falsch gestellt, dashalb bekommst Du auf der Frage nach den Nachteilen auch keine eindeutige Antwort.
Sinnvoller ist es zu fragen: Wann lohnt es sich ein SubVI zu verwenden und wann nicht?
Ursprünglich diente ja ein SubVI dazu, Code-Duplikate in unterscheidliche Teilen des Programms zu vermeiden. Da durch SUB-Vis ein Programm aber besser strukturiert wird, gehört es zum guten Programmierstil, auch bei einmaliger Verwendung Sub-Vis zu verwenden.
Die Frage ist nur: Ab wieviel Code lohnt es sich, ein SubVI anzulegen? Die Frage läßt sich wohl nicht allgemein beantworten, sicher ist nur: Spätestens wenn das Sub-VI Ikon mehr Platz beansprucht als der eigentliche Code, wird es Krampf. Und man muß auch die Mehrarbeiten beachten: Dokumentation, Erstellen von Ein/Ausgängen, Erstellung der Ikons, Zusammenfassung von Daten zu Clustern o.ä.. Diese Mühe sollte sich schon irgendwie lohnen. Auch ein Aspekt: Bei der Verbreitung von VIs, z.B hier im Forum, ist es lästig, ein VI mit SUBVIs posten zu müssen.
Also wir arbeiten nach der Faustregel, dass eine Mainloop komplett auf dem Monitor sichtbar sein sollte. Wird das Programm so gros, dass dies nicht mehr geht, dann werden SubVi's erstellt und das Mainprogramm somit wieder lesbarer.

Wie gesagt, ist das nur eine Fausregel und es gibt genügend Projekte, in denen wir dieser Maxime nicht mehr folgen konnten, da das Programm zu komplex war.
Referenz-URLs