22.05.2008, 09:30
Hallo Leute,
ich hab hier ein Problem und hoffe ihr könnt mir helfen.
Ich hab hier einen Meßverstärker (keine NI-Hardware) den ich über eine mitgelieferte DLL ansteuere. Ich hab mir ein VI programmiert, welches mir immer ein Array von Messwerten abholt.
Leider ist die Anzahl der Messwerte im Array nicht konstant. Abhängig von der eingestellten Datenrate liefert mein VI mal ein Array mit 4 Werten, mal eins mit 3 Werten usw..
Aus diesem Array erstelle ich pro Schleifendurchlauf ein Signalverlaufs-Datentyp. Hierfür ermittle ich mir einfach das dt (in der DLL ist eine funktion "getFreq() die die Datenrate ermittelt) und ich ermittle mir das t0 aus der Systemzeit. Damit hab ich alle nötigen Informationen um mein Signalverlauf zu erstellen.
Nun das Problem:
Diese Signalverläufe übergebe ich an mein Signalverlaufsdiagramm (Chart). Das Chart ordnet nun anhand der Information t0 und dt die ankommenden Daten korrekt im Signalverlaufsdiagramm (Chart) an.
Aber leider kommt es manchmal vor, dass sich das letzte Datenpacket mit dem neuen zeitlich überschneidet! Dies führt zu einem löschen des Signalverlaufsdiagramms!
Also ein Bsp.:
t0 = 100 (nur zur Vereinfachung); dt = 1; Y[W1;W2;W3]
Dann ist W1 dem Zeitpunkt t0 zugeordnet, also 100.
Und W3 ist dem Zeitpunkt t0 + 2*dt zugeordnet, also 102.
Nun kommt ein zweites Datenpacket an und dieses darf aufkeinenfall mit einem t0-Wert anfangen der kleiner ist als t0+2*dt (102) -> sonst reset des Charts!
Nun ja, aber das ist alles so ungenau t0 wird aus der Systemzeit ermittelt usw. Es kommt immer wieder zu überschneidungen und damit zu einem löschen des gesamten Graphen.
Hatte jemand mit ähnlichen Problemen zu tun? Benötigt Ihr noch weitere Informationen um mir helfen zu können?
Hoffe jemand kennt eine Lösung.
mfg
m0n0g0n
ich hab hier ein Problem und hoffe ihr könnt mir helfen.
Ich hab hier einen Meßverstärker (keine NI-Hardware) den ich über eine mitgelieferte DLL ansteuere. Ich hab mir ein VI programmiert, welches mir immer ein Array von Messwerten abholt.
Leider ist die Anzahl der Messwerte im Array nicht konstant. Abhängig von der eingestellten Datenrate liefert mein VI mal ein Array mit 4 Werten, mal eins mit 3 Werten usw..
Aus diesem Array erstelle ich pro Schleifendurchlauf ein Signalverlaufs-Datentyp. Hierfür ermittle ich mir einfach das dt (in der DLL ist eine funktion "getFreq() die die Datenrate ermittelt) und ich ermittle mir das t0 aus der Systemzeit. Damit hab ich alle nötigen Informationen um mein Signalverlauf zu erstellen.
Nun das Problem:
Diese Signalverläufe übergebe ich an mein Signalverlaufsdiagramm (Chart). Das Chart ordnet nun anhand der Information t0 und dt die ankommenden Daten korrekt im Signalverlaufsdiagramm (Chart) an.
Aber leider kommt es manchmal vor, dass sich das letzte Datenpacket mit dem neuen zeitlich überschneidet! Dies führt zu einem löschen des Signalverlaufsdiagramms!
Also ein Bsp.:
t0 = 100 (nur zur Vereinfachung); dt = 1; Y[W1;W2;W3]
Dann ist W1 dem Zeitpunkt t0 zugeordnet, also 100.
Und W3 ist dem Zeitpunkt t0 + 2*dt zugeordnet, also 102.
Nun kommt ein zweites Datenpacket an und dieses darf aufkeinenfall mit einem t0-Wert anfangen der kleiner ist als t0+2*dt (102) -> sonst reset des Charts!
Nun ja, aber das ist alles so ungenau t0 wird aus der Systemzeit ermittelt usw. Es kommt immer wieder zu überschneidungen und damit zu einem löschen des gesamten Graphen.
Hatte jemand mit ähnlichen Problemen zu tun? Benötigt Ihr noch weitere Informationen um mir helfen zu können?
Hoffe jemand kennt eine Lösung.
mfg
m0n0g0n