Sequenzstrukturen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Sequenzstrukturen (/Thread-Sequenzstrukturen) |
Sequenzstrukturen - stromflo - 29.04.2010 07:07 Hallo, da ich mich in naher zukunft häufiger mit LabVIEW beschäftige, versuche ich mir gerade einfach, möglichst viel anzueignen. Deshalb komm ich auch hier immer wieder mal mit der ein oderen anderen nervigen Frage.... Habe über die Sequenzstruktur schon an mehreren Stellen gelesen, dass man Sie möglichst meiden soll. Da ich solche Abläufe aber häufiger brauchen werde, würde mich mal interessieren, wie ich das ganze umgehen kann. Habe selber mal ein VI gebastelt. Eine Forschleife gibt die Selektion für eine Case Struktur vor. So würden die Selektionen der Case Struktur hintereiander ablaufen, was soweit auch funktioniert. Mich würde einfach interessieren, welche Möglichkeiten es, da sonst noch gibt und welche Möglichkeiten man bevorzugen sollte. Gerne auch ein Statemant ob man so eine Variante mit Case Struktur verwenden kann, sollte oder lieber meiden sollte. Gruß Flo Sequenzstrukturen - tschibi - 29.04.2010 07:16 Dein Design mit der for-Schleife ist in meinen Augen unbrauchbar. Ich würde dir raten dich mit der state-machine vertraut zu machen. Beispiele dazu sollte man eigentlich genug finden. Gruss Sequenzstrukturen - GerdW - 29.04.2010 07:20 Hallo Flo, "Think dataflow!" Die meisten Funktionen bieten ErrorI/O-Anschlüsse. Wenn man die verwendet, braucht man keine Sequenzen Dein gezeigtes Beispiel ist eine ganz simple Statemachine. Wenn man statt des Schleifenzählers ein Enum verwendet (mit vernünftigen Einträgen), kann man sowas noch viel lesbarer/erweiterbar/steuerbar/etc machen. Findet sich bestimmt auch in den LV beiliegenden Examples... (Und dann natürlich mit While- statt For-Loop!) Sequenzstrukturen - stromflo - 29.04.2010 11:59 Hallo Gerd und Co, hab hier mal ein Beispiel mit Schieberegister und Enum gemacht, ich denke so ist, dass gemeint. Was mich interessieren würde, ob man es irgendwie machen kann, dass man mittels eines Tasters den State weiterschaltet und nicht automatisch in einer schleife? Und vielen Dank für die vorangegangen Beiträge Gruß Flo Sequenzstrukturen - GerdW - 29.04.2010 12:01 Hallo Flo, du meinst, du hast einen weiteren State, in dem auf eine Benutzeraktion gewartet wird? (War das jetzt genug Winken mit dem Zaunpfahl?) Sequenzstrukturen - stromflo - 29.04.2010 12:06 Zitat:du meinst, du hast einen weiteren State, in dem auf eine Benutzeraktion gewartet wird? (War das jetzt genug Winken mit dem Zaunpfahl?) Also ich meinte halt, dass z.B. der nächste Status erst aufgerufen wird über eine Benutzereingabe und nicht wie in meinem Beispiel über eine Schleife. Mal sehen ob ich vielleicht irgendwie selber drauf komm.... ist ja oft auch lernreicher wenn man selber ein wenig grübelt und probiert. Eins muss man hier mal sagen, man bekommt zum großteil super kompetente antworten! Was sicher nicht in jedem Forum der Fall ist. Danke an alle! Gruß Flo Sequenzstrukturen - chrissyPu - 29.04.2010 12:15 Hi, bei LV ist im Beispielfinder eine "Standard-State-Machine" mit dabei. Dazu gibt es noch zwei Varianten mit Datenflussorientierung und für die INteraktion mit einem Nutzer. Wenn du letzteres mit dem allerersten kombinierst, hast Du wahrscheinlcih das, was die meisten hier als State-Machine nutzen... Den Grund, weshalb man (gestapelte) Sequenzen vermeiden sollte ist in meinen Augen neben dem Umgehen des Datenflussprinzips auch die Unübersichtlichkeit. Allerdings gibt es m.E. schon Punkte, wo man sie einsetzen kann, wenn es halt nicht per Datenfluss realisiert (bzw. nur mit größerem Aufwand) werden kann. ch Sequenzstrukturen - dimitri84 - 29.04.2010 12:27 Zitat:Mal sehen ob ich vielleicht irgendwie selber drauf komm.... ist ja oft auch lernreicher wenn man selber ein wenig grübelt und probiert.Auf die Gefahr hin, dass ich dir den Ratespaß verderbe, ein Tip: ' schrieb:Also ich meinte halt, dass z.B. der nächste Status erst aufgerufen wird über eine Benutzereingabe und nicht wie in meinem Beispiel über eine Schleife.<strike>über eine Benutzereingabe</strike> ersetzen durch ,wenn ein Ereignis ausgelöst wird ' schrieb:Allerdings gibt es m.E. schon Punkte, wo man sie einsetzen kann, wenn es halt nicht per Datenfluss realisiert (bzw. nur mit größerem Aufwand) werden kann.Mir würde als Indikation nur sowas einfallen. [attachment=26086] Und das ließe sich mit einem subVI auch lösen. (Mit etwa 20 Sekunden mehr Aufwand.) Sequenzstrukturen - SeBa - 29.04.2010 12:31 Warum hat noch keiner was von einem Idle-State erzählt? Haltet ihr das für überflüssig oder so trivial, dass es nicht erwähnenswert ist? Btw: Hier LVF-Link hab ich ein Beispiel... wenn du guckst geht der Ratespass aber flöten... Gruß SeBa Sequenzstrukturen - chrissyPu - 29.04.2010 12:39 Ja, dimitri84, sowas ähnliches meinte ich. Das Warten mit Errorcluster gibts ja auch als Express-VI (und für den speziellen Fall würde ich Dir zustimmen, dass es ein SubVI auch tut und eigentlich sollte auch jeder sowas in seiner User-Palette haben), aber wenn man jetzt noch in die Sequenzstruktur was packt, was beliebig lange dauert, man aber sicher stellen will, dass es mindetens X ms lang dauert, brauch ich die Sequenz. Alternativ ein neues Sub-VI, aber das ist vom Aufwand dann nicht mehr so sinnvoll find ich... ch |