Reihenfolge - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Reihenfolge (/Thread-Reihenfolge) |
Reihenfolge - DrHoas - 23.07.2009 12:32 Hallo, ich hab eine for-Schleife. Ist diese abgearbeitet soll eine globale Variable ausgelsen werden. Kann man das so machen wie im angehängten Bild dargestellt? Oder muss man doch eine Sequenz benutzen? Dank und Gruß Philipp [attachment=19902] Reihenfolge - schrotti - 23.07.2009 12:38 Wenn du es machst wie im Bild machst du genau das Gegenteil von dem, was du willst. Leg eine Seqzenrahmen um die Variable und leg einen Draht aus der Forloop raus in den Rahmen. Reihenfolge - TSC - 23.07.2009 12:46 anstelle von schrottis sequenzrahmen könntest du auch den datenfluss mit einem errorcluster kontrollieren. [attachment=19903] LG Torsten Reihenfolge - jg - 23.07.2009 13:10 ' schrieb:anstelle von schrottis sequenzrahmen könntest du auch den datenfluss mit einem errorcluster kontrollieren.Das geht aber nur bei Shared Variable und nicht bei einer globalen Variablen. Reihenfolge - DrHoas - 23.07.2009 13:14 das mit dem Errorcluster klingt sympathisch. Kannst Du mir auch verraten, was das um die globale Variable rum ist? Wenn ich, bevor die for-Schleife ausgeführt wird, die globale Variable zu 0 setzen möchte, wie kann ich das ohne Sequenz machen? Wahrscheinlich ganz ähnlich, oder? Philipp Reihenfolge - TSC - 23.07.2009 13:21 *Zustimm* da hab ich mich mal ein wenig verguckt! Sorry! Reihenfolge - DrHoas - 23.07.2009 13:34 man liest doch immer wieder "verwende keine Sequenzen". Geht das jetzt also wirklich nicht schöner als dass ich um mein ganzes Blockdiagramm wegen einer popligen Variablen eine Sequenz mache? Anbei ein Beispiel, was ich eigentlich machen will. Vielleicht gibt's da ja was Elegantes. Philipp [attachment=19908] Reihenfolge - TSC - 23.07.2009 13:42 du kannst es im prinzip so machen wie ich es angedeutet habe. da die globale variable nun aber keinen fehlereingang hat. musst du einen erzeugen. das geht am schnellsten mit einer sequenz. du ziehst also um die globale varible einen sequenzrahmen (nicht um deinen gesamten code) und verbindest den fehler aus der schleife mit der sequenz. [attachment=19909] Reihenfolge - IchSelbst - 23.07.2009 16:29 ' schrieb:man liest doch immer wieder "verwende keine Sequenzen". Geht das jetzt also wirklich nicht schöner als dass ich um mein ganzes Blockdiagramm wegen einer popligen Variablen eine Sequenz mache?Man ließt viel öfter: "verwende keine globalen variablen" (sondern z.B. funktionale, globale Variablen (FGVs)). Und so schlimm sind Sequenzrahmen auch nicht. Reihenfolge - TSC - 23.07.2009 17:30 Evtl. ein paar Worte warum Sequenzrahmen als "böse" angesehen werden: LabVIEW arbeitet nach dem Datenflussprinzip. Von Natur aus ist es dabei möglich, bestimmte Programmteile in beliebiger Reihenfolge auszuführen. Durch diese Dynamik kann der Programmablauf einfach und effektiv beschleunigt werden. Gerade wenn man sich mal die Möglichkeiten von echter paraleller Abarbeitung bei MultiCoreSystemen vorstellt. Sequenzstrukturen zwingen LabVIEW gewisse Dinge nacheinander auszuführen. Es wird also ein bestimmter Datenfluss festgelegt. Wenn man das im Hinterkopf hat und Sequenzrahmen eben nur so einsetzt, wie es wirklich nötig ist (z.B. wie Schrotti es vorgeschlagen hat und es in meinem Screenshot zu sehen ist), dann sind Sequenzrahmen nichts böses. Allerdings passiert es sehr schnell, dass man auch da Sequenzen einsetzt, wo es nicht nötig ist. Beispielsweise kenne ich Programme, die 5 Sequenzen hintereinander abarbeiten: INIT, DO1, DO2, DO3, FINAL es wird also erst der gesamte Inhalt von INIT abgearbeitet, dann der nächste Rahmen usw. Dabei gibt es ja auch Dinge (z.B. Konstante Werte an Funktionen übergeben) die schon längst erledigt werden können. Also einfach immer ein bissl drauf achten, ob man die Sequenz wirklich braucht. LG Torsten |