Arrays
- Aktualisiert2025-08-27
- 8 Minute(n) Lesezeit
Ein Array besteht aus einzelnen Elementen und hat verschiedene Dimensionen. Die Elemente sind die Werte, aus denen sich das Array zusammensetzt. Eine Dimension definiert die Länge, Höhe oder Tiefe eines Arrays. Ein Array kann eine oder mehrere Dimensionen und bei einem entsprechend großen Speicher bis zu (231)–1 Elemente pro Dimension enthalten.
Arrays können Zahlen, boolesche Werte, Pfade, Strings, Signalverläufe und Cluster enthalten. Sie bieten sich besonders bei ähnlichen Daten oder sich wiederholenden Berechnungen an. Arrays eignen sich nicht nur zum Speichern von Signalverläufen – auch die Ausgangswerte von Schleifen können in Arrays gespeichert werden. In diesem Fall wird bei jeder Schleifeniteration ein neues Array-Element erzeugt. Sie können Daten aus Arrays exportieren (z. B. nach Microsoft Excel). Zur Anzeige der verfügbaren Optionen für den Export klicken Sie ein Array mit der rechten Maustaste an und wählen Sie Exportieren aus dem Kontextmenü aus.
Einschränkungen
Arrays können nicht aus bestehenden Arrays erzeugt werden. Sie können jedoch ein mehrdimensionales Array verwenden oder ein Array aus Clustern erzeugen, wobei jeder Cluster ein oder mehrere Arrays enthält. Ebenso wenig dürfen Arrays Unterpanels, Registerkarten, .NET- oder ActiveX-Elemente, Diagramme oder XY-Graphen mit mehreren Plots oder mehrspaltige Listenfelder enthalten.
Indizes
Um ein bestimmtes Element in einem Array zu finden, muss ein Index pro Dimension vorhanden sein. In LabVIEW können Sie mit Hilfe von Indizes Elemente, Zeilen, Spalten und Seiten aus einem Array im Blockdiagramm abrufen.
Beispiele für Arrays
Ein Beispiel für ein einfaches Array ist ein Text-Array, in dem die acht Planeten unseres Sonnensystems aufgeführt sind. Dazu wird ein aus Strings bestehendes 1D-Array mit acht Elementen verwendet.
Array-Elemente unterliegen einer Ordnung. Bei einem Array wird ein Index verwendet, sodass Sie auf jedes Element direkt zugreifen können. Der Index liegt im Bereich von 0 bis n – 1, wobei n für die Anzahl der Elemente im Array steht. Zum Beispiel steht n = 8 für die acht Planeten. Der Index umfasst den Bereich 0 bis 7. Die Erde ist der dritte Planet und hat somit den Index 2.
Ein weiteres Beispiel für ein Array sind die Samples eines Signalverlaufs, die in einem numerischen Array abgelegt sind – jede Zelle enthält ein Sample pro Sample-Zeitpunkt (vgl. Abbildung).
Ein etwas komplexeres Beispiel für ein Array ist ein Graph. Graphen setzen sich aus mehreren Punkten zusammen, wobei jeder Punkt ein Cluster aus einer x- und einer y-Koordinate ist (vgl. folgende Abbildung).
Die bisherigen Beispiele gelten jedoch nur für 1D-Arrays. Bei einem 2D-Array werden die Elemente in einem Raster gespeichert. Dazu wird allerdings ein Spalten- und ein Zeilenindex zum Orten eines Elements benötigt, der jeweils bei 0 beginnt. In der folgenden Abbildung sehen Sie ein 2D-Array mit 8 Zeilen und 8 Spalten. Es enthält 8 × 8 = 64 Elemente.
Ein Schachbrett enthält zum Beispiel acht Spalten und acht Zeilen für insgesamt 64 Positionen. Jede Position kann leer sein oder eine Schachfigur enthalten. Somit ließe sich ein Schachbrett beispielsweise als 2D-Array aus Strings darstellen, wobei jeder String der Name der Figur ist, die die entsprechende Position auf dem Schachbrett einnimmt, bzw. ein leerer String, wenn die Position leer ist.
Sie können die vorhergehenden Beispiele für 1D-Arrays zweidimensional machen, indem Sie dem Array eine Zeile hinzufügen. In der folgenden Abbildung sehen Sie mehrere Signalverläufe, die als 2D-Array aus Zahlen dargestellt werden. Mit dem Zeilenindex wird der Signalverlauf gewählt, mit dem Spaltenindex ein Punkt im Signalverlauf.
Beispiele zur Verwendung von Arrays finden Sie in der Projektdatei labview\examples\Arrays\Arrays.lvproj. Nach ähnlichen Beispielen suchen
Erstellen von Array-Bedien- und Anzeigeelementen und -Konstanten
Zur Erzeugung eines Array-Elements fügen Sie einen Array-Container (vgl. Abbildung) in das Frontpanel ein und ziehen ein Datenobjekt oder Element in den Container. Dabei kann es sich um ein numerisches oder boolesches Element oder ein, String-, Pfad-, Referenz- oder Cluster-Element handeln.
Die Größe des Array-Containers passt sich dem neu eingefügten Objekt an.
Zum Erstellen einer Array-Konstante im Blockdiagramm wählen Sie eine solche aus der Palette Funktionen aus, fügen Sie einen Array-Container in das Blockdiagramm ein und ziehen Sie einen String, einen Cluster oder eine numerische oder boolesche Konstante hinein. Eine Array-Konstante kann auch als Basis für den Vergleich mit einem anderen Array oder zum Speichern von Konstanten dienen.
Erstellen von mehrdimensionalen Arrays
Zum Hinzufügen einer Dimension klicken Sie mit der rechten Maustaste auf die Indexanzeige und wählen Sie aus dem Kontextmenü die Option Dimension hinzufügen aus. Es ist aber auch möglich, die Indexanzeige durch Aufziehen auf die gewünschte Dimensionsanzahl zu erweitern. Klicken Sie dazu mit der rechten Maustaste auf die Indexanzeige und wählen Sie im Kontextmenü die Option Dimension entfernen aus, um eine Dimension nach der anderen zu löschen. Zum Löschen von Dimensionen können Sie auch die Größe der Indexanzeige verändern.
Um ein bestimmtes Element auf dem Frontpanel anzuzeigen, geben Sie entweder die Indexnummer in die Indexanzeige ein oder verwenden Sie die Pfeile der Indexanzeige.
Ein 2D-Array enthält zum Beispiel Zeilen und Spalten. Im folgenden Frontpanel ist der Zeilenindex (die obere Anzeige mit den zwei Feldern links) und der Spaltenindex (die untere Anzeige) zu sehen. Rechts daneben erscheint der Zelleninhalt an der angegebenen Position. Im folgenden Frontpanel sehen Sie, dass der Wert an Zeile 6 und Spalte 13 66 lautet.
| 1 | Zeilenindex |
| 2 | Spaltenindex |
| 3 | Wert an Zeile/Spalte |
Die Nummerierung von Zeilen und Spalten fängt immer bei 0 an. Das heißt, die erste Spalte hat immer die Nummer 0, die zweite Spalte 1 und so weiter. Wird die Indexanzeige des folgenden Arrays auf Zeile 1, Spalte 2 geändert, wird der Wert 6 angezeigt.
| 0 | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 |
Wenn Sie versuchen, eine Spalte oder eine Zeile anzuzeigen, die außerhalb des Bereichs der Array-Dimensionen liegt, wird das Array-Bedienelement abgeblendet, um anzuzeigen, dass kein Wert definiert ist. Außerdem wird der Standardwert des jeweiligen Datentyps angezeigt. Der Standardwert des Datentyps hängt vom Datentyp des Arrays ab.
Mit dem Positionierwerkzeug lassen sich mehrere Zeilen oder Spalten anzeigen.
Zum Navigieren hin zu einem bestimmten Element können Sie auch die Bildlaufleisten eines Arrays verwenden. Klicken Sie mit der rechten Maustaste auf ein Array und wählen Sie aus dem Kontextmenü die Option Sichtbare Objekte»Vertikale Bildlaufleiste oder Sichtbare Objekte»Horizontale Bildlaufleiste zur Anzeige der Bildlaufleisten eines Arrays aus.
| Hinweis Die Array-Funktionen in LabVIEW fragen den Array-Inhalt zeilenweise ab. Bei einem 2D-Array ist die Zeile der erste Index. Die Spalte ist der letzte Index. Bei Arrays mit einer größeren Anzahl von Dimensionen wird der Spalte nach wie vor der letzte Index zugewiesen. Alle zusätzlichen Dimensionen sind höherwertig und werden an den Anfang angefügt. Daher ist "Vol." der erste Index, gefolgt von "Seite", "Zeile" und "Spalte". Hierbei handelt es sich lediglich um Indexbezeichner. |
Array-Funktionen
Verwenden Sie die Array-Funktionen zum Erzeugen und Bearbeiten von Arrays. Damit sind beispielsweise folgende Arbeitsschritte möglich:
- Extrahieren von einzelnen Datenelementen aus einem Array.
- Einfügen, Löschen oder Ersetzen von Datenelementen in einem Array.
- Teilen eines Arrays.
Verwenden Sie zum programmatischen Erstellen von Arrays die Funktion Array erstellen. Zum Erstellen eines Arrays können Sie auch eine Schleife verwenden.
Weitere Informationen zum Minimieren des Speicherplatzes beim Verwenden von Array-Funktionen in einer Schleife finden Sie in der LabVIEW Style Checklist.
Automatisches Ändern der Größe von Array-Funktionen
Bei den Funktionen Array indizieren, Teil-Array ersetzen, In Array einfügen, Aus Array entfernen und Teil-Array wird die Größe automatisch an die Dimensionen des Eingangs-Arrays angepasst. Wenn Sie beispielsweise ein 1D-Array mit einer dieser Funktionen verbinden, hat die Funktion einen einzelnen Indexeingang. Wenn Sie ein 2D-Array mit der gleichen Funktion verbinden, werden zwei Indexeingänge angezeigt, und zwar einer für die Zeile und einer für die Spalte.
Sie können mit diesen Funktionen auch auf mehrere Elemente oder Teil-Arrays (Zeile, Spalte oder Seite) zugreifen, indem Sie die Größe der Funktion mit Hilfe des Positionierwerkzeugs manuell ändern. Die Schrittweite, mit der die Funktionen erweitert werden können, richtet sich nach den Dimensionen des Arrays, das mit der Funktion verbunden wird. Wenn Sie ein 1D-Array mit einer dieser Funktionen verbinden, wird die Funktion um einen Indexeingang erweitert. Wenn Sie mit der gleichen Funktion ein 2D-Array verbinden, wird die Funktion um zwei Indexeingänge erweitert, und zwar einen für die Zeile und einen für die Spalte.
Je nachdem, an welchen Indexeingängen ein Wert anliegt, ändert sich das Teil-Array, das Sie abfragen oder ändern möchten. Wenn der Eingang einer Funktion des Typs "Array indizieren" ein 2D-Array ist und Sie nur die Zeileneingabe verbinden, wird eine vollständige 1D-Zeile des Arrays entnommen. Wenn Sie nur die Spalteneingabe verbinden, wird eine vollständige 1D-Spalte des Arrays extrahiert. Wenn Sie sowohl den Zeileneingang als auch den Spalteneingang verbinden, extrahieren Sie ein einzelnes Element des Arrays. Jede Eingangsgruppe ist von den anderen unabhängig und kann auf einen beliebigen Teil jeder Dimension des Arrays zugreifen.
Im folgenden Blockdiagramm werden mit Hilfe der Funktion "Array indizieren" eine Zeile und ein Element aus einem 2D-Array entnommen.
Um mehrere aufeinanderfolgende Werte eines Arrays abzufragen, erweitern Sie die Funktion "Array indizieren" um drei Felder, verbinden jedoch mit den Index-Eingängen keine Werte. Um beispielsweise die erste, zweite und dritte Zeile eines 2D-Arrays auszulesen, ziehen Sie die Funktion "Array indizieren" um drei Felder auf und verbinden jeden Teil-Array-Ausgang mit Anzeigeelementen für 1D-Arrays.
Standarddaten in Arrays
Wenn für ein Array ein Index verwendet wird, der außerhalb der Array-Grenzen liegt, wird für die Array-Elemente der Standardwert ausgegeben. Die Größe eines Arrays kann mit der Funktion Array-Größe festgelegt werden.
Ein Index kann aus verschiedenen Gründen außerhalb des gültigen Bereichs liegen. So kann es zum Beispiel vorkommen, dass das Array mit einer While-Schleife versehentlich über das letzte Element hinaus indiziert wird, dass am Index-Eingang der Funktion "Array indizieren" ein zu großer Wert angegeben wird oder dass an die Funktion "Array indizieren" ein leeres Array übergeben wird.