LabVIEWForum.de
Lokale Variablen in verschiedenen Schleifen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Lokale Variablen in verschiedenen Schleifen (/Thread-Lokale-Variablen-in-verschiedenen-Schleifen)



Lokale Variablen in verschiedenen Schleifen - MaxxPowers - 21.04.2014 20:43

Guten Tag,

ich versuche gerade mit einer Lokalen Variable ein Signal aus einer For-Schleife in eine übergeordnete While-Schleife zu transportieren. (s. Anhang)
Leider habe ich an Sonde 17 immer ein True Signal, die Signal Änderung in der For-Schleife wird nicht erkannt.
Wie würde denn ein LabVIEW kundiger vorgehen wenn er das Signal an Sonde 18 aus der Schleife zu Sonde 17 übertagen möchte?

Mit freundlichen Grüßen

Max


RE: Lokale Variablen in verschiedenen Schleifen - Lucki - 22.04.2014 06:48

Hast Du das falsche Bild hochgeladen? Es gib nur eine einzige While-Schleife, aber weder eine "For-Schleife" noch eine "übergeordnete Schleife" (was meinst Du überhaupt damit?). Und Sonden sehe ich auch nicht.


RE: Lokale Variablen in verschiedenen Schleifen - jg - 22.04.2014 07:18

Falls der Screenshot doch korrekt ist, an diese Stelle brauchst du keine lokale Variable. Es langt eine Weitergabe per Draht (Think Dataflow). Die Case Struktur wird schließlich nur im True Fall ausgeführt, und ab diesem Zeitpunkt wird deine Boolean gar nicht mehr neu gesetzt. Also Draht!

Gruß, Jens


RE: Lokale Variablen in verschiedenen Schleifen - GerdW - 22.04.2014 08:32

Hallo Maxx,

Zitat:Leider habe ich an Sonde 17 immer ein True Signal, die Signal Änderung in der For-Schleife wird nicht erkannt.
Wie würde denn ein LabVIEW kundiger vorgehen wenn er das Signal an Sonde 18 aus der Schleife zu Sonde 17 übertagen möchte?
Sonde17 = STOP-Variable außerhalb der Case-Struktur
Sonde18 = STOP-Variable innerhalb der FOR-Loop

Auch ein "LabVIEW-Kundiger" käme hier zum gleichen Ergebnis wie du: außerhalb der Case-Struktur ist STOP immer TRUE, solange die innere FOR-Loop noch läuft. Grund: THINK DATAFLOW!

1. Wie Jens schon sagte: Drähte statt lokaler Variablen verwenden. Der Draht ist die Variable! THINK DATAFLOW!
2. Wenn Dinge parallel abgearbeitet werden sollen ("gleichzeitig den Wert einer lokalen Variable an zwei verschiedenen Stellen auslesen"), dann muss man das auch parallel programmieren. Sonst greift wieder der Dataflow… THINK DATAFLOW!

Hast du schon alle Links in meiner Signatur durchgearbeitet und verinnerlicht?


RE: Lokale Variablen in verschiedenen Schleifen - MaxxPowers - 22.04.2014 15:47

Guten Abend,

ich muss mich erst einmal bei euch entschuldigen, da habe ich doch tatsächliche das falsche Bild erwischt… sorry.

Jetzt habe ich das richtige Bild hochgeladen jetzt lässt sich hoffentlich nachvollziehen was ich eigentlich vor habe Wink

Ich glaube mein Fehler liegt wie schon beschrieben daran das ich die Schleifen nicht parallel laufen lasse ?

Mit freundlichen Grüßen

Maximilian Lachenmaier


[/quote]


RE: Lokale Variablen in verschiedenen Schleifen - GerdW - 22.04.2014 15:50

Hallo Maximilian,

auch das neue Bild ändert nichts an den vorangegangenen Erläuterungen: THINK DATAFLOW!

P.S.:
- Es gibt eine Aufräumfunktion!
- Es gibt einen StyleGuide in der LabVIEW-Hilfe!
- IndexArray kann man aufziehen und so mehrere Elemente mit einmal indizieren…
- IndexArray benötigt nicht notwendigerweise Konstanten an den Indexeingängen…
- Um ein Array mit einem Element zu erstellen kann man BuildArray verwenden…
- Um einen skalaren boolschen Wert in eine Zahl umzuwandeln gibt es die Funktion "bool to 0/1"…
- Es gibt eine "+1"-Funktion…


RE: Lokale Variablen in verschiedenen Schleifen - jg - 22.04.2014 15:56

Auch hier gilt das schon Gesagte bzw. Geschriebene: THINK Dataflow!
Sobald du innerhalb der Case-Struktur bist, wird "Sonde 17" nicht mehr ausgeführt, bis die FOR-Schleife beendet ist (während die FOR-Schleife läuft, wird Sonde 18 immer wieder ausgeführt). Beachte hierzu auch die unterschiedlichen Zeitstempel der "letzten Ausführung".

Bist du außerhalb der Case-Struktur, wird Sonde 17 ausgeführt, dafür aber nicht Sonde 18.

Gruß, Jens

P.S.: Was genau du vorhast, verstehe ich leider nicht. Denn zwecks Datenfluss besteht gar kein Problem. Im einfachsten Fall schreibst du sowohl an Stelle "17" und Stelle "18" direkt das Terminal "Boolesch" (1x per lokaler Variablen).

EDIT: Gerd war schneller, ist aber überraschenderweise derselben Meinung. Big Grin


RE: Lokale Variablen in verschiedenen Schleifen - MaxxPowers - 23.04.2014 11:16

Vielen Dank GerdW und Jens,

die Anmerkungen von Gerd habe ich jetzt mal in meinem Programm umgesetzt (s. Anhang)

Mir ist nur nicht ganz klar was sie mit

>>- Um ein Array mit einem Element zu erstellen kann man BuildArray verwenden…<<

meinten bzw. wo im Programm ich dies umsetzen kann.


Geplant war das ich bei beenden der For-Schleife auch die While –Schleife beende, das habe ich jetzt aber verworfen da es eigentlich für mein Messprozess nicht nötig ist Wink


Mit freundlichen Grüßen

Max


RE: Lokale Variablen in verschiedenen Schleifen - GerdW - 23.04.2014 13:02

Hallo Maxx,

gemeint war das hier:
[attachment=49466]