LabVIEWForum.de - Sequenz gestapelt vs. flach

LabVIEWForum.de

Normale Version: Sequenz gestapelt vs. flach
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Morgen,

eine Frage an die Fachleute, wenn ich einen String zerlege und in ein Cluster umwandele tue ich das im Allg. mit einer Sequenz.
Da man ja die flache der gestapleten Sequenz vorziehen sollte entstehen so allerdings Blockdiagramme die deutlich größer werden,
was mach auch wieder vermeiden sollte. Wie also macht man es?

Gruß JochenK

[attachment=29694]

[attachment=29695]
Hallo Jochen,

wenn du die (flache) Sequenz ganz weglässt, funktioniert's dank Dataflow genauso - und könnte dank MultiCore und paralleler Abarbeitung theoretisch sogar schneller sein... Das BD wird dann auch wieder etwas kleiner, da die ganzen Rahmen verschwinden!

Meine Meinung: Sequenzen jedweder Art sind (nahezu) überflüssig. Die gezeigte Funktionalität (Zerlegen der Stringantwort eines Gerätes) kommt bei mir sofort in ein SubVI, welches dem Gerätetreiber zugeordnet ist...

P.S.: Die Nutzung lokaler Variablen in der gestapelten Sequenz ist auch nicht die feine Englische... Wenn schon diese Sequenz, dann doch bitte mit Sequenz-Lokals!!!

P.P.S.: Man kann auch die ganzen BundleByName zusammenfassen (die Aufräumfunktion verdient noch etwas Feintuning...):
[attachment=29696]
Wenn Du LabVIEW 2010 hast, dann bitte Profil_ergaenzen. Da steht noch 8.2 drin.

Gruß Markus

' schrieb:Guten Morgen,

eine Frage an die Fachleute, wenn ich einen String zerlege und in ein Cluster umwandele tue ich das im Allg. mit einer Sequenz.
Da man ja die flache der gestapleten Sequenz vorziehen sollte entstehen so allerdings Blockdiagramme die deutlich größer werden,
was mach auch wieder vermeiden sollte. Wie also macht man es?

Gruß JochenK

[attachment=58622:Aufzeichnen.PNG]

[attachment=58623:BeispielLabVIEW2010.vi]
Hallo Jochen,

anbei noch eine erweiterte Version deiner Stringumwandlung - nur mal so als AnregungSmile
[attachment=29697]
Danke schon mal,

ich habe es vielleicht nicht deutlich genug gemacht der String ist sehr lang und entsprechend viele (ca 40 Werte) werden zerlegt. Wenn ich das ohne gestapelte Sequenz mache dann ist mein Blockdiagramm 2m lang ;-). Daher habe ich bis jetzt immer gestapelte Sequenzen verwendet. BTW es ist
natürlich ein SubVi in dem ich das mache, das Projekt hat schon weit über 200 VI's.

Gruß JochenK
Hallo Jochen,

wie du an meinem Beispiel siehst, geht es durchaus kompakter als das, was du bisher genutzt hast.:)Meine Art der Umwandlung belegt genauso viel BD-Fläche wie deine gestapelte Sequenz und erledigt das gleiche ohne Frame-Stapelei und lokale Variablen (=Speicherkopien)!


"Projekt hat schon weit über 200 VI's."
Wenn ich eines meiner aktuellen Projekte lade, zählt LabVIEW locker mal bis 1000 hoch. Trotzdem erstelle ich weiterhin neue subVIs...
' schrieb:Hallo Jochen,

anbei noch eine erweiterte Version deiner Stringumwandlung - nur mal so als AnregungSmile
[attachment=58625:Bundle.png]

Ja so habe ich das früher auch gelöst und bin dann zu meinen Sequenzen übergegangen da mir das zu unübersichtlich wurdeBig Grin
Aber besten Dankeschön mitunter verschlimmbessert man ja auch so manche Sache über die Jahre.

Gruß JochenK
' schrieb:Ja so habe ich das früher auch gelöst
Diese Variante im speziellen halte ich auch nicht für geeignet.
Zitat:und bin dann zu meinen Sequenzen übergegangen
Diese aber auch nicht.

Bei 40 Variablen lohnt sich - eben alleine schon wegen der Übersichtlichkeit - ein angepasster Algorithmus.

Ich stell mir folgendes vor: Eine For-Schleife für die Anzahl der Variablen im Cluster. String, Cluster und Index liegen in Schieberegistern auf der For-Schleife. Die Längen der Einzelstrings sind ein einem Array abgelegt. Der erste Teil der For-Scheife schneidet den Datenstring aus und erhöht den Indexzähler. Die Wandlungen aller Datenstrings nach Daten kann man ggf. auch in der For-Schleife machen. Danach kommt eine Case-Struktur, die in Abhängigkeit des Schleifenzählers in die einzelnen Clusterelemente schreibt.

Und mach dir mal wegen 200 eigenen VIs keine Gedanken. Die Anzahl der vorhandenen SubVIs ist überhaupt kein Grund, keine weiteren zu produzieren.
Hallo,

' schrieb:Ich stell mir folgendes vor: Eine For-Schleife...

habe ich dich richtig verstanden?

[attachment=29700]

Gruß JochenK
Hallo Jochen,

prinzipiell ja.
Jetzt noch den Verdrahtungsfehler entfernen und den Start-Offset für's StringTrennen mitzählen...
Seiten: 1 2
Referenz-URLs