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!
05.01.2015, 23:34 (Dieser Beitrag wurde zuletzt bearbeitet: 05.01.2015 23:35 von Lucki.)
Lieber Lars,
Dir könnte ganz leicht geholfen werden, aber dazu müßtest Du mal einige Zeilen von dem String, so wie er original aus dem Arduino heraus kommt, posten. (Ist der String überhaupt zeilenstrukturiert, also für jeden Messwert ein Zeile?)
Gruß Ludwig
Anzeige
06.01.2015, 08:27 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2015 08:28 von GerdW.)
Das sollte es ja auch: ich habe dein VI nur vereinfacht…
Zitat:Wenn ich nen Filter dazwischen habe kommt aber leider eine Fehlermeldung oder Labview hängt sich auf.
Welche Fehlermeldung?
Wie hängt sich LabVIEW auf? Kannst du das mal genauer erläutern? "Aufhängen" ist jedenfalls keine LabVIEW-Fehlermeldung…
Außerdem:
Was versprichst du dir von der Filterung eines einzelnen Messwerts?
Wieso verwendest du zwei ExpressVIs, je eines für Hoch- und Tiefpass? Warum kein einfacher Bandpass?
Wieso sendet dein Arduino nur Nullen?
Was erhoffst du dir von einer Hoch-/Tiefpass-Filterung eines konstanten Null-Signals?
Zitat:Was versprichst du dir von der Filterung eines einzelnen Messwerts? Hmm
Ich kenn mich hier zu wenig aus. Ich will aus dem String ja ein Signal haben, sodass ich es filtern kann.
Zitat:Wieso verwendest du zwei ExpressVIs, je eines für Hoch- und Tiefpass? Warum kein einfacher Bandpass? Hmm
Geht aber auch so.
Zitat:Wieso sendet dein Arduino nur Nullen?
Der sendet auch andere Werte, wie z.B. 56.
Da ich kein Delay im Arduino Code drin hatte, waren ungünstigerweise nur Nullen auf dem Screenshot des Serial Monitors zu sehen.
Zitat:für jeden Messwert wird nun eine neue Zeile generiert.
Prima, jetzt hast du nämlich ein schönes TermChar, sehr wahrscheinlich LF…
Zitat:Ich will aus dem String ja ein Signal haben, sodass ich es filtern kann.
Momentan liest du Einzelwerte aus und schickst diese durch deine Filter.
Wenn du einen Signalverlauf haben willst, musst du die Einzelwerte in einem Array sammeln…
hab das mal mit dem Array versucht (siehe VI anbei), aber er LV bringt die Fehlermeldung:
"Date / Time to seconds Contains unwired or bad terminal
One or more required inputs to this function are not wired or are wired incorrectly. Show the Context Help window to see what the connections to this function should be."
Viele Grüße,
Lars
06.01.2015, 16:19 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2015 16:21 von GerdW.)
und warum kommt dieser Fehler wohl? Das steht in der Kontexthilfe der von dir dort verwendeten Funktion: FETT dargestellte Eingänge sind zwingend zu verdrahten!
Aber warum nimmst du überhaupt die Funktion "DateTimetoSeconds"? Eigentlich willst du doch die aktuelle Zeit dort haben - und die liefert dir "Get DateTime in Seconds" - was ebenfalls in der Kontexthilfe steht…
Die Art und Weise, wie du da deinen ReadBuffer auswertest, erscheint mir nicht ganz korrekt zu sein. Oder hast du mittlerweile auf binäre Datenformate beim Arduino umgestellt?
wenn ich "Get DateTime in Seconds" nehme, dann spielt er was ab.
Aber filtern klappt immer noch nicht.
Meldung:
"These cannot be wired together because their data types (numeric, string, array, cluster, etc.) do not match. Show the Context Help window to see what data type is required.
The type of the source is Dynamic Data.
The type of the sink is Waveform(DBL)."
Kannst du mir nicht mal ein VI schicken, das einfach funktioniert wie bschrieben?
Hab mittlerweile echt kein Nerv mehr.
Grüße,
Lars
06.01.2015, 18:35 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2015 18:36 von GerdW.)
Zitat:Kannst du mir nicht mal ein VI schicken, das einfach funktioniert wie bschrieben?
Ich kann dir zeigen, wie du dein VI ver(schlimm)bessern kannst:
Grundproblem hier: Einsatz von ExpressVIs und die Verwendung des Waveform-Datentyps…
- Was mit ExpressVIs geht, funktioniert auch ohne. Und man kommt dann ohne den DDT und Verrenkungen zum Umwandeln desselben aus.
- Du hast selbst eine Waveform angelegt. Die ist bei der seriellen Schnittstelle mit fast immer nicht exakt deterministischen Samples nicht der richtige Datentyp. Ein einfaches Array mit deinen Messwerten hätte wahrscheinlich ausgereicht…
Ob das VI im Snippet funktioniert, kann ich mangels Hardware nicht verifizieren!
Zitat:Hab mittlerweile echt kein Nerv mehr.
Das dürfte z.T. daran liegen, dass du noch lernen musst, ordentliche Fehlerbeschreibungen zu formulieren. Solange nur "LabVIEW hängt sich auf" kommt, kann man nicht viel helfen…
funktioniert so nicht wenn ich das nach dem Bild mache.
Zitat:Grundproblem hier: Einsatz von ExpressVIs und die Verwendung des Waveform-Datentyps…
- Was mit ExpressVIs geht, funktioniert auch ohne. Und man kommt dann ohne den DDT und Verrenkungen zum Umwandeln desselben aus.
- Du hast selbst eine Waveform angelegt. Die ist bei der seriellen Schnittstelle mit fast immer nicht exakt deterministischen Samples nicht der richtige Datentyp. Ein einfaches Array mit deinen Messwerten hätte wahrscheinlich ausgereicht…
Ob das VI im Snippet funktioniert, kann ich mangels Hardware nicht verifizieren!
Wenn ich mich hier so verrenke, wie du sagst, wieso zeigst du mir dann nicht mal ein Paradebeispiel, wie es anders geht.
Solange ich auf dem Holzweg bin drehen wir uns immer im Kreis.
Ich will lediglich ein analoges Signal (Spannung) vom Arduino seriell einlesen, filtern, und von labview in nem Chart (wie auf dem Video im ersten Beitrag zu sehen) "geplottet" haben. Wie es funktioniert, sei erstmal zweitrangig.