LabVIEWForum.de - CAN DATA Speichern aus dem CASE Struktur

LabVIEWForum.de

Normale Version: CAN DATA Speichern aus dem CASE Struktur
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo,

ich hab ein Problem beim Speichern von CAN DATA:

Die Nachrichten werden über CAN Bus in CASE selektiert und dargestellt. Je nachdem CAN ID werden nur die daten herausgenommen was gebraucht werden. Ich will ja am ende diese Daten alle in einem File speichern. siehe Bild. In jedem Case gibts ein oder 2 Messdata. Per CAN werden die Daten jenach der Art, mit verschiedenen Raten geleitet. Bsp. Temp nur einmal in der Sekunde. Druck 2 mal. usw..

Problem ist beim Speichern, wo laute Nulle geschrieben werden, wo keine Daen ankommen, gibts eine Lösung die ganze Daten irgendwie in einem File speichern, ohne die unnötige Nulle ? Array oder sowas , aber fehlt mir keine lösung ein.

Dabei ist ein auschnitt von MessData.

Grüße,
Was soll denn da anstatt der Nullen stehen?

Versuch' mal an die nicht angeschlossenen Case-Tunnel (anstatt 'Standard verwenden, wenn nicht verbunden'Wink NaN Konstanten anzuschließen. Mal gucken was das Express VI dazu sagt.

Viel besser wäre es allerdings du speicherst in der Case Struktur mit den TDMS primitives. Legst dir Gruppen/Kanäle an ... alles schön geordnet.
Die Nullen stehen drin, da in der rechten Casestruktur 8 Signale gespeichert werden. Du übergibst bei jedem Speichervorgang aber nur 1 Wert. Für die die restlichen 7 nimmt LV dann den Standardwert. Dieses Problem ließe sich durch das Puffern der Daten lösen. Wenn von jedem Signal ein Wert vorhanden ist, ist eine Zeile vollständig und kann gespeichert werden. Allerdings handeltst du dir dann ein anderes Problem ein, und zwar müssen LVM alle Kanäle die gleiche Anzahl Elemente (Zeilen) besitzen. Manch einer löst das dadurch, dass er für jeden Kanal eine Datei erstellt. Ich würde TDMS benutzen. Daten eine Sekunde puffern und dann speichern.
' schrieb:Die Nullen stehen drin, da in der rechten Casestruktur 8 Signale gespeichert werden. Du übergibst bei jedem Speichervorgang aber nur 1 Wert. Für die die restlichen 7 nimmt LV dann den Standardwert. Dieses Problem ließe sich durch das Puffern der Daten lösen. Wenn von jedem Signal ein Wert vorhanden ist, ist eine Zeile vollständig und kann gespeichert werden. Allerdings handeltst du dir dann ein anderes Problem ein, und zwar müssen LVM alle Kanäle die gleiche Anzahl Elemente (Zeilen) besitzen. Manch einer löst das dadurch, dass er für jeden Kanal eine Datei erstellt. Ich würde TDMS benutzen. Daten eine Sekunde puffern und dann speichern.

Hallo.

danke für Vorschlag. Ich bin ja dabei das Speichern von Daten auf TDMS umzustellen. Allerdings, weiss ich nicht wie du mit Puffern meinst ?Wie kann ich das bei CASE realisieren ? Wäre super wenn du en Tipp gibts,

Besten Dank
' schrieb:Was soll denn da anstatt der Nullen stehen?

Versuch' mal an die nicht angeschlossenen Case-Tunnel (anstatt 'Standard verwenden, wenn nicht verbunden'Wink NaN Konstanten anzuschließen. Mal gucken was das Express VI dazu sagt.

Viel besser wäre es allerdings du speicherst in der Case Struktur mit den TDMS primitives. Legst dir Gruppen/Kanäle an ... alles schön geordnet.

Hallo Dimitri,

Es wird gerad gemacht;)Nur hab ich ein kleins Problem mit dem Kanalnamen, was ich hoffe dass ich mit der NI Hilfe weiterkomme.
Irgendwie bekomme ich die Namen nicht richtig hin..

Grüße
Was klappt denn nicht? Wie willst du's machen? Eine Gruppe und dann verschiedene Kanalname? Hier hab ich was zum nachträglichen Editieren von TDMS-Dateien.
' schrieb:Was soll denn da anstatt der Nullen stehen?


Viel besser wäre es allerdings du speicherst in der Case Struktur mit den TDMS primitives. Legst dir Gruppen/Kanäle an ... alles schön geordnet.

Ich hab noch eine kleine Frage, wenn es erlaubt ist. Bei LVM format kann man z.b. die erste Spalte als "Time" speichern. Es wird dann von 0 aufwärts gezählt. Ist sowas auch beim TDMS möglich dass ich die erste Spalte die Zeit seichern kann?
Prinzipiell kannst du reinschreiben was du willst. Ich speicher mein Signal immer als Waveform (Signalverlauf) und dort sind ja die Informationen t0 und dt bereits enthalten. Jeder Kanal hat sozusagen seine eigene individuelle Zeitachse.
' schrieb:Prinzipiell kannst du reinschreiben was du willst. Ich speicher mein Signal immer als Waveform (Signalverlauf) und dort sind ja die Informationen t0 und dt bereits enthalten. Jeder Kanal hat sozusagen seine eigene individuelle Zeitachse.

Ich hab ja mein Signal als Signalverlauf, was wieder viele Signale beinhaltet. Am Ende nach der Signalverarbeitung schreibe ich die als Dynamic Data rein. was eigentlich das gleiche ist wie Signalverlauf gehe ich davon aus. bei jedem Signal kann ich ja t0 und dt sehen , wenn ich in TDMS data Monitoring reinschaue.

Als Anzeige verwende ich dann SignalverlaufGraph und kein Signalverlaufsdiagramm. Im Graph werden alle Signale richtig angezeigt, aber in Diagramm nicht. Ich gehe davon aus weil ich veschiede Zeitachsen habe!
Wozu wandelst du dein Signalverlauf in Dynamic Data? Wenn du doch von den Express VI's weg bist, dann verzichte doch auch auf deren Format.
Seiten: 1 2 3
Referenz-URLs