INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Signalerzeugung aus 1D Array



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!

29.08.2016, 06:50 (Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2016 06:51 von GerdW.)
Beitrag #21

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Signalerzeugung aus 1D Array
Hallo Max,

Zitat:Wenn ich das Signal immer zurückführe wird es igrendwann unendlich lang.
Ja. THINK DATAFLOW!
Du hängst Daten immer wieder hinten an, das Signal wird dadurch natürlich länger…

Zitat:Dadurch kann ich das Programm nicht anhalten und wieder starten ohne alles zu schließen da das Signal nie vom neuen anfängt.
Warum das? Na klar kannst du neu starten und das Signal "wieder von vorn" anfangen lassen!
Du musst nur `THINK DATAFLOW beachten - und das Signal Schieberegister beim Neustart eben auch mal wieder initialisieren!

Zitat:Wenn ich die zurückführung weglasse und das Signal ohne For-Schleife dirket erzeuge wird es richtig eingelesen allerdings alles sofort aufeinmal.
Genau so hast du es programmiert: das Signal wird komplett eingelesen und komplett angezeigt/angehangen…

Zitat:In Realität kommen die Werte doch auch nur alle nancheinander. (InLine)
Welche Realität? Hmm
In der einen Schleife liest du das Signal komplett ein und stellst es komplett mit einmal dar.
In der anderen Schleife liest du das Signal komplett ein und stellst es sampleweise dar…

Zitat:Wenn ich die Schleife mit 100ms to wait (dt 0,1) programmiere bringt das auch nichts weil direkt beim ersten Umlauf alle Daten eingelesen werden.
Welche Schleife? Welches Wait?
Die äußere While-Schleife liest die Daten komplett ein, die innere FOR-Loop stellt sie sampleweise dar…

Zitat:Also nochmal zur eigentlichen Frage: Wie kann ich ein Sensorsignal simulieren?
1 Wert --dt warten-- 2 Wert --dt warten -- 3 Wert -- usw...
Na genau so wie du es beschreibst: immer ein Wert darstellen, kurz warten, nächsten Wert darstellen…

Zitat:Wenn ich eine falsche Vorstellung habe wie Signale im Programm eingelesen/verarbeitet werden sagt es mir bitte!
Wenn du komplette Signalverlkäufe einliest und per Draht (THINK DATAFLOW!) weiterverarbeitest, werden eben auch komplette Signalverläufe dargestellt.
Wenn du nur mit Einzelwerten arbeiten willst, dann musst du das auch machen - so wie in dieser FOR-Loop!

P.S.: Es ist nur selten hilfreich, allen Samples die exakt gleiche Startzeit T0 (=0) zu verpassen… (Denk mal darüber nach!)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.08.2016, 10:05
Beitrag #22

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Signalerzeugung aus 1D Array
Hallo Gerd,

Zitat:Zitat:
Also nochmal zur eigentlichen Frage: Wie kann ich ein Sensorsignal simulieren?
1 Wert --dt warten-- 2 Wert --dt warten -- 3 Wert -- usw...Na genau so wie du es beschreibst: immer ein Wert darstellen, kurz warten, nächsten Wert darstellen…

Ich finde keine Funktion die es ermöglicht die Werte von einer Waveform einzeln darzustellen ohne das ich die Waveform in ein Array umwandweln muss. (Das Programm welches später mit dem Signal arbeitet akzeptiert nur einen Datenfluss als Waveform.)

Zitat:Wenn du nur mit Einzelwerten arbeiten willst, dann musst du das auch machen - so wie in dieser FOR-Loop!
Wie kann ich das machen?
Einzelwerte werden von der BuildWaveform Funktion nicht akzeptiert.
Indexing von einem Waveform in einer For-Schleife ist nicht möglich.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.08.2016, 10:24 (Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2016 10:28 von GerdW.)
Beitrag #23

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Signalerzeugung aus 1D Array
Hallo Max,

Zitat:Wie kann ich das machen? Einzelwerte werden von der BuildWaveform Funktion nicht akzeptiert.
Natürlich nicht: eine Waveform besteht aus T0, dt und einem Array von Samples.
ABER: Was hindert dich daran, ein Array mit nur einem Wert zu erstellen? Hmm

Und hinterher ein Array of Waveforms, wobei jede Waveform nur genau ein Sample enthält?
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.08.2016, 12:35
Beitrag #24

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Signalerzeugung aus 1D Array
Hallo Gerd,

Zitat:ABER: Was hindert dich daran, ein Array mit nur einem Wert zu erstellen? Hmm

Und hinterher ein Array of Waveforms, wobei jede Waveform nur genau ein Sample enthält?

Hmm auf die Idee bin ich einfach gar nicht gekommen. Blink

Wenn ich ein Array of Waveforms außerhalb der Schleife erstellen möchte dann bekomme ich allerdings die Fehlermeldung: "Not enough memory to complete this operation"
Wundert mich dass es den kompletten Arbeitsspeicher frisst, immerhin habe ich 8Gb. Auf der anderen Seite sind es natürlich auch viele Werte die am Ende zusammengesetzt werden und ich lasse alles auf einer virtuellen Maschine laufen.

Trotzdem ist deine Lösung super, da ich eh nicht wieder alles zu einem Signal zusammensetzen möchte (dann wäre ich ja wieder am Anfang) und jetzt einfach einen Waveform in der Schleife erstelle, wovon ich später eine lokale Variabele im Programm erzeuge.
Durch den 100ms Wait habe ich dann ja ein dt von 0,1 und auf dem Graph wird es wie ein Realtime Signal angezeigt.

Vielen vielen Dank für deine Hilfe!!!

Thanx


Angehängte Datei(en)
14.0 .vi  Dicke simulieren.vi (Größe: 12,75 KB / Downloads: 172)

0.0 .csv  Dicke.csv (Größe: 66,86 KB / Downloads: 177)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.08.2016, 13:11 (Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2016 13:12 von GerdW.)
Beitrag #25

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Signalerzeugung aus 1D Array
Hallo Max,

- wenn du ein Array transponieren willst, warum nimmst du dann die Funktion "Matrix transponieren"? Es gibt doch auch Transpose2DArray…
- wozu überhaupt transponieren, wenn du nur die erste Spalte indizieren willst/musst?
- warum der CoercionDot an der Wait-Funktion?

Zitat:Wundert mich dass es den kompletten Arbeitsspeicher frisst, immerhin habe ich 8Gb.
Deine Beispieldatei enthält weniger als 8000 Samples: das macht <64kB Speicherbedarf.
Warum dann der Speicher nicht ausreichen soll, entschließt sich mir nicht. Muss wohl an deinem Programm liegen… Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.08.2016, 11:18
Beitrag #26

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Signalerzeugung aus 1D Array
Hallo Gerd,

na ja der Plan ist es irgendwie so hin zu bekommen, dass ich am Ende ein SubVi (Signal Simulieren) habe, welches ein Datenpaket im CSV Format sowie ein dt erwartet und mir am Ausgang dann ein Dickensignal liefert/simuliert.

Wenn ich an die Anlage kann werde ich ein Alaloges Signal 0-10V einlesen und zu diesem Dickensignal umrechnen müssen.
Sobald ich das geschafft habe möchte ich das SubVi wieder rauswerfen.

Vorab: Nach Neustart bekomme ich den Fehler mit dem Arbeitspecher nicht mehr Hmm

Nach deinem Tipp mit dem Array of signals dachte ich indixiere wieder alles in eine Schleife, gebe das dt mittes Wait vor und erstelle dann eine lokale Variabele die, unschön formuliert, "aus dem Sub Vi harausführt" bzw. an das Hauptprogramm übergeben wird.

Zitat:- wenn du ein Array transponieren willst, warum nimmst du dann die Funktion "Matrix transponieren"? Es gibt doch auch Transpose2DArray…
Mit den Tanspose funktionen klappt es nicht da sie ein DBL erwarten und das Array of signals nicht akzeptieren.

Zitat:- wozu überhaupt transponieren, wenn du nur die erste Spalte indizieren willst/musst?
Da hast du natürlich völligf recht aber ich bekomme es nicht so hin das es mir als Signal ins Hauptprogramm übergeben wird.
Ich habe mal ein SubVi und eins zum testen erstellt um das Problem anschaulicher zu machen.

Zitat:- warum der CoercionDot an der Wait-Funktion?
das war nur weil ich mein dt mit Kommastellen eingeben möchte und deshalb einen DBL brauchte.
Aber das war ja in meinen vorherigen programm noch nicht drin und klar kann ich das auch in ein U32 umwanden. Habs jetzt verbessert Smile


Angehängte Datei(en)
14.0 .vi  TestsignalV2.0.vi (Größe: 22,51 KB / Downloads: 158)

14.0 .vi  test Testsignal.vi (Größe: 11,91 KB / Downloads: 160)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.08.2016, 11:45
Beitrag #27

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Signalerzeugung aus 1D Array
Hallo Max,

Zitat:Mit den Tanspose funktionen klappt es nicht da sie ein DBL erwarten und das Array of signals nicht akzeptieren.
Hmm
Ich rede von der MatrixTranspose-Funktion direkt nach der ReadSpreadsheet-Funktion: dort transponierst du ein 2D-Array of DBL!
Was hat diese Funktion mit Signalverläufen zu tun???

Zitat:Da hast du natürlich völligf recht aber ich bekomme es nicht so hin das es mir als Signal ins Hauptprogramm übergeben wird.
Hmm
Ich rede von dem IndexArray direkt nach dem MatrixTranspose: Hier liest du die erste Zeile aus dem 2D-Array!
Wenn du einfach die erste Spalte lesen würdest, bräuchtest du kein Transpose vorher!

Zitat:das war nur weil ich mein dt mit Kommastellen eingeben möchte und deshalb einen DBL brauchte.
Du weißt schon, dass "Wait (ms)" nur ganze Millisekunden warten kann - und das evtl. mit der Anzahl deiner Nachkommastellen köllidieren kann?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.08.2016, 13:05
Beitrag #28

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Signalerzeugung aus 1D Array
Hallo Gerd,

Oh, ja das kommt noch von vielen Vorgängerversionen wo ich rumprobiert habe Big Grin
Hab jetzt alles unötige beseitigt. War ja auch nicht besonders sinvoll das ich erst das Signal erstelle und dann sofort wieder auseinanderpflücke Big Grin

Das man mit dem Wait teoretisch Probleme bekommen könnte weiß ich, allerdings ist das ja nur zum testen und ich bin der einzige der das Vi benutzt, daher denke ich es ist ok. Ich werde das dt nicht kleiner als 0,001 wählen oder den Wertebereich direkt einschränken.

Hast du denn eine Idee wie ich die Werte ins Hauptprogramm übegeben kann während das Unterprogramm noch läuft?
Ich weiß ich weiß normalerweise muss es erst abgearbeitet sein "think Dataflow" Big Grin
Aber da muss es doch eine Möglichkeit geben.


Angehängte Datei(en)
14.0 .vi  TestsignalV2.0.vi (Größe: 22,18 KB / Downloads: 166)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.08.2016, 13:24 (Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2016 13:24 von GerdW.)
Beitrag #29

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Signalerzeugung aus 1D Array
Hallo Max,

Zitat:Aber da muss es doch eine Möglichkeit geben.
Ja klar:
- lokale Variablen (bäh, geht aber auch…)
- globale Variablen (bäh, geht aber auch…)
- FGVs aka AEs
- Notifier
- Queues
- die neuen Channel in LV2016

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.08.2016, 13:40
Beitrag #30

maxxillian Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2016

2015 Vision
2015
DE_EN



RE: Signalerzeugung aus 1D Array
Alles klar dann probier ich mich mal durch!

Danke Gerd Thanx
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  SignalErzeugung und Gleichzeitiges Messen ? Andy4u 1 3.319 07.04.2011 10:25
Letzter Beitrag: Lucki
  Digitale Signalerzeugung zulangsam Movie 4 4.325 20.11.2008 09:58
Letzter Beitrag: Movie

Gehe zu: