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 

Binärdatei schreiben: Zu viele Samples?



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!

04.07.2012, 13:37
Beitrag #1

herrhannes Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jun 2012

2011
-
DE_EN



Binärdatei schreiben: Zu viele Samples?
Moin,

ich habe folgendes, etwas dämliches Problem:

Ich lese per DAQmx Signale ein, was auch prima funktioniert, und dann versuche ich sie, in eine Binärdatei zu schreiben, was auch irgendwie funktioniert.

Das Problem daran ist aber, dass eine Aufnahme von 10s Signal mit 80kS/s Samplerate .... tadaaa ..... über 1mio Samples enthält.
Normalerweise bekomme ich ja gerne etwas geschenkt, aber wo kommen die her und wie bekomme ich sie weg?

Ich will das ganze nämlich in Matlab einlesen und da tut es der genauigkeit der Zeitberechnung gar nicht gut, wenn ich ca. 25% mehr Samples erhalte als erwünscht.

Gruß
herrhannes


Angehängte Datei(en)
11.0 .vi  datei_schreiben.vi (Größe: 60,72 KB / Downloads: 178)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2012, 13:44
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Binärdatei schreiben: Zu viele Samples?
Hallo Hannes,

1) Wer hat dir bloss beigebracht, dass man Arrays indiziert, indem man sie erstmal in einen Cluster umwandelt? WARUM NICHT EINFACH INDEXARRAY BENUTZEN?
2) Lass dir doch einfach mal anzeigen, wieviele Samples du wirklich vom DAQ geliefert bekommst und in die Datei schreibst. Dazu einfach die Arraysize der 16bit-INTs anzeigen/aufaddieren lassen. (Das wäre etwas in der Art von "Debugging"/"Fehlersuche"...)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2012, 13:46 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2012 13:48 von herrhannes.)
Beitrag #3

herrhannes Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jun 2012

2011
-
DE_EN



RE: Binärdatei schreiben: Zu viele Samples?
Das ist witzig.
Das mit den Clustern ließ sich der Betreuer leider nicht ausreden.

10123 Elemente enhält jedes Array.
Wieso das, wenn ich die Puffergröße über die Samplezahl auf 800 bzw. 1000 stelle?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2012, 14:01 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2012 14:02 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Binärdatei schreiben: Zu viele Samples?
Hallo Hannes,

Zitat:Das ist witzig. Das mit den Clustern ließ sich der Betreuer leider nicht ausreden.
Vielleicht sollte dein Betreuer mal einen Grundkurs in LabVIEW belegen? Der Link meiner Signatur ist ein guter Anfang. Ansonsten gibt es auch welche bei NI... Zeig ihm diese Diskussion hier ruhig!

Zitat:10123 Elemente enhält jedes Array. Wieso das, wenn ich die Puffergröße über die Samplezahl auf 800 bzw. 1000 stelle?
Die Puffergröße ist mehr als Empfehlung an den Treiber zu sehen. Genaueres steht in der Kontexthilfe, die man als Anfänger immer offen haben sollte...
Hast du dir mal die mitgelieferten Beispiele zu DAQmx angeschaut? Wie man dort eine bestimmte Anzahl Samples aufnimmt?
- Zuerst stellt man die Samplerate ein.
- Dann liest man Blöcke der gewünschten Anzahl Samples.
- Wenn man genug Samples hat, stoppt man den Task.
Du stellst also 10kS/s ein, und liest (z.B.) 100 mal 1000 Samples. Einfach und simpel. Probier es mal aus!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2012, 14:05 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2012 14:10 von herrhannes.)
Beitrag #5

herrhannes Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jun 2012

2011
-
DE_EN



RE: Binärdatei schreiben: Zu viele Samples?
Zitat:10123 Elemente enhält jedes Array. Wieso das, wenn ich die Puffergröße über die Samplezahl auf 800 bzw. 1000 stelle?
Die Puffergröße ist mehr als Empfehlung an den Treiber zu sehen. Genaueres steht in der Kontexthilfe, die man als Anfänger immer offen haben sollte...
Hast du dir mal die mitgelieferten Beispiele zu DAQmx angeschaut? Wie man dort eine bestimmte Anzahl Samples aufnimmt?
- Zuerst stellt man die Samplerate ein.
- Dann liest man Blöcke der gewünschten Anzahl Samples.
- Wenn man genug Samples hat, stoppt man den Task.
Du stellst also 10kS/s ein, und liest (z.B.) 100 mal 1000 Samples. Einfach und simpel. Probier es mal aus!

[/quote]

So hatte ich das am Anfang gemacht, dann aber auf kontinuierliche Samples umgestellt.
Die Anzahl an Samples stellt da ja dann den Puffer dar. Im Grunde ist dann das doch das selbe, wenn ich den auf 1000 Samples stelle?

Außerdem erklärt das immer noch nicht, wieso es mit dem tdms-VI funktioniert hatte.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2012, 14:10 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2012 14:10 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Binärdatei schreiben: Zu viele Samples?
Hallo Hannes,

Zitat:Könnte das eventuell an der Umwandlung von Waveform in int usw. liegen?
Nein.

Zitat:Den Cluster-Kram habe ich schon rausgenommen.
Gut so... Smile

Zitat:Mit der Express-VI für tdms-Daten hatte ich das Problem übrigens nicht.
Gut möglich.

Zitat:Wie konvertiere ich das denn am besten für die Datei? Matlab erwartet eine Binärdatei, mit ints gefüllt.
Die Umwandlung ist ok so.
Aber: Je nach Datenrate kann das Schreiben der Dateien zum Bottleneck werden. TDMS ist speziell dafür gemacht, große Datenblöcke schnell wegzuspeichern, die Binärfile-Funktionen sind eher für das große ganze gemacht.
Genereller Tipp bei jedweder Messwerterfassung, insbesondere bei höheren Sampleraten:
Verwende ein einfache Producer-Consumer-Schema. Schicke die Messdaten per Queue von der DAQ-Schleife in eine parallel laufende FileWrite-Schleife. Guck dich im Forum um, wurde schon oft vorgemacht...

Und lese meinen vorigen Beitrag!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.07.2012, 14:12
Beitrag #7

herrhannes Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jun 2012

2011
-
DE_EN



RE: Binärdatei schreiben: Zu viele Samples?
Aber gerade, wenn das Schreiben der Daten zu langsam ginge, dürfte ich ja nicht "zu viele" haben. oO

Und was mir auch noch eingefallen ist: Das Problem habe ich auch, wenn ich die maximale Samplerate einstelle.
Das dürfte ja dann nicht an der Hardware liegen. Mehr als Maximum geht ja nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2012, 14:17 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2012 14:18 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Binärdatei schreiben: Zu viele Samples?
Hallo Hannes,

du fragst beim DAQmxRead immer den aktuellen Puffer ab. Der Puffer füllt sich mit deiner Samplerate. Wenn du zu lange zum Schreiben brauchst (länger als du eigentlich pro Schleifeniteration vorgesehen hast), sammeln sich mehr Daten im Puffer als gedacht. Deine Schleife braucht insgesamt länger als geplant und damit bekommst du auch mehr Messwerte geliefert. Und höhere Sampleraten verschlimmern das Ganze noch...

Hast du meinen vorletzten Beitrag gelesen?

Samplerate = Anzahl Messwerte pro Sekunden. Du scheinst etwas anderes darunter zu verstehen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2012, 14:31
Beitrag #9

herrhannes Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jun 2012

2011
-
DE_EN



RE: Binärdatei schreiben: Zu viele Samples?
Das mit der Samplerate ist mir klar, meinte nur, dass das Gerät nicht mehr als 125kS/s packt, daher also von dort schon einmal nicht mehr kommen können.

Ich stelle mal auf finite Samples um.

Schreibe ich nämlich anstatt auf das Netzlaufwerk direkt auf die Festplatte, erhalte ich noch viel mehr Samples.

Da scheint tatsächlich das Speichermedium zu limitieren, aber woher kommen die Daten her?
Die will ich ja gar nicht speichern.

Oder stimmt was mit meiner Schleife nicht?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2012, 15:07 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2012 15:10 von GerdW.)
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.425
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Binärdatei schreiben: Zu viele Samples?
Hallo Hannes,

noch mal die Frage: Hast du Beitrag #4 gelesen? Und auch schon ausprobiert?

Bisher hast du nämlich beim DAQmxRead nicht vorgegeben, wieviele Samples du auslesen willst. Wenn du das machen würdest, bekämest du auch genau die gewünschte Anzahl geliefert. Aber du liest ja anscheinend meine Ausführungen nicht...
Die Puffergröße ist nur eine Empfehlung. Lies dir die Kontexthilfe dazu durch!

Zitat:Die Anzahl an Samples stellt da ja dann den Puffer dar. Im Grunde ist dann das doch das selbe, wenn ich den auf 1000 Samples stelle?
Nein, es ist nicht das gleiche! Einmal fragst du eine explizite Anzahl Messwerte ab, beim anderen alle Messwerte, die zwischenzeitlich aufgenommen wurden. Und "zwischenzeitlich" ist hier das undefinierte Element!!!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Buffer Size, Samples per Channel zusammenhang mriworld 3 2.445 17.10.2022 16:31
Letzter Beitrag: Martin.Henz
  Ausgegebene Samples ermitteln Keppi 2 3.656 07.11.2014 10:25
Letzter Beitrag: Keppi
  Samples pro Kanal und Zeiterfassung Mimo_LV002 6 7.212 15.12.2012 20:02
Letzter Beitrag: GerdW
  DAQ Assistant stop(t) N Samples Body Lotion 2 4.935 23.10.2012 16:12
Letzter Beitrag: Body Lotion
  Samples und Sample Rate ReneP 11 20.250 08.08.2011 13:16
Letzter Beitrag: ReneP
  Wie ist bitte die Definition von RATE und SAMPLES TO READ zillawilli 4 6.333 14.06.2011 09:52
Letzter Beitrag: Lucki

Gehe zu: