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 

Messung nur bis etwa 3Hz!?!?



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!

25.06.2007, 13:49
Beitrag #1

OliverR Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jun 2007

ab 7.1
2005
de_en

910xx
Deutschland
Messung nur bis etwa 3Hz!?!?
Hallo zusammen!

Mittels LabVIEW soll das Auslesen eines AC Signals stattfinden. So weit, so gut. Das Signal wird auf einen Atmel Atmega16 Microcontroller gegeben, der mittels ADC und MAX232 die Daten über den Serialport an einen Rechner weitergibt. Dort soll LabVIEW die Ansteuerung des Microcontrollers sowie die Messung vornehmen und auswerten. Dabei gelingt es mir jedoch nicht, Signale (sinnvoll) zu messen, sobald deren Frequenz höher als etwa 3 Hz liegt.

Testweise wurde mit einem TTi 40MHz Funktionsgenerator ein Sinussignal bzw. Pulssignal auf einen Kanal gelegt und ausgelesen.

Das Auslesen geschieht ungepuffert direkt nach Aufforderung:
LabVIEW sendet ein "m", der Microcontroller führt die Messung durch und sendet das Ergebnis an LabVIEW zurück. Dort werden die Daten in einen Spannungswert skaliert und auf einem Graphen ausgegeben.

LabVIEW sollte doch in der Lage sein, bis auf etwa 1ms Schleifen durchzuführen, das entspräche aber einer Frequenz von 1 kHz - davon bin ich aber leider weit entfernt...

Im Anhang findet Ihr das komplette Programm (erstellt mit LabVIEW 7.1 Express), die Aufteilung ist
Atmel16.vi - User Interface und Messschleifen
Communication.llb - VISA Kommunikation
Conversion.llb - Konvertieren der Daten in Spannungen, Hex in ASCII, etc.
Functions.llb - Diverse kleinere Funktionen
Test.llb - (nicht benötigt)
Variables.llb - Globale Variablen

Vielen Dank schonmal im Voraus!

Oliver


Angehängte Datei(en)
Sonstige .zip  Atmel_Atmega16.zip (Größe: 239,21 KB / Downloads: 263)

[img]http://www.darkarts.org/physics4you/images/LabVIEW_Cert_Asso_Developer_s.jpg[/img]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2007, 14:30
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Messung nur bis etwa 3Hz!?!?
Welche Probleme hast du denn?

Sieht deine aufgenommene Kurve schlecht aus oder siehst du ganz was anderes auf dem Graphen?

Timing/Frequenz-Problem ist vom Betriebssystem vorgegeben und nicht vom LabVIEW.

Wenn du die Daten gleich schön darstellen willst, kannst du vom Atmel einen Zeitstempel zu jedem Datensatz mitausgeben lassen und dann die Daten auf einem XY-Plot richtig darstellen.

eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2007, 23:17
Beitrag #3

OliverR Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jun 2007

ab 7.1
2005
de_en

910xx
Deutschland
Messung nur bis etwa 3Hz!?!?
' schrieb:Welche Probleme hast du denn?

Sieht deine aufgenommene Kurve schlecht aus oder siehst du ganz was anderes auf dem Graphen?

Timing/Frequenz-Problem ist vom Betriebssystem vorgegeben und nicht vom LabVIEW.

Wenn du die Daten gleich schön darstellen willst, kannst du vom Atmel einen Zeitstempel zu jedem Datensatz mitausgeben lassen und dann die Daten auf einem XY-Plot richtig darstellen.

eg

Hi Eugen,

problematisch ist tatsächlich die Geschwindigkeit der Datenaufnahme. Natürlich sieht infolgedessen der Graph der ausgegebenen Kurve nicht mehr annähernd so aus, wie die vom Funktionsgenerator erstellte Funktion. Die Vorgabe des Timings durch das OS ist mir bekannt, jedoch sollten selbst bei einem Schleifen-Timing von 100ms noch folglich 10Hz möglich sein. Pulse oder Sinussignale bis etwa 3 Hz können zwar problemlos aufgezeichnet und wiedergegeben werden, aber natürlich ist die Zeitachse eher in "a.u." zu verstehen und gibt keine absolut definierten Werte wieder...

Dabei stellt sich mir ohnehin die Frage: Messungen im kHz-Bereich werden vermutlich nur durch Hardware gelöst? Immerhin sind, soweit mir bekannt, mit LabVIEW und der passenden DAQmx-Hardware derartige Messungen problemlos möglich. Ich vermute, dass dabei die Messung durch die Hardware in schnellem Speicher gebuffered und auf einen Schwung ebenfalls mit Timestamp versehen übertragen wird?

Die Vergabe des Timestamps durch den Atmel würde auf einen Schlag 1000 meiner Probleme lösen! Die Programmierung des Microcontrollers habe nicht ich vorgenommen, die geschieht durch einen Dritten. Ist Dir eventuell Näheres dazu bekannt (wann, wie, wo? - oder so ähnlich...)? Dennoch würde sich doch aber die Aufzeichnung schneller Signale nur mit einem schnellen Zwischenspeicher realisieren lassen, oder?

Vielen Dank und viele Grüße!

Oliver

[img]http://www.darkarts.org/physics4you/images/LabVIEW_Cert_Asso_Developer_s.jpg[/img]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.06.2007, 23:27 (Dieser Beitrag wurde zuletzt bearbeitet: 25.06.2007 23:30 von eg.)
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Messung nur bis etwa 3Hz!?!?
Es stimmt, alles was du hier geschrieben hast.

Wenn du keine Möglichkeit hast den Zeitstempel (es darf auch ein relativer 8-Bit-Samplecounter sein) vom uC zu bekommen, dann ne weitere Frage:

kannst du davon ausgehen, dass die Daten wirklich mit 3 Hz kommen? Wenn ja, benutze einen Waveform Graphen dazu, da kannst du DeltaT fest einstellen.

Ansonsten musst du dich wirklich "blind" auf Betriebssystemtiming verlassen, na ja das Resultat unbekannt. 3 Hz sollte aber noch einigermassen gut aussehen.

Wenn es doch VIIIIEEEL zu schlecht aussieht, dann hast du was falsch (besser gesagt suboptimal) programmiert. Lade dein VI hier hoch, mal schauen was man da machen kann.

eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.06.2007, 07:19
Beitrag #5

OliverR Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Jun 2007

ab 7.1
2005
de_en

910xx
Deutschland
Messung nur bis etwa 3Hz!?!?
' schrieb:Es stimmt, alles was du hier geschrieben hast.

Wenn du keine Möglichkeit hast den Zeitstempel (es darf auch ein relativer 8-Bit-Samplecounter sein) vom uC zu bekommen, dann ne weitere Frage:

kannst du davon ausgehen, dass die Daten wirklich mit 3 Hz kommen? Wenn ja, benutze einen Waveform Graphen dazu, da kannst du DeltaT fest einstellen.

Ansonsten musst du dich wirklich "blind" auf Betriebssystemtiming verlassen, na ja das Resultat unbekannt. 3 Hz sollte aber noch einigermassen gut aussehen.

Wenn es doch VIIIIEEEL zu schlecht aussieht, dann hast du was falsch (besser gesagt suboptimal) programmiert. Lade dein VI hier hoch, mal schauen was man da machen kann.

eg

Ob die Möglichkeit des Zeitstempels, welcher Art auch immer, besteht, muss ich erst herausfinden - schlimmstenfalls kann ich auch ein wenig CSmile

Die Daten kommen vom Funktionsgenerator definitiv mit 3 Hz, ob das Einlesen jedoch exakt mit 3 Hz geschieht ist fraglich. Da jedoch die Ausgabe in "Realtime" (naja, so wie es das OS halt timed) erfolgt und der Sinus auch vollkommen reproduziert wird (keine Drops, die die Form wesentlich verunstalten), gehe ich davon aus, dass diese zumindest noch im Rahmen des Möglichen liegen.

Mein VI hatte ich im ersten Post bereits hochgeladen (Atmel Atmega16.zip), darin sind alle Dateien enthalten, da ich (natürlich) umfangreich in SubVIs ausgelagert habe.

Vielen Dank soweit!

Oli

[img]http://www.darkarts.org/physics4you/images/LabVIEW_Cert_Asso_Developer_s.jpg[/img]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: