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!
Hallo,
ich versuche gerade mit dem einfachen Funktionsgenerator über eine A/D-Wandler von Meilhaus Signale mit vorgegebener Amplitude und Frequenz auszugeben. Um das ganze zu überprüfen gebe ich das Signal vom Wandler an einem Oszilloskop aus.
Ich gebe meinem Funktionsgenerator Offset, Amplitude, WaveForm und Frequenz vor sowie die Abtast-Info.
Bei eingestellter Abtast-Info von 1000 Samples pro Sekunde und Sample Anzahl (1000) bekomme ich bei einer Vorgegebenen Frequenz von 0,5 Hz am Oszilloskop eine Periodendauer von 4s. Erwartet wird aber eine Periodendauer von 2s. Auch im Signalverlaufsdiagramm erhalte ich die Flanken zum gleichen Zeitpunkt wie auf meinem Oszi, es liegt somit nicht am Wandler, dass dieser zu langsam arbeitet.
Des weiteren ist mir aufgefallen, dass sich bei Änderung der Samples pro Sekunde die Periodendauer ändert. Dies sollte aber eigentlich nicht so sein.
vielleicht solltest du auch einmal zeigen, wie du dein Signal ausgibst und wie du die Meilhaus-Hardware initialisiert hast?
Oder kurierst du Krankheiten immer nur anhand ihrer Auswirkungen?
Zitat:was meinst du damit, wie ich mein Signal ausgebe und wie ich mein Board installiert habe?
wenn du dein VI anhängen würdest, müsste man seine Diagnose nicht nur aufgrund der von dir geschilderten Auswirkungen erstellen, sondern könnte auch (evtl.) die Ursachen erkennen! Ich habe nicht gefragt, wie du das Board installiert hast, sondern wie du initialisierst...
dann hab ich mir wohl verlesen, im Anhang ist auf jeden Fall mal ein Screenshot vom Programm, mehr hab ich grad leider nicht da
hoffe das hilft dir erst mal zu verstehen, was ich versuche zu machen
sumsi
07.01.2013, 15:46 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2013 15:47 von GerdW.)
2 Fehler:
- Siehst du den türkisen Punkt an der Funktion "To Eng"? Der hat eine Bedeutung...
- In der inneren While-Loop gibst du Einzelwerte aus und die Schleife läuft ohne irgendein Timing. Wie willst du hier sicherstellen, dass die Samplinginformationen der Waveform beachtet werden?
Wozu überhaupt die innere While-Loop? Wäre hier nicht eher eine FOR-Loop angebracht?
schon mal danke für die Hilfe, folgendes habe ich jetzt mal umgesetzt:
aus der inneren while-loop eine for-schleife gemacht und in diese Schleife einen Timer gesetzt, der 10ms wartet sodass ich jetzt am Oszi die richtigen Periodendauern angezeigt bekomme. Als Schleifenzähler nutze ich die Anzahl der Samples. Um jedoch pro Schleifendurchlauf eine komplette Periode zu bekommen muss ich die Anzahl der Samples jetzt an die Frequenz bzw. die Samples pro Sekunde anpassen.
Bei dem Problem ist wohl was mit den Signaltypen nicht in Ordnund, oder bin ich da auf dem komplett falschem weg? Im Anhang noch mal mein VI wie es momentan aussieht.
kann es sein, dass ich mein Problem am besten mit einer zeitgesteuerten Schleifen lösen kann? So wie es momentan ist, läuft das System nicht zeitstabil genug, d.h. meine Periodendauer weicht je nach Frequenz von der gewünschten Periodendauer ab.
du hast gerade den bekannten Fakt für dich erkannt, dass auf einem Windows-System niemals eine hohe Güte der Frequenz einer Schleife erreicht werden kann (Stichworte: Multitasking, Process Scheduler, Interrupts, Kernel vs. User Mode, ...)!
Eine TWL kann geringfügig bessere Ergebnisse erzielen, ist aber unter Windows auch auf einen 1kHz-Takt beschränkt und unterliegt den gleichen Einschränkungen beim Jitter...
d.h. für mich also, ich kann es mit einer twl probieren und hoffen das es besser funktioniert
ganz genaue Frequenzen wird es unter windows also nie geben, wenn ich dich richtig verstehe.
wobei wenn ich richtig liege habe ich ja bei einer Taktung von 1000 kHz die Möglichkeit 1000 Werte pro Sekunde zu übergeben, dieser Wert wird ja variabel an den Frequenzgenerator übergeben. Da ich später mit Frequenzen unter 10 Hz arbeiten möchte sollte ich da doch eigentlich keine Probleme bekommen!