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 bin komplett unerfahren mit LabVIEW und hoffe, ihr könnt mir weiter helfen.
Ich habe folgendes Problem:
Ich möchte automatisch ein Array befüllen.
Der Benutzer gibt zwei (Start- bzw. End-) Koordinaten (x- und y- Wert) und eine Schrittweite vor, womit ein Viereck mit zahlreichen Punkten generiert wird.
Das Array soll dann die Koordinaten sämtlicher Punkte enthalten.
Das beste wird sein, ich erläutere es an einem Beispiel (Werte in mm):
Startpunkt: (0/0)
Endpunkt: (9/9)
Schrittweite: 3
Das Array soll folgende Werte beinhalten (1. Spalte: Index; 2. Spalte: x-Koordinate; 3. Spalte: y-Koordinate):
Anbei noch eine Skizze um die Reihenfolge der Punkte noch zu verdeutlichen.
Noch zu sagen wäre, dass das Rechteck nicht zwangsweise quadratisch sein muss und der vom Benutzer eingegebene Endpunkt nicht zwangsweise als letztes im Array ist.
nach welchen Kriterien wird denn der Verlauf des Weges defniert?
Ich könnte in deinem Beispiel ja auch einfach drei Schritte nach rechts und dann drei Schritte nach unten gehen.
Was soll passieren, wenn ich bei einer Schrittweite von 3 von (0/0) nach (4/0) möchte?
Und rein interessehalber: Was ist denn der Hintergrund dazu?
der Hintergrund ganz knapp erläutert: automatisiertes Abtasten des Messfeldes in einem Windkanal um Messdaten einer Hitzdrahtsonde aufzunehmen.
Das Kriterium, warum der Weg genauso abgefahren werden soll, sollte hiermit klar sein: Die "Schlangenlinien" sind deutlich schneller als Zeile für Zeile abzufahren.
Den Punkt (4/0) gäbe es bei einer Schrittweite von 3 gar nicht.
Zunächst wird die Anzahl der Stepps berechnet.
Dann wird der erste Y Wert genommen (äußere While Schleife) und dazu die gesamten X Werte berechnet (innere While Schleife).
Mit jeder Änderung des Y Wertes wird die Richtung geändert, dass wird mit einem Boolen Wert überwacht.
Für das Hochzählen wird der Schleifenindex mit dem Stepp multipliziert.
Für das Runterzählen wird vom Maximalwert (X*X) die Multiplikation von Index und Stepp abgezogen.
Mit dem Indizierten Ausgang der inneren Schleife wird ein 2 dimensionales Array erstellt.
Mit dem Verknüpfungsausgang der äußeren Schleife werden die Arrays aneinander gehängt.
Ich benutze zur Erzeugung von Arrays mit gleichmäßig ansteigenden/absteigenden Elementen gern die Rampenfunktion. Hier mal ein Beispiel. Freddys Lösung ist aber genau so gut.
Im Laufe der nächsten Woche werde Ich mir das dann mal anschauen und hoffe, dass Ich zu einer Lösung komme.
Zu Lucki: könntest du ebenfalls wie Freddy ein paar Worte zu deiner Lösung hinzufügen?
Gruß
Michael
05.06.2017, 09:44 (Dieser Beitrag wurde zuletzt bearbeitet: 06.06.2017 12:49 von Lucki.)
Ich dächte, das wäre nicht mehr nötig, weil das Freddy schon getan, und diese Lösung ist im Prinzip identisch. Unterschied: Es wird bei mir nicht alles in den beiden verschachtelten Schleifen gemacht, sondern das Programm beteht aus zwei Abschnitten. Im ersten Abschnitt werden nur die beiden X- und Y-1D-Arrays erzeugt, aus deren Elementen sich das zu erzeugende 2D-Array zusammensetzt. Im zweiten Abschnitt wird dann mit diesen Elementen das 2D-Array wie gewünscht zusammengestückelt
Der Vorteil meines Programms ist lediglich, dass zum Erstellen und Verstehen etwas weniger Gehirnakrobatik erforderlich ist.