LabVIEWForum.de - Signalverlauf darstellen

LabVIEWForum.de

Normale Version: Signalverlauf darstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
hallo Wolfgang,

Ich hab mal ein VI angehängt. Ich glaub das ist es was du wolltest.
Zur Funktion: Du musst aus jeder Messreihe erst ein Array erstellen. Diese Arrays fügst du zu einem Array zusammen, dass du dann an den Graph übergibst.
Der Waveform Graph erstellt seine y-Achse selbst. Ich hab mal noch einen xy-Graph hinzugefügt. Den wirst du wahrscheinlich nicht brauchen. Aber egal. Bei dem musst du jede Messreihe zunächst mit seinen Zeit-Werten (x-Achse) verknüpfen und dann alle Messreihen zu einem Array zusammenfügen. Damit kannst du deinen acht Messreihen verschiedene Zeitbasen geben.
Ich hoff damit kommst du weiter.
Jens
' schrieb:hallo Wolfgang,

Ich hab mal ein VI angehängt. Ich glaub das ist es was du wolltest.
Zur Funktion: Du musst aus jeder Messreihe erst ein Array erstellen. Diese Arrays fügst du zu einem Array zusammen, dass du dann an den Graph übergibst.
Der Waveform Graph erstellt seine y-Achse selbst. Ich hab mal noch einen xy-Graph hinzugefügt. Den wirst du wahrscheinlich nicht brauchen. Aber egal. Bei dem musst du jede Messreihe zunächst mit seinen Zeit-Werten (x-Achse) verknüpfen und dann alle Messreihen zu einem Array zusammenfügen. Damit kannst du deinen acht Messreihen verschiedene Zeitbasen geben.
Ich hoff damit kommst du weiter.
Jens

Toll!

Vielen, vielen Dank! Ich glaube, damit komme ich weiter. Top1

Ich melde mich nochmal.

Gruß

Wolfgang
Der erste Erfolg ist zu verzeichnen!

Aus jedem Wert habe ich ein Array erstellt mit einem Null-Wert.

Die Einzelwerte habe ich aus dem bestehenden Array extrahiert, verknüpft, und dann wieder zu einem Array zusammengefügt. Ich glaube allerdings, das muß viel einfacher und elegenter gehen. Meine Experimente haben leider zu keinem vernünftigen Ergebnis geführt.

Schließlich produziert die FOR-Schleife ein Array, nur dieses Array repräsentiert aufeinanderfolgende Daten, und nicht parallel anliegende Daten.

Es gibt eine Funktion: "Array umformen". Kann diese Funktion, was ich suche?

Vorerst mal ein schönes Wochenende!

Wolfgang

Lv85_img
Guten Morgen Wolfgang,
Hab mir dein VI grad mal angeschaut und nix verstanden!!!
Bitte tu mir einen Gefallen und versuch in Zukunft mit möglichst geraden Linien zu programmieren. Das macht es für alle ein wenig leichter.
Ich hab mal ein bißchen Ordnung rein gebracht. Wenn ich dich richtig verstanden hab, sieht es im Momant so aus, dass alles funktioniert aber du den Code zu kompliziert und aufgeblasen findest. Ich hab mal ein VI nach der while-Schleife eingefügt (aber noch nicht angeschlossen). ich denke damit müsstest du es hinbekommen.
Viel Erfolg
Jens
' schrieb:Guten Morgen Wolfgang,
Hab mir dein VI grad mal angeschaut und nix verstanden!!!
Bitte tu mir einen Gefallen und versuch in Zukunft mit möglichst geraden Linien zu programmieren. Das macht es für alle ein wenig leichter.
Ich hab mal ein bißchen Ordnung rein gebracht. Wenn ich dich richtig verstanden hab, sieht es im Momant so aus, dass alles funktioniert aber du den Code zu kompliziert und aufgeblasen findest. Ich hab mal ein VI nach der while-Schleife eingefügt (aber noch nicht angeschlossen). ich denke damit müsstest du es hinbekommen.
Viel Erfolg
Jens
Tut mir leid, wenn das vi nicht so leicht einzusehen war. Aber mit diesem Problem muß man offensichtlich dreimal um die Ecke denken, um zum Ziel zu kommen.

Ich möchte eigentlich nicht das Array in Einzelelemente zerlegen müssen, um es anschließend nach meinem bedarf wieder als Array zusammenzufügen. Ich denke, daß ein Array so erzeugt werden können muß, wie man es braucht

Ich habe weitergeforscht, um eine einfach darzustellende Lösung zu finden.

Dabei ist die Aufgabe einfach:

Ich habe ein Array, bestehend aus a, b, c (Der Einfachheit halber hier nur drei Variablen)

Im array werden die Werte indiziert: a(1), b(1), c(1)
Danach erfolgt ein weiterer Satz an Werten: a(2), b(2,) c(2)

Die Kurve auf der Grafik soll mir zeigen: Alle Werte von a(n), als zweite Linie alle Werte von b(n), als dritte Linie alle werte von c(n) usw.

Was LabVIEW aber interpretiert:
erster Satz: a(1), a(2), a(3)
zweiter Satz: b(1), b(2), b(3)

Entsprechnd ist der grafische Output Mist. Ich bekomme beliebig viele Kurven mit endlicher Länge, die aber jeweils alle Meßstellen als Folge anzeigen. (Bild) Mit meinen Testsignalen erwarte ich mehrere waagerechte Linien.

Hat jemand eine Idee, wie ein solches Array dem Bedarf entsprechend angelegt werden kann?

Gruß

Wolfgang
Lv85_img
' schrieb:Hat jemand eine Idee, wie ein solches Array dem Bedarf entsprechend angelegt werden kann?
[attachment=15068] lv_85


Ein bisschen älter, aber als Tip:
[attachment=15069]
Als kleine Ergänzung hab ich mal ein paar Lösungen zusammengefasst. Sinnvoll sind, denke ich, aber nur die zweite und dritte Lösung.
Bei der ersten mit einem waveform chart muss der Speicherbedarf fest vorgegeben werden.
Die letzte Lösung beinhaltet etwas viel Code.
Jens
' schrieb:Als kleine Ergänzung hab ich mal ein paar Lösungen zusammengefasst. Sinnvoll sind, denke ich, aber nur die zweite und dritte Lösung.
Bei der ersten mit einem waveform chart muss der Speicherbedarf fest vorgegeben werden.
Die letzte Lösung beinhaltet etwas viel Code.
Jens
Vielen herzlichen Dank für die Hilfe!

Da haben sich einige wirklich ins Zeug gelegt, um hier zu helfen!

Die Lösung2 ist das, was ich gesucht hatte. Ich habe mir alle möglichen Funktionen über Arrays angesehen. Aber "Array transponieren" hatte ich mir nicht vorstellen können, daß das die richtige Lösung ist. Ich kenne Transponieren aus der Musik, da ist der Vorgang ganz anders, jedenfalls nicht analog zu derm hier angewendeten.

Bleibt nur noch, warum diese Funktion zweimal eingesetzt wird, einmal vor Array erstellen, einmal im angehängten Array. Ich hätte dieses Teil nur einmal eingesetzt, und dann festgestellt, daß das nicht geht.

Nochmals vielen Dank!Dance

Wolfgang
' schrieb:Ich kenne Transponieren aus der Musik, da ist der Vorgang ganz anders, jedenfalls nicht analog zu derm hier angewendeten.
http://de.wikipedia.org/wiki/Matrix_(Mathe...ponierte_Matrix

' schrieb:Bleibt nur noch, warum diese Funktion zweimal eingesetzt wird, einmal vor Array erstellen, einmal im angehängten Array.

Das liegt daran, das LV standardmäßig an einem 2D-Array ("Matrix") neue Elemente in einer neuen Zeile hinzufügt. Bei dir ist die Anzahl der Zeilen = Anzahl der Signalquellen, d.h. neue Werte müssen je Quelle zu neuen Spalten führen. Also muss LV ausgetrickst werden: Zeilen mit Spalten vertauschen (=Transponieren) - neue Signale anhängen - wieder Transponieren...
Seiten: 1 2
Referenz-URLs