Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich habe ein VI, bei dem es mehrere Schleifen gibt. Ich möchte den Gesamt-Iterationszähler (also die äußerste Schleife) pro Sekunde um 1 erhöhen. Innerhalb dieser Schleife ist eine weitere, die 5 mal wiederholt wird. In dieser Zeit läuft ja der äußere Zähler nicht weiter, da zunächst die innere 5 mal wiederholt wird (pro Durchlauf ebenfalls 1 sekunde). Das soll auch so beibehalten werden, dass jeder Durchlauf 1 Sekunde dauert aber halt auch der äußere Zähler jedesmal um 1 nach oben geht. Wenn ich die innere Schleife durch einen Button anhalte, soll der äußere Iterationszähler weiterhin um 1 pro Sekunde steigen. Ich hoff ich konnte beschreiben was ich meine:)Kann man da was machen? Wahrscheinlich ist es total simpel und ich steh auf dem Schlauch...
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Iterationszähler
So wie Du Dir das vorstellst geht das nicht. Wenn Du so was haben möchtest, dann musst Du die Schleifen parallel laufen lassen und nicht eine Schleife in der anderen. Vielleicht kannst Du ja kurz sagen, was Du damit erreichen möchtest, dann kann man Dir bestimmt einen Tip geben, wie Du das besser lösen könntest.
Gruß Markus
' schrieb:Kann man da was machen?
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Also ich habe einen Tank der je nach Wert eines bestimmten Quotienten entweder einen Zulauf erhält oder nicht. Wenn der Quotient kleiner als 1 ist, ist der Zulauf geöffnet und wird für 5 Durchläufe einer Schleife so beibehalten. Wenn er kleiner ist als 1 dann bleibt der Zulauf geschlossen ebenfalls für 5 Durchläufe. Außerdem hat das System einen Schalter um den zulauf manuell zu stoppen. Ich habe eine numerische und graphische Volumenanzeige und eine Uhr für die vergangene Zeit in Form des Iterationszählers. Der Iterationszähler soll immer weiter zählen und die graphische Anzeige jede Sekunde jegliche Veränderung anzeigen auch wenn es keine gibts da der Quotient über 1 ist.
So soll es am Ende ausehen.
18.04.2010, 08:33 (Dieser Beitrag wurde zuletzt bearbeitet: 18.04.2010 08:34 von IchSelbst.)
' schrieb:Ich möchte den Gesamt-Iterationszähler (also die äußerste Schleife) pro Sekunde um 1 erhöhen. Innerhalb dieser Schleife ist eine weitere, die 5 mal wiederholt wird. In dieser Zeit läuft ja der äußere Zähler nicht weiter, da zunächst die innere 5 mal wiederholt wird (pro Durchlauf ebenfalls 1 sekunde). Das soll auch so beibehalten werden, dass jeder Durchlauf 1 Sekunde dauert aber halt auch der äußere Zähler jedesmal um 1 nach oben geht. Wenn ich die innere Schleife durch einen Button anhalte, soll der äußere Iterationszähler weiterhin um 1 pro Sekunde steigen.
Einfach den Wire für den Zähler der äußeren Schleife mit Schieberegister durch die innere Schleife führen und dort beide Zähler erhöhen? Am Außgang der inneren Scheife den äußeren Zähler in Abhängigkeit "Abbruch" erhöhen?
Oder:
Eine FGV machen mit integrierter Anzeige (Referenz auf Anzeigeelement in der FGV hinterlegen) und die überall dort platzieren, an der hochgezählt werden soll.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:Also ich habe einen Tank der je nach Wert eines bestimmten Quotienten entweder einen Zulauf erhält oder nicht. Wenn der Quotient kleiner als 1 ist, ist der Zulauf geöffnet und wird für 5 Durchläufe einer Schleife so beibehalten. Wenn er kleiner ist als 1 dann bleibt der Zulauf geschlossen ebenfalls für 5 Durchläufe.
Das Du machen willst läßt auf einfachste Weise zu lösen. Die innere Schleife anhalten geht allerdings nicht, wie Du inzwischen weißt. Also packe einen Case in die innere Schleife rein und sorge dafür, daß im "angehaltenen Zustand" in der Schleife nichts getan wird.
Vom Gültigkeitsbereich her ist es eine "Globale Variable" - und somit überall verfügbar. Überall heißt in deinem Falle, dass der Wert sowohl in der äußeren als auch in der inneren Schleife verfügbar ist. Er kann also in beiden Schleifen gelesen bzw. manipuliert werden.
Eine FGV besteht aus einer While-Schleife mit Bedingungsanschluss = TRUE (also so, dass die Schleife nur ein einziges Mal durchlaufen wird). Wichtig ist lediglich ein Schieberegister auf der Whileschleife. Hierin liegt nämlich der Wert der "globalen Variable". Eine FGV hat einen Steuereingang, der sinnvollerweise mindestens die Zustände "Variable schreiben" (mit Daten von Dateneingang) und "Variable lesen" (=> FGV-Wert geht an Datenausgang) beinhaltet. Man kann die FGV jetzt aufbohren um einen Enumeratoreingang und eine Case-Struktur in der While-Schleife. Dann kann man so Sachen machen wie "Erhöhe Datenwert", "Resette Datenwert", "Merke Referenz zur Anzeige des Datenwertes" etc. Praktisch ist das mit der Anzeige z.B. dann, wenn gleich nach dem Erhöhen der Wert auch noch angezeigt werden soll. Man spart sich somit die Verdrahtung der Anzeige am BD des VIs.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Iterationszähler
Er wollte doch in der inneren Schleife auch jede Sekunde den Zähler (i) erhöhen. Wenn die innere Schleife aber fünf Sekunden dauert, kann er den Zähler (i) der darumliegenden Schleife nicht jede Sekunde erhöhen. Da muss er sich halt einen eigenen Zähler basteln, aber den schleifeneigenen Zähler (i) kann er so nicht verwenden.
Gruß Markus
' schrieb:Das Du machen willst läßt auf einfachste Weise zu lösen. Die innere Schleife anhalten geht allerdings nicht, wie Du inzwischen weißt. Also packe einen Case in die innere Schleife rein und sorge dafür, daß im "angehaltenen Zustand" in der Schleife nichts getan wird.
[attachment=54315:Schleife_anhalten.png]
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Iterationszähler
Davon bin ich ausgegangen....
Gruß Markus
' schrieb:Ach er redet vom schleifeneigenen Zähler.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------