Unternehmen Veranstaltungen Academic Community Support Lösungen Online-Katalog Kontakt MyNI

Durchleiten von Array-Elementen durch Schleifen

LabVIEW-Hilfe 2011

Ausgabe: June 2011

Artikelnummer: 371361H-0113

»Angaben zum Produkt anzeigen

Wenn ein Array mit einer For-Schleife oder While-Schleife verbunden wird, kann mit Hilfe der automatischen Indizierung jedes Element aus dem Array ausgelesen und verarbeitet werden. Wenn Sie ein Array aus einem externen Knoten mit einem Eingangstunnel am Schleifenrand verbinden und für diesen Eingangstunnel die Auto-Indizierung aktivieren, werden die einzelnen Elemente des Arrays (angefangen beim ersten) nacheinander an die Schleife übergeben.

Gehen Sie zum Durchleiten von Array-Elementen durch eine Schleife folgendermaßen vor:

  1. Klicken Sie mit der rechten Maustaste auf den Rand der Schleife.
  2. Wählen Sie aus dem Kontextmenü Indizierung deaktivieren, um die Auto-Indizierung zu deaktivieren. Durch die Auto-Indizierung werden die Array-Elemente durch die Schleife geleitet und die Schleife gibt ein Array mit derselben Elementanzahl aus.

    Durch Anklicken von Indizierung aktivieren aktivieren Sie die Auto-Indizierung. Mit ihrer Hilfe werden die Array-Elemente weitergeleitet, aber in Form eines Elements ausgegeben.
    Hinweis Hinweis  Um die Ausgabe von Standardwerten bei einer inaktiven Schleife zu vermeiden, aktivieren Sie bei allen For-Schleifen mit Ausgangstunneln die Auto-Indizierung.

Bei indiziertem Ausgangstunnel empfängt das Ausgangs-Array bei jeder Schleifeniteration ein neues Element. Daher entsprechen automatisch indizierte Ausgangs-Arrays in der Größe immer der Anzahl der Iterationen. Wenn die Schleife beispielsweise zehnmal ausgeführt wird, hat das Ausgangs-Array zehn Elemente. Bei deaktivierter Auto-Indizierung für einen Ausgabetunnel wird nur das Element der letzten Iteration der Schleife an den nächsten Knoten im Blockdiagramm übergeben.

Bei aktivierter Auto-Indizierung wird im entsprechenden Ausgangstunnel der Schleife eine Klammer angezeigt. Die Dicke der Verbindung zwischen dem Ausgabetunnel und dem nächsten Knoten zeigt auch an, ob die Schleife mit Auto-Indizierung arbeitet. Mit Auto-Indizierung ist die Verbindung dicker, denn die Verbindung enthält ein Array und keinen Skalarwert.

Hinweis Hinweis  Die Schleife indiziert Skalarelemente aus 1D-Arrays, 1D-Arrays aus 2D-Arrays und so weiter. Das Gegenteil geschieht an Ausgabetunneln. Skalarelemente werden sequenziell zu 1D-Arrays, 1D-Arrays zu 2D-Arrays und so weiter zusammengefasst.

Beispiele zum Erstellen von Arrays durch Deaktivieren der Auto-Indizierung finden Sie in der Bibliothek labview\examples\general\arrays.llb.

Automatisches Festlegen der Iterationsanzahl mittels Auto-Indizierung

Wenn Sie die Auto-Indizierung für ein mit einer For-Schleife verbundenes Array aktivieren, stellt LabVIEW den Zähleranschluss entsprechend der Array-Größe ein, so dass Sie den Zähleranschluss nicht verbinden müssen. Da Arrays mit For-Schleifen elementweise verarbeitet werden können, wird die Auto-Indizierung per Voreinstellung für jedes Array aktiviert, das Sie mit einer For-Schleife verbinden. Wenn Arrays nicht elementweise verarbeitet werden müssen, kann die Auto-Indizierung deaktiviert werden.

Wenn Sie für mehrere Tunnel die Auto-Indizierung aktivieren und den Zählanschluss mit einem Wert verbinden, richtet sich die Iterationsanzahl nach dem kleinsten Wert. Wenn beispielsweise an der Schleife zwei automatisch indizierte Arrays anliegen (eines davon mit zehn und das andere mit 20 Elementen) und Sie den Zählanschluss mit dem Wert 15 verbinden, wird die Schleife trotz dieses Werts nur zehnmal ausgeführt. Während dieser Zeit werden alle Elemente des ersten Arrays und die ersten zehn Elemente des zweiten Arrays indiziert. Ein weiteres Beispiel ist die Darstellung von Daten aus zwei Quellen in einem Graphen. Wenn nur die ersten 100 Elemente dargestellt werden sollen, verbinden Sie den Zähleranschluss mit dem Wert 100. Wenn eine der Datenquellen nur 50 Elemente umfasst, wird die Schleife 50 Mal ausgeführt und es werden nur die ersten 50 Elemente indiziert. Die Größe des Arrays wird mit der Funktion Array-Größe eingestellt.

Auto-Indizieren von While-Schleifen

Wenn Sie die Auto-Indizierung für ein Array aktivieren, das an eine While-Schleife übergeben wird, indiziert die While-Schleife das Array genau wie bei einer For-Schleife. Allerdings ist die Anzahl der von einer While-Schleife ausgeführten Iterationen nicht durch die Größe des Arrays beschränkt, da die While-Schleife bis zum Erfüllen einer Bedingung wiederholt wird. Wenn eine While-Schleife über das Ende des Eingangs-Arrays hinaus indiziert wird, dann wird der Standardwert des Elementtyps des Arrays an die Schleife übergeben. Sie können verhindern, dass der Standardwert an die While-Schleife übergeben wird, indem Sie die Funktion "Array-Größe" verwenden. Die Funktion "Array-Größe" gibt an, wie viele Elemente das Array enthält. Richten Sie die While-Schleife so ein, dass die Ausführung beendet wird, wenn die Iterationenanzahl der Größe des Arrays entspricht.

Die Auto-Indizierung für While-Schleifen ist per Voreinstellung deaktiviert.

Achtung  Da Sie die Größe eines Ausgangs-Arrays nicht im Vorfeld bestimmen können, ist das Aktivieren der Auto-Indizierung für die Ausgabe einer For-Schleife sinnvoller als für die einer While-Schleife. Bei zu vielen Iterationen kommt es jedoch möglicherweise zu Speicherplatzmangel.

 

Ihr Feedback! schlecht Schlecht  |  Ausgezeichnet ausgezeichnet   Ja Nein
 Qualität der Informationen? 
 Haben Sie die gesuchten Informationen erhalten? 
Kommentar hinzufügen 1 2 3 4 5 Senden