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!
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,
Coming together is a beginning, keeping together is progress, working together is success.
09.02.2010, 13:16 (Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2010 13:30 von dimitri84.)
Versuch' mal an die nicht angeschlossenen Case-Tunnel (anstatt 'Standard verwenden, wenn nicht verbunden' 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.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
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
Coming together is a beginning, keeping together is progress, working together is success.
' schrieb:Was soll denn da anstatt der Nullen stehen?
Versuch' mal an die nicht angeschlossenen Case-Tunnel (anstatt 'Standard verwenden, wenn nicht verbunden' 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
Coming together is a beginning, keeping together is progress, working together is success.
10.02.2010, 10:21 (Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2010 10:21 von dimitri84.)
' 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?
Coming together is a beginning, keeping together is progress, working together is success.
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.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
' 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!
Coming together is a beginning, keeping together is progress, working together is success.
10.02.2010, 11:15 (Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2010 11:18 von dimitri84.)