LabVIEWForum.de
Sequenzvariablen mit lokalen variablen ersetzen? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Sequenzvariablen mit lokalen variablen ersetzen? (/Thread-Sequenzvariablen-mit-lokalen-variablen-ersetzen)



Sequenzvariablen mit lokalen variablen ersetzen? - flooney - 07.04.2011 15:09

Hi,
ich habe sehr viele Variablen, die ich nacheinander berechnen möchte. Ich habe mir überlegt das mit seiner gestapelten Sequenz zu machen. Um von einen Rahmen zum anderen den Wert zu übergeben muss ich das ja mit Sequenz-Variablen machen. Das werden dann aber ziemlich viele Pfeile, die an meinem Rahmen kleben. Kann ich das mit lokalen Variablen übersichtlicher gestalten, d.h. z.B. in Rahmen 1 den berechneten Wert ausgeben und im Rahmen 2 oder 3 den mit lokaler Variable wieder beziehen.
Geht das???

lg
Steffie (LabView10)


RE: Sequenzvariablen mit lokalen variablen ersetzen? - GerdW - 07.04.2011 15:58

Hallo Steffie,

so richtig übersichtlich wird es durch:
- Vermeidung von Sequenzen
- Vermeidung von lokalen Variablen
- Nutzung von Drähten
- Nutzung von (ordentlich dokumentierten) subVIs

Zitat:Geht das???
Ja, aber für "Codequalität" wirst du so nie einen Blumentopf gewinnen... Smile


RE: Sequenzvariablen mit lokalen variablen ersetzen? - Lucki - 07.04.2011 17:31

(07.04.2011 15:09 )flooney schrieb:  Geht das???
Die Frage ist mit einem klaren "Ja" zu beantworten. Die Sequenzstruktur wird, wie der Name sagt, sequentiell Rahmen für Rahmen abgearbeitet; da kann es keine Wettlauferscheinungen zwischen den Lokalen Vorablen und/oder dem Bedielemente/der Anzeige geben.
Diese können allerdings innnerhalb eines Rahmens aufreten, wenn man darin z.B. die gleiche Variable schreibend und lesend verwendet. Das hat aber dann nichts mit der Sequenzstruktur zu tun, im Gegenteil, das liegt dann daran, daß man versucht hat, einen notwendigen Sequenzrahmen einzusparen.
Ich mache es genau so, weil ich diese Durchführungen auch nicht mag. Das sage ich Dir allerdings nur privat. Es hatt gottseidank nachgelassen, aber in der Vergangenheit wurden im LVF beim Stichwort lokale Variablen mehrfach lange Diskussionen losgetreten. (Meine Meinung: Man soll die Warnungen und Hinweise von NI zu lokalen Variablen beachten und ernst nehmen - und dann benutzen, so wie man will)

Die Alternative zur gestapelten Sequenz ist eine entartete State-Machine: For-Schleife, z.B mit N=5, enthält Casestruktur mit 5 Cases. An die Casestruktur wird einfach i angeschlossen. Die Wertübergabe von einem zum anderen Case erfolgt über Shift-Register. Der Vorteil ist, daß die Ausgänge immer rechts und die Eingänge immer links sind. Nachteil ist, daß man die Drähte der Shiftregister immer in allen Cases durchziehen muß.

Es sei noch erwähnt, daß a) NI vor der exzessiven Verwendung von Sequenzstrukturen warnt, und b) deren exzessive und oft völlig überflüssige Verwendung die Visitenkarte der meisten Anfänger-VIs sind. Deshalb könnte es für Dich nützlich sein, wenn Du das betrffende VI mal postest und hier zur Diskussion stellst - es könnten sich da Alternativen auftun, von denen Du noch gar nichts ahnst.


RE: Sequenzvariablen mit lokalen variablen ersetzen? - flooney - 12.04.2011 08:51

Danke für die Tipps,
ich mach es jetzt mit ner State-machine und Clustern :-)

mein Programm war so groß, dass es trotz SubVIs unübersichtlich war, durch die vielen verdrahtungen. jetzt ist alles schick.

Danke