LabVIEWForum.de
Signalerzeugung aus 1D Array - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Signalerzeugung aus 1D Array (/Thread-Signalerzeugung-aus-1D-Array)

Seiten: 1 2 3


Signalerzeugung aus 1D Array - maxxillian - 02.08.2016 08:19

Hallo zusammen!

Da das Thema an ein anderes anschließt hier erst einmal der Link:
http://www.labviewforum.de/Thread-Profilerkennung-Darstellung?pid=184464#pid184464

Mittlerweise funktioniert die Darstellung des Toleranzfensters so wie ich es möchte (Bild1).
Da ich noch kein Sensor anschließen kann möchte ich gerne ein Testsignal (signal in) simulieren.

Im Forum habe ich schon gefunden wie Man ein Exel Dokument auslesen kann.
In dem Dokument befindet sich ein Testprofil mit 5000 Messwerten (Bild2).

Ich möchte das die Werte nacheinander ausgegeben werden und nicht alle als 1DArray aufeinmal.
Mit aktiven Indexing am Eingang der For-Schleife sollte das doch eigentlich funktionieren oder nicht?
Ich bekomme allerdings die Meldung das immer noch ein 1D(sub)Array in die Schleife übergeben wird.

Danke für eure Antworten!
Grüße Max


RE: Signalerzeugung aus 1D Array - wladimir s - 02.08.2016 08:34

Du liest ein 2D-Array ein, durch die Autoindexierung werden daraus dann 1D-Arrays.


RE: Signalerzeugung aus 1D Array - GerdW - 02.08.2016 08:35

Hallo Max,

öffne doch einfach mal die Kontexthilfe (Ctrl-H) und fahre dann mit der Maus auf den Draht, der zu deiner FOR-Loop führt: es wird dir angezeigt, dass das ein 2D-Array ist. (Was man übrigens auch am Draht selbst sieht/sehen sollte!) Durch die Autoindizierung wird daraus ein 1D-Array, was dir durch die Fehlermeldung bestätigt wird…

Lösung: Nach dem Einlesen der CSV-Datei einfach die gewünschte Zeile/Spalte indizieren!


RE: Signalerzeugung aus 1D Array - maxxillian - 03.08.2016 14:02

Ok dankeschön (:
Nächstes mal weiß ich das!

Ich habe es auch noch mal mit einer While-Schleife gemacht falls jemand sich in Zukunft nochmal dafür interessiert.

Also die Werte werden jetzt nacheinander ausgegeben.
Um daraus ein Signal zu erzeugen (roter Kasten) habe ich das "Formula Waveform VI" benutzt und als Formel einfach den Amplitudenwert "a" eingegeben.
Um das Vi starten zu können muss Man natürlich noch die obere und untere Grenze definieren.

Ein Problem habe ich aber noch.
Wie kann ich "dt" für das Signal bestimmen?
Verstehe nicht ganz den Unterschied zwischen der Frequenz und (frequenzy) und der Messrate (sampling rate Fs).


RE: Signalerzeugung aus 1D Array - MaddinMaddinsen - 04.08.2016 09:06

Moin maxxilian,

das dt bezeichnet die Zeit zwischen zwei Werten. Da du deiner Schleife eine minimale Schleifendauer von 1 ms hat kann man fast davon ausgehen, dass dein PC das auch in 1 ms schafft. Somit ist dein dt = 1 ms. Falls du dir nicht sicher bist, kannst du deine Schleifendauer auch immer wie in Abbildung 1 gezeigt abfragen.
Die Frequenz (frequenzy ) ist 2*Pi*f deines Signals, also das Reziproke der Periodendauer T des zu erzeugenden Signals.
Die Messrate gibt die bereitgestellten Werte pro Sekunde wieder. Im Default zustand (1000) gibt dein "Signal Generator" jede ms ein Signal frei.

hoffe das hilft dir weiter.

Grüße

Maddin


RE: Signalerzeugung aus 1D Array - GerdW - 04.08.2016 10:44

Hallo Max,

Waveforms erstellt man mit BuildWaveform:
[attachment=56415]
dt ist der zeitliche Abstand zwischen zwei Samples und damit das Reziproke der Abtastrate(=Frequenz)…


RE: Signalerzeugung aus 1D Array - Lucki - 05.08.2016 07:58

Zitat:Verstehe nicht ganz den Unterschied zwischen der Frequenz und (frequenzy) und der Messrate (sampling rate Fs).
Der Unterschied ist im Sprachgbrauch. "Frequenz" ist gleichbedeutend mit "Schwingungsperioden pro Sekunde" und wird bei periodischen analogen Signalen benutzt - beispielsweise bei Rundfunksendern. Bei periodischen Messungen wird hingegen von der "Rate" oder "Samplingrate" gesprochen. Wenn man beides durcheinander wirft, so ist das zwar sprachlich nicht korrekt, führt aber kaum zu Missverständnissen, so daß es letzlich egal ist was man sagt.


RE: Signalerzeugung aus 1D Array - maxxillian - 05.08.2016 10:37

Danke erst mal dafür!

Allerdings habe ich jetzt ein neues Problem.
Ich hab jetzt einmal versucht alles zusammen zu packen(Bild).
Wie kann ich das Signal "laufen" lassen?
Im Moment lasse ich es auf einem Craph anzeigen weil mir ein Chart immer nur den letzten Wert liefert. Ich möchte aber dass mir ein Wert nach dem anderen geliefert wird (wie bei einer INLINE Messung) und das Signal immer wieder von neu beginnt.
Ich habe schon versucht nur die Siganlerzeugung in verscheidene Schleifen zu packen aber das bringt nichts weil die daraufolgende Schleife natürlich erst beginnt wenn die erste Schleife durchgelaufen ist.

Ist es überhaupt möglich später beides (Toleranzfenster und durchlaufendes Sígnal) in einem Chart darzustellen?


RE: Signalerzeugung aus 1D Array - GerdW - 05.08.2016 10:52

Hallo Max,

Zitat:Wie kann ich das Signal "laufen" lassen? … Ich möchte aber dass mir ein Wert nach dem anderen geliefert wird (wie bei einer INLINE Messung) und das Signal immer wieder von neu beginnt.
Du willst also die Samples einzeln ausgeben/anzeigen? Dann musst du sie eben einzeln nacheinander ausgeben/anzeigen - und nicht die komplette Waveform mit einmal…

Zitat:Im Moment lasse ich es auf einem Craph anzeigen weil mir ein Chart immer nur den letzten Wert liefert.
Ein Chart zeigt die Historie an, ein Graph nur die gerade bereitgestellten Daten…

Zitat:Ich habe schon versucht nur die Siganlerzeugung in verscheidene Schleifen zu packen aber das bringt nichts weil die daraufolgende Schleife natürlich erst beginnt wenn die erste Schleife durchgelaufen ist.
THINK DATAFLOW: wenn du es so programmierst…

Zitat:Ist es überhaupt möglich später beides (Toleranzfenster und durchlaufendes Sígnal) in einem Chart darzustellen?
Ja. Einfach 3 Plots in deinem Chart darstellen. (Die Kontexthilfe zeigt, wie man das macht.)
Du musst dann eben zum jeweiligen Signal-Sample die passenden Toleranzwerte plotten…


RE: Signalerzeugung aus 1D Array - GerdW - 05.08.2016 11:36

Nachtrag, andere Möglichkeit:
Du verwendest keinen Chart, sondern einen Graph.
Deine beiden Toleranzkurven werden als feste/statische Plots dargestellt, nur dein Messsignal wird nach und nach aufgebaut…