28.04.2008, 14:46
Hi leute,
ich hab hier ein zweikanal messgerät (USB) welches ich mit hilfe einer hersteller dll ansteuere. Nun bekomme ich pro abfrage ein array aus double werten und daraus bau ich mir mein datentyp Signalverlauf.
Um den signalverlauf korrekt darzustellen ermittle ich das dt mit einer funktion aus der dll (getFreq()).
Nun hat sich aber rausgestellt das diese funktion einen recht groben wert liefert und somit führt dies bei erfassung mehrer kanäle (mit leicht unterschiedlichen datenraten) früher oder später zu einer desynchronisierung.
Noch etwas zum besseren verständnis:
Ich erfasse pro schleifendurchgang ein array aus double werten (pro Kanal).. dann mach ich daraus ein Signalverlauf.. und hänge es an mein Signalverlauf (Signalverlaufsarray) welches sich in einem Schieberegister befindet. Das problem ist... das der Datentyp Signalverlauf in LabVIEW aus nem array aus messwerten (Y) besteht, einem dt und einem zeitstempel t0. also selbst bei sehr geringen abweichungen von dt wird es auf lange sich zu desynchronisierung kommen. wie löst ihr solche probleme? Das ist doch ein 0815 problem oder nicht?
Naja jedenfalls.. dachte ich mir.. wenn man pro schleifendurchgang sich die systemzeit schnappen würde.. also das t0 neu ermitteln würde.. könnte es das problem lösen.. aber das wird ja verworfen wenn man einen neuen signalverlauf an einen alten anfügt (da wird ja nur das erste t0 verwendet).
Falls noch einiges unklar sein sollte erkläre ich gerne mehr.
mfg
ich hab hier ein zweikanal messgerät (USB) welches ich mit hilfe einer hersteller dll ansteuere. Nun bekomme ich pro abfrage ein array aus double werten und daraus bau ich mir mein datentyp Signalverlauf.
Um den signalverlauf korrekt darzustellen ermittle ich das dt mit einer funktion aus der dll (getFreq()).
Nun hat sich aber rausgestellt das diese funktion einen recht groben wert liefert und somit führt dies bei erfassung mehrer kanäle (mit leicht unterschiedlichen datenraten) früher oder später zu einer desynchronisierung.
Noch etwas zum besseren verständnis:
Ich erfasse pro schleifendurchgang ein array aus double werten (pro Kanal).. dann mach ich daraus ein Signalverlauf.. und hänge es an mein Signalverlauf (Signalverlaufsarray) welches sich in einem Schieberegister befindet. Das problem ist... das der Datentyp Signalverlauf in LabVIEW aus nem array aus messwerten (Y) besteht, einem dt und einem zeitstempel t0. also selbst bei sehr geringen abweichungen von dt wird es auf lange sich zu desynchronisierung kommen. wie löst ihr solche probleme? Das ist doch ein 0815 problem oder nicht?
Naja jedenfalls.. dachte ich mir.. wenn man pro schleifendurchgang sich die systemzeit schnappen würde.. also das t0 neu ermitteln würde.. könnte es das problem lösen.. aber das wird ja verworfen wenn man einen neuen signalverlauf an einen alten anfügt (da wird ja nur das erste t0 verwendet).
Falls noch einiges unklar sein sollte erkläre ich gerne mehr.
mfg