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 

Zeitachse eines Signals anpassen bzw. erzeugen



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!

31.01.2016, 19:55
Beitrag #1

uuuhl Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Jan 2016

2014
2008
DE



Zeitachse eines Signals anpassen bzw. erzeugen
Hallo zusammen.
Ich habe hier ein nettes Programm erstellt, mit dem ich die Daten eines Dreiachsensensors auswerten kann.
Dazu lese ich das Logfile des Sensors ein und erzeuge ein Signal daraus.

Der Sensor schreibt in die 1. Spalte die Zeit und in die 2., 3. und 4. Spalte jeweils die Achsen.
Leider wird der Zeitwert nur auf 1 Sekunde genau geschrieben, d.h. beispielsweise bei 100Hz Samplingrate haben 100 Werte die gleiche Zeit. Bisher habe ich mit Excel den Zeitwert vor dem Einlesen überschrieben, das nervt aber gewaltig bei vielen Messwerten.

Ist es möglich, das Signal "aufzudröseln" und den Zeitwert separat durch LabView vorzugeben? Hätte versucht, die erste Spalte beim Einlesen als normalen Wert zu betrachten und zu ignorieren, dann müsste ich aber auch wieder eine Samplingrate erzeugen und mit den Werten verknüpfen. Wie geht das Huh
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.02.2016, 08:23
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitachse eines Signals anpassen bzw. erzeugen
Hallo uuuhl,

Zitat:Ist es möglich, das Signal "aufzudröseln" und den Zeitwert separat durch LabView vorzugeben?
Ja.

Zitat:Hätte versucht, die erste Spalte beim Einlesen als normalen Wert zu betrachten und zu ignorieren, dann müsste ich aber auch wieder eine Samplingrate erzeugen und mit den Werten verknüpfen.
Warum liest du den Zeitstempel nicht mit ein?

Zitat:Wie geht das
Zeitstempel einlesen und selbst den Sekundenbruchteil dazu addieren. Bei 100S/s also einfach jeweils für einen 100-Werte-Block die Rampe von 0.00…0.99s zum Zeitstempel addieren…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2016, 08:34
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Zeitachse eines Signals anpassen bzw. erzeugen
(31.01.2016 19:55 )uuuhl schrieb:  Leider wird der Zeitwert nur auf 1 Sekunde genau geschrieben, d.h. beispielsweise bei 100Hz Samplingrate haben 100 Werte die gleiche Zeit.
Das kann auch eine ganz andere Ursache haben, und ganz oben auf der Beliebtheitsskala steht dieser Fehler: Die gespeicherten Daten enthalten das Komma als Dezimalzeichen, Labview will aber den Punkt. Oder umgekehrt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.02.2016, 21:55
Beitrag #4

uuuhl Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Jan 2016

2014
2008
DE



RE: Zeitachse eines Signals anpassen bzw. erzeugen
So, habe jetzt Einiges versucht, leider immer noch erfolglos.
Zitat:Warum liest du den Zeitstempel nicht mit ein?

Weil er nur Ärger macht. Der Sensor gibt im Format TT.MM.JJJJ hh.mm.ss aus.
Wenn ich das in LabView einlese, bekomme ich zwar ein Signal, aber Zeit ist halt Irgendwas zwischen 0 und 14000.
Alle Filter melden dann logischerweise Fehler.

Zitat:Zeitstempel einlesen und selbst den Sekundenbruchteil dazu addieren.
Die "absolute Zeit" wäre mir egal, mir würde eine einfache "Taktung" in z.B. 0,01er Schritten als Zeitkomponente reichen, so mache ich das momentan mit Excel - einfach die erste Spalte mit 0,01 "runterziehen".

Wie addiert man die Zeit zum Signal?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.02.2016, 08:49 (Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2016 08:54 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitachse eines Signals anpassen bzw. erzeugen
Hallo uuuhl,

Zitat:Der Sensor gibt im Format TT.MM.JJJJ hh.mm.ss aus. Wenn ich das in LabView einlese, bekomme ich zwar ein Signal, aber Zeit ist halt Irgendwas zwischen 0 und 14000. Alle Filter melden dann logischerweise Fehler.
Und der Fehler liegt natürlich klar bei der Programmiersprache, oder?

Komisch, ich kann Zeitstempel bequem einlesen:
   
Vielleicht ist es ja doch nur ein PEBCAK-Fall… Big Grin

Zitat:mir würde eine einfache "Taktung" in z.B. 0,01er Schritten als Zeitkomponente reichen
Es gibt da Funktionen in der Signalverarbeitungspalette, die generieren dir eine Rampe mit frei wählbarer Stufung…

Zitat:So, habe jetzt Einiges versucht, leider immer noch erfolglos.
So ein Forum funktioniert am besten, wenn der Fragende Beispiele seiner (wenn auch erfolglosen) Versuche anhängen würde.
Und noch viel besser, wenn die dazu passenden Beispiel-Daten bereitgestellt würden!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.02.2016, 20:48
Beitrag #6

uuuhl Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Jan 2016

2014
2008
DE



RE: Zeitachse eines Signals anpassen bzw. erzeugen
Vielen Dank schon mal für die Hinweise.

Hier mal ein kleiner Aufbau der das Problem erklären sollte inklusive Testfile.
Die Werte werden eingelesen, und zwar mit der ersten Spalte als "normalen" Werten.
Es folgt das Aufspalten und die erste Spalte mit dem seltsamen Zeitinformationen wird ignoriert.
Nun zähle ich die Anzahl an Samples und teile sie durch die (einstellbare) Samplingrate.
Das Ergebnis sollte nun die Zeit sein, über die die Messwerte ermittelt wurden.

Diese möchte ich nun als X-Achse oder eben Zeit an das Signal "anfügen", damit nachfolgende Filter usw. nicht verwirrt werden. Im Beispiel hier falsch dargestellt, da die Rampe einfach als weiteres Signal dargestellt wird.


Angehängte Datei(en)
0.0 .txt  LOG45_test.txt (Größe: 380,63 KB / Downloads: 360)

9.0 .vi  Signal_einlesen.vi (Größe: 52,55 KB / Downloads: 345)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.02.2016, 21:20 (Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2016 21:43 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitachse eines Signals anpassen bzw. erzeugen
Hallo uuuhl,

Zitat:Ich habe hier ein nettes Programm erstellt
Aha. Ein VI bestehend aus ExpressVIs…
Du gibst an, seit >7 Jahren mit LabVIEW zu arbeiten. Und alles was dabei herauskommt, sind 3 ExpressVIs und lauter DDT-Drähte?

Du willst also mit einem ExpressVI eine Datei einlesen, die ein Format verwendet, welches dieses ExpressVI nicht kennt?
Du wunderst dich, warum dabei eine "komische" X-Achse herauskommt?

Zitat:Die Werte werden eingelesen, und zwar mit der ersten Spalte als "normalen" Werten.
Warum machst du das so? Was hast du dir dabei überlegt?
Wenn du in den ExpressVI-Einstellungen einfach mal die Datei testweise lädst (ja, das geht im Assistenten), dann siehst du doch schon, wie diese Datei eingelesen wird…
Und warum hast du dann nicht konsequenterweise die "erste Zeile ist Zeitkanal" eingestellt? Hmm (Nicht, dass das was helfen würde.)

Zitat:Nun zähle ich die Anzahl an Samples und teile sie durch die (einstellbare) Samplingrate. Das Ergebnis sollte nun die Zeit sein, über die die Messwerte ermittelt wurden.
Aha, du rechnest also z.B. 1600 Samples geteilt durch 80Hz = 20s. Damit erzeugst du eine Rampe.
Nur: Hast du dir überlegt (oder gar angeschaut), was für eine Rampe dabei erzeugt wird? Was sind Anfangs- und Endwert der Rampe? Was soll die Funktion mit dem DBL-Wert, den du da berechnest, eigentlich anstellen?

Zitat:Der Sensor gibt im Format TT.MM.JJJJ hh.mm.ss aus.
Aha. In der Datei finde ich nur Zeitangaben nach dem Schema " mm : ss , u". Das passt irgendwie nicht zu deiner Aussage in Beitrag #4.
Ist das jetzt eine komplett verkehrte Beispiel-Datei oder hast du vorher einfach nicht richtig lesen können?

Mit welchem Programm wurde diese Txt-Datei erstellt?
Warum liest du nicht einfach die Datei als Text ein, suchst nach dem "Tag" "*DATA", um alles danach als Daten zu verwerten?
Und warum wandelst du nicht einfach den Zeitstempel mit dem oben gezeigten Schema um?

Und warum hat man bei einem solch kleinen VI so viele "Warum?"-Fragen?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.02.2016, 11:58
Beitrag #8

uuuhl Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Jan 2016

2014
2008
DE



RE: Zeitachse eines Signals anpassen bzw. erzeugen
Hallo GerdW,

Zitat:Aha. Ein VI bestehend aus ExpressVIs…
Du gibst an, seit >7 Jahren mit LabVIEW zu arbeiten. Und alles was dabei herauskommt, sind 3 ExpressVIs und lauter DDT-Drähte?

Im Anhang ein PDF vom Blockdiagramm des VIs. Der Übersichtlichkeit halber habe ich das gepostete Beispiel verwendet.
Bei mir geht es hauptsächlich darum, Messwerte mit Kurven aus der Norm zu vergleichen. Die sind in den jeweiligen Konstantenarrays verpackt.
Das ist vermutlich nicht die aller anspruchsvollste Aufgabe, aber mehr brauche ich nicht.
Mit den verhassten Express- VIs geht das relativ einfach und hat für meine Zwecke bisher gut funktioniert.
Ich koche auch seit einigen Jahren Essen, geh laufen und fahre Rad. Trotzdem bin ich weit davon entfernt, ein Sterne- Koch, Sprinter oder Tour de France- Fahrer zu sein.

Weiterhin im Anhang die Quelldatei des Sensors. Zeitformat wie beschrieben, aber Datei im Excel-CSV- Format, und das liest das Express-VI nicht.
Beim Umwandeln in MS-DOS Text- Format geht ein Teil der Zeitspalte verloren, siehe Datei gepostet am 4.2.
Wie beschrieben habe ich die erste Spalte bisher mit Excel überschrieben (0.01, 0.02, 0.03,....) und dann wie von dir erwähnt "als Zeitkanal" eingelesen. Das ist bei vielen Messwerten aber nervig, daher wollte ich das im LabView korrigieren.

Zitat:Warum machst du das so? Was hast du dir dabei überlegt?
Der Gedanke war -wie erwähnt- das Zeitsignal aus dem Logfile des Sensors zu ignorieren und durch eine selbstgebaute Taktung mit einstellbarer Samplingfrequenz zu ersetzen. Und genau hier hakt es bei mir.

Der etwas scharfe Unterton in deinem letzten Beitrag ist mir nicht entgangen.
Soweit für mich erkennbar habe ich die Forenregeln eingehalten und in vernünftigem Deutsch höflich eine Frage gestellt.
Sollte dich das dennoch beleidigt haben, möchte ich mich dafür entschuldigen.


Angehängte Datei(en)
0.0 .pdf  BD.pdf (Größe: 893,84 KB / Downloads: 346)

0.0 .csv  LOG45_test_2.csv (Größe: 599,92 KB / Downloads: 298)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.02.2016, 15:53
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Zeitachse eines Signals anpassen bzw. erzeugen
An dem PDF kann ich jetzt nur erkennen, dass dein BD viel zu groß geraten ist. Analysieren kann man da gar nichts, da wir die Einstellungen der ganzen Express-VIs nicht kennen.

--

Welches Dateiformat willst du jetzt eigentlich einlesen? Die csv-Datei aus dem letzten Beitrag oder die txt-Datei aus Beitrag #6 - bei der aber die Zeit-Information mangelhaft hinterlegt ist - 5 Werte haben immer denselben Zeitstempel...

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.02.2016, 10:07 (Dieser Beitrag wurde zuletzt bearbeitet: 07.02.2016 16:31 von Lucki.)
Beitrag #10

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Zeitachse eines Signals anpassen bzw. erzeugen
(06.02.2016 15:53 )jg schrieb:  ... bei der aber die Zeit-Information mangelhaft hinterlegt ist - 5 Werte haben immer denselben Zeitstempel...
Das passiert eben, wenn man mit einem dt von 20ms erfasst und dann die Zeit nur mit einer Nachkommatelle, also auf 100ms genau, aufzeichnet. Dümmer gehts nimmer.
Da bleibt dann nur noch, nicht die Zeitdaten selbst zu verwenden, sondern das vermutliche dt, unter der Annahme daß es konstant ist, aus den Daten zu berechnen und im Graphen zu verwenden.
       

14.0 .vi  Einlesen.vi (Größe: 17,18 KB / Downloads: 309)

(Die Datei LOG45_test.txt muß sich mit im Verzeichnis des VI befinden)

Edit:
Und hier noch eine Variante mit Glättung und sinnvoller Dezimierung der Datenpunkte, bei Vermeidung von Zeitverschiebungen. Das ist nur eine Kür zur Befriedigung meines eigenen Ego; es ist ansonsten zu kompliziert als dass es jemand verstehen muss. Ich will diesen Teil zu einem SubVI machen, da es in LV so eine wunderschöne Funktion nicht zu geben scheint.Big Grin

14.0 .vi  Einlesen1.vi (Größe: 19,73 KB / Downloads: 304)
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
  NI USB 6003 - Zeitachse xy-Graph in Sekunden DaveEAC 3 4.717 05.08.2021 07:57
Letzter Beitrag: Achim
  Zeitachse Signalverlaufsdiagramm Nilawa 6 5.308 22.07.2019 08:49
Letzter Beitrag: Nilawa
  Signalverlaufsdiagramm Zeitachse in s MitchD 8 10.266 26.10.2017 07:31
Letzter Beitrag: GerdW
  Signalverlaufsdiagramm - Zeitachse falsch JanBurg 2 5.630 06.10.2017 11:12
Letzter Beitrag: JanBurg
  Waveform Graph Zeitachse ersetzen Tobias Heimes 2 6.389 01.11.2015 19:08
Letzter Beitrag: Rene1304
  Echtzeit Steigung berechnen und Anzeigen eines Counter Signals Tyll 1 4.349 29.10.2015 17:00
Letzter Beitrag: eb

Gehe zu: