LabVIEWForum.de - Schleifenbedingung

LabVIEWForum.de

Normale Version: Schleifenbedingung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Zsm,

ich möchte gern ein Messwerte mittels mehrer Vergleiche ordnen.

Das VI soll ein Array auslesen und im Anschluss abhängig von einem Zeitintervall (hier: 10-24) und dem in diesem Intervall auftretenden Maximalwert die anderen in dieser Zeile befindlichen Messwerte in ein neues Array schreiben.

Problem bereitet mir die mehrfache Erfüllung meiner Bedingungen.
Wenn ich den Maximalwertvergleich vor der For-Schleife ausführe gibt er mir genau den dazugehörigen Zeitwert aus.
Setze ich den Vergleich in die Schleife habe ich das Problem der unterschliedlich miteinander verbunden Datentypen (Bild).

Woran liegt das?

Gruß
psypher
Hallo pys,

bist du dir sicher dass du deine beiden Whileschleifen direkt beenden möchtest?
Warum eigentlich 2 SChleifen?

Du solltest dich mit dem "Dataflow" befassen.

Keep on, Ralf aka RMR
Wie kommen denn deine Messdaten an? Sind die alle auf einmal vorhanden (bereits vorher aufgenommen und wieder abgerufen) oder
kommen die während der Filterung immer neu an?
Im ersten Fall funktioniert deine UND Verknüpfung in der rechten FOR Schleife (du hast bloss den Vergleichsmodus falsch eingestellt:
Elementsätze vergleichen statt Elemente vergleichen), im zweiten Fall musst du die Abfragen aufteilen und
zuerst die zeitlich passenden Messwerte filtern und an ein Array anhängen,
dann die Messwerte nach Größe Filtern.
In Deinem VI ist eine Abfrage für ein Array, die macht keinen Sinn. Die wird immer nur dann TRUE sein wenn alle Inhalte des Arrays gleich sind. Das hat zur Folge, dass die For Schleife kein Ergebnis bringt, da der Ausgang die Bedingung TRUE benötigt um das Ausgangs - Array zu füllen.
Die Abfrage mit dem "ist gleich" bringt als Ergebnis ein Boolen Array. Die Und - Verknüpfung danach auch. Daher die gestrichelte Linie zum Tunnel. Der Tunnelmodus kann nur ein Boolen kein Boolen Array.
Ein wenig Offtopic2
Wozu brauchst du eine For-Loop, die nur 1x durchläuft? Rube-Goldberg lässt grüßen.

Gruß, Jens
Hallo Zsm,

danke für Eure Rückmeldungen.

ich habe den Datenfluss angepasst und habe jetzt meinen zeitlichen Intervall (10-24) samt der dazugehörigen Werte.

Innerhalb dieses zeitl. intervalls möchte ich nun gern die Zeile finden die diesen den definierten maximalwert enthält und in ein 1D-Array schreiben.

Wie könnte ich am besten vorgehen.

Danke und Grüße
psy
Hallo psypher,

Zitat:ich habe den Datenfluss angepasst
Genau.
Jetzt verwendest du While-Loops, die genau einmal durchlaufen. Wozu genau sind die da?

Zitat:Innerhalb dieses zeitl. intervalls möchte ich nun gern die Zeile finden die diesen den definierten maximalwert enthält und in ein 1D-Array schreiben.
Alle Zeilen durchschauen und den MAX-Wert suchen. Dann die Zeile mit dem MAX-Wert indizieren und speichern…
Hallo GerdW,

Zitat:ich habe den Datenfluss angepasst
Genau.
Jetzt verwendest du While-Loops, die genau einmal durchlaufen. Wozu genau sind die da?

Eingang: Eine CSV eines SPS Trace mit Zeit, Drehwinkel und Drehmomenten.
Anschließend Umrechnung in Kräfte. Zu unterschiedlichen Zeitpunkten treten unterschiedliche Maximalwerte der Drehmomente auf.

Ich möchte mittels der For-Schleife diese zeitlichen Intervalle festlegen und parallel alle sontigen Zeilenwerte in diesem Intervall ausgeben (Array).
Im Anschluss soll nach dém maximalen Drehmoment in diesem Intervall gesucht werden (Max. Wert2).

Das klappt jetzt soweitBig Grin.

Folgender Gedanke:

Ich nutze den Maximalwert um die Zeile innerhalb des intervalls zu finden die diesen Wert enthält.
Hierfür wollte ich durch einen Vergleich den "Max. Wert2" im "Array" suchen und dann die entsprechende Zeile ausgeben.

Klingt doch simpel, oder?!
Leider möchte LV nicht so wie ich will.

Gruß
Anniemacht_2
Hallo psypher,

du willst wissen, welche Zeile das Maximum enthält?
Dann nimmt man die ArrayMinMax-Funktion:
[attachment=55631]
Seiten: 1 2
Referenz-URLs