Hallo Sammy,
Zitat:Genau, das wäre dann ja pro 1 Sekunde ein Messwert.. Wo könnte ich den Samleindex einstellen?
Diese "1 Sekunde" war nur ein Beispielwert von mir - der trifft aber auf deine Messdaten überhaupt nicht zu!
Und der Sampleindex wird nicht eingestellt, der ergibt sich einfach aus dem Index des Elements/Sample im Array.
Das Grundproblem bei dir ist: du fügst verschiedene Signale zusammen, die aber unterschiedliche Anzahl Samples aufweisen. Jetzt musst
du definieren, wie das hinterher in der Messdatei aussehen soll…
Zitat:Meinst du das "Messwerte in Datei schreiben" VI?
Nein, ich bezog mich auf "To DDT" und "Merge Signals"…
Zitat:Hast du eine Idee wie ich das dann lösen könnte? Es funktioniert wirklich mit keiner Konstante habe schon sehr viele ausprobiert..
Wie sieht die Botschaft aus, die du dort empfängst?
Hast du ein TermChar? (Das hast du ja auf TRUE gesetzt.) Wenn ja: welches?
Wie lang ist die Botschaft? Immer die gleiche Zeichenanzahl?
Im Allgemeinen gilt:
Wenn TermChar aktiviert und korrekt benutzt: einfach mehr Zeichen abfragen, als die Botschaft enthält.
Wenn kein TermChar vorhanden: genau die Anzahl Zeichen abfragen, die die Botschaft enthält. Dann aber auch das TermChar deaktivieren…
***EDIT***
Nachtrag: das Problem ist wahrscheinlich "nur", dass du die per COM-Port empfangene Botschaft falsch behandelst!
Beispiel: du empfängst die Botschaft mit den Dezimalwerten (lt. deinem Bild)
Code:
107 49 57 54 54 49 46 49 55 54 56 50 50 10
Das ist in Hex-Schreibweise
Code:
6B 31 39 35 35 31 2E 31 36 35 37 32 32 0A
Und jetzt der Trick: alles mit ASCII umgewandelt:
Code:
k19551.165722 (mit LineFeed hintendran)
Wahrscheinlich willst du diesen Zahlenwert haben: ScanFromString mit passendem Formatstring verwenden!!!
Und schon hast du nicht etwa eine Botschaft mit 14 Byte, sondern eben nur einen Zahlenwert…
Und beim VISARead solltest du das TermChar aktiviert lassen (es wird der Standard "LF" verwendet) und eben 20 Bytes abfragen!