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 

Zeitliche Auflösung bei der Erfassung von Signalen



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!

16.05.2017, 16:43 (Dieser Beitrag wurde zuletzt bearbeitet: 17.05.2017 07:02 von A.Berndsen.)
Beitrag #1

Verrain Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: May 2017

15.0.1 (32Bit)
2017
DE



Zeitliche Auflösung bei der Erfassung von Signalen
Hallo liebe Leute, dies ist mein erster Thread, bin relativ neu vertraut mit der Software, habe mir aber sicherlich mittlerweile 100 Seiten A4 Tutorials angeschaut.

Ich habe 2 Photodioden, die mindestens mit einer zeitlichen Auflösung von 20µs GLEICHZEITIG ausgelesen werden sollen. Ist das überhaupt möglich mit Labview?

Ich hab im Anhang mal ein Minimalbeispiel gepackt, mit dem ich die zeitliche Auflösung von Labview ausprobieren wollte. Diese liegt ungefähr bei 10 bis 40µs und damit gerade so am Limit. Gibt es eine Möglichkeit, eine noch höhere zeitliche Auflösung zu erreichen? Abgesehen davon habe ich in meinem eigentlich Programm immer noch einen zufälligen Versatz zwischen beiden Messschleifen im Millisekundenbereich, aber das liegt vielleicht noch daran, dass ich das ganze noch nicht perfekt optimiert habe.

Ich meine notfalls kann ich ja mit der relative timefunction ziemlich genau die Differenz zwischen beiden Aufnahmeschleifen bestimmen und das ganze am Ende wieder "gerade" rücken, oder (Wie sehr kann ich hier auf die Genauigkeit vertrauen)?

Viele Grüße
Verrain
------------------------------------------------------------
System: 64 Bit AMD Athlon™ II X2 215 Processor 2.71 GHz
Labview Version: 32 Bit 15.0.1


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.05.2017, 16:54 (Dieser Beitrag wurde zuletzt bearbeitet: 16.05.2017 18:29 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Test
Hallo,

Zitat:Wie sehr kann ich hier auf die Genauigkeit vertrauen)?
Das Einlesen der Signale erledigt die Hardware mit ihrem eigenen Timer - viel genauer als du es unter Windows hinbekommen wirst!
Du brauchst nur DAQ-Hardware, die 50kHz mit zwei Kanälen unterstützt.. - dann kannst du dich 100%ig darauf verlassen…

Zitat:Ich hab im Anhang mal ein Minimalbeispiel gepackt, mit dem ich die zeitliche Auflösung von Labview ausprobieren wollte.
Dein Programm misst nur, wie schnell nacheinander der HighRes-Timer abgefragt werden kann.
Das hat nichts mit "zeitlicher Auflösung von LabVIEW" zu tun…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.05.2017, 09:31 (Dieser Beitrag wurde zuletzt bearbeitet: 17.05.2017 09:32 von rolfk.)
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Zeitliche Auflösung bei der Erfassung von Signalen
(16.05.2017 16:43 )Verrain schrieb:  Ich meine notfalls kann ich ja mit der relative timefunction ziemlich genau die Differenz zwischen beiden Aufnahmeschleifen bestimmen und das ganze am Ende wieder "gerade" rücken, oder (Wie sehr kann ich hier auf die Genauigkeit vertrauen)?

Unter Windows (und jedem anderen nicht-realtime Betriebssystem) grundsätzlich gar nicht! Nicht mal Millisekunden-Genauigkeit ist damit zu garantieren und in ganz seltenen Extremfällen kann Dein Prozess auch mal locker eine oder mehrere Sekunden komplett inaktiv bleiben! Wenn Du solche Erfassungsanforderungen hast, gehört das ganz klar durch ein Hardwareinterface gemacht, so wie es Gerd auch schon erwähnte. Dazu wäre noch die Frage ob Du diese zwei Kanäle tatsächlich echt simultan lesen musst. Dann benötigst Du eine Simultanous Sampling Karte und die sind normalerweise einiges teurer, da für jeden Kanal ein eigener AD-Konverter vorhanden sein muss und das sind relative teure Bauteile. Mit einer multiplexten Karte wird ein Kanal nach dem anderen gelesen und hast Du daher eine kleine Phasenverschiebung zwischen den Kanälen. Diese kann aber relativ klein gehalten werden indem man das Sampling der Kanäle nicht über das gesamte Scaninterval verteilt, sondern alle Kanäle so schnell die Karte es erlaubt hintereinander liest und dann wartet bis das gesamte Scaninterval abgelaufen ist. Je schneller die Karte also ist, umso weniger Phasenverschiebung hat man, dabei muss man aber berücksichtigen dass die Settling-time des AD-Konverters auch abhángig ist von der Impedanz der Signalquelle.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 10:04 (Dieser Beitrag wurde zuletzt bearbeitet: 18.05.2017 10:32 von Verrain.)
Beitrag #4

Verrain Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: May 2017

15.0.1 (32Bit)
2017
DE



RE: Zeitliche Auflösung bei der Erfassung von Signalen
Vielen Dank für euer FeedbacK! Ja bei dem PC handelt sich um ein Windowssystem, es stände aber notfalls auch ein Mac zur Verfügung, falls es das besser macht.

Also ich habe eine Hardware vor Labview geschaltet, eine sogenannte ADwin Gold (http://www.adwin.de/de/produkte/gold.html). Sitz hier in einem Universitätslabor, da ist gute Hardware vorhanden Smile.

Ich denke mal, die wird den Anforderungen gerecht, die ihr erwähntet. Zwecks Phasenverschiebungen steht mir auch noch ein Lock_in Amplifier zur Verfügung.

Soweit ich das aus dem vorhanden Programmen meiner Vorgänger ersehen kann, werden immer 1600 Werte von der Hardware geholt und das in einer Schleife, bis alle Messwerte auf dem PC sind. Wenn ich genau darüber nachdenke, wird die ADwin sicherlich alle Messwerte zwischenbuffern und diese dann Portionsweise übergeben, so dass es keinen zeitlichen Versatz zwischen den Übertragungsschleifen geben wird.

Aber dennoch habe ich einen Versatz zwischen beiden Signalen von ca. -20 bis + 20 µs. Ich Vermute mal, dass Problem liegt darin, dass der Startbefehl zum Messen nicht "gleichzeitig genug" gegeben werden kann. Ich hab das Blockdiagramm mal angefügt.

FiFo Full schaut nur nach, wie voll der Buffer ist (1600 oder weniger) und get FiFo Float holt dann die Daten herüber.

Nun ist das ja schon nebeneinander gepackt, dass es hoffentlich gleichzeitig startet, aber da gibt es sicherlich einen zeitlichen Versatz zwischen beiden Startbefehlen (also der Zeitpunkt auf dem FiFo Full abgefragt wird, denn das erste mal wird sicherlich auch den Messvorgang starten)... gibt es eine Möglichkeit, dass noch Zeiteffizienter zu gestalten?

Grüße
Verrain


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 10:54
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitliche Auflösung bei der Erfassung von Signalen
Hallo Verrain,

Zitat:Zwecks Phasenverschiebungen steht mir auch noch ein Lock_in Amplifier zur Verfügung.
Das ist damit nicht gemeint!
Phasenverschiebung bedeutet hier: bei einem ADC hinter einem MUX muss der MUX immer zwischen den zu messenden Kanälen umschalten. Dieses Umschalten benötigt Zeit und führt dazu, dass die Signale nicht gleichzeitig, sondern jeweils mit einer kleinen Verzögerung (=Phasenverschiebung zueinander) gewandelt werden!

Zitat:dennoch habe ich einen Versatz zwischen beiden Signalen von ca. -20 bis + 20 µs. Ich Vermute mal, dass Problem liegt darin, dass der Startbefehl zum Messen nicht "gleichzeitig genug" gegeben werden kann.
Das könnte bei deinem VI der Fall sein…
Erlaubt der Adwin-Treiber nicht das Erfassen mehrerer Kanäle mit nur einem Funktionsaufruf?

Warum ist das VI so schrecklich unaufgeräumt? Wozu die unnötige Sequenzstruktur?

Zitat:gibt es eine Möglichkeit, dass noch Zeiteffizienter zu gestalten?
Das hängt vom Treiber für deine DAQ-Hardware ab!
Kannst du mehrere Kanäle mit einem Task/einem Funktionsaufruf abfragen?
Kannst du einen Start-Trigger für mehrere Hardwarekanäle verwenden?
Lies mal dein Handbuch oder frage den Adwin-Support!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 12:07
Beitrag #6

Verrain Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: May 2017

15.0.1 (32Bit)
2017
DE



RE: Zeitliche Auflösung bei der Erfassung von Signalen
Zitat:Erlaubt der Adwin-Treiber nicht das Erfassen mehrerer Kanäle mit nur einem Funktionsaufruf?

Also ich habe jetzt mal in den externen Bibliotheksaufruf geschaut. Da steht im Pfad nur Adwin32.* drin und unten kann ich zwischen vielen Funktionen auswählen (dort ist leider keiner dabei). Ich weiß nicht worauf sich dieser Pfad bezieht, sonst hät ich nachgeschaut, ob der Code offen ist und ich selbst eine Funktion schreiben kann, die nacheinander diese Einzelfunktionen aufrufen kann.

Zitat:Warum ist das VI so schrecklich unaufgeräumt? Wozu die unnötige Sequenzstruktur?

Wie gesagt, habe das Programm übernommen. Aber ja du hast Recht. Die Sequenz Struktur ist an sich nicht notwendig, wenn im mittleren Part nur eine while-Schleife ist.

Zitat:Das hängt vom Treiber für deine DAQ-Hardware ab!
Kannst du mehrere Kanäle mit einem Task/einem Funktionsaufruf abfragen?
Kannst du einen Start-Trigger für mehrere Hardwarekanäle verwenden?
Lies mal dein Handbuch oder frage den Adwin-Support!

Das werde ich machen. Gibt es denn wirklich keine Möglichkeit, diesen zeitlichen Versatz mit einer höheren Genauigkeit (ca. 10^-7s) zu vermessen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 14:23 (Dieser Beitrag wurde zuletzt bearbeitet: 18.05.2017 14:24 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zeitliche Auflösung bei der Erfassung von Signalen
Hallo Verrain,

Zitat:Also ich habe jetzt mal in den externen Bibliotheksaufruf geschaut.
Das meinte ich nicht…
Du hast da einen Treiber (aka Bibliothek/Ansammlung von VIs), mit dem du mit der Adwin-Hardware kommunizieren kannst. Zu diesem Treiber sollte es ein Manual geben und auch Beispiel-VIs. Beides kannst du studieren!

Zitat:Gibt es denn wirklich keine Möglichkeit, diesen zeitlichen Versatz mit einer höheren Genauigkeit (ca. 10^-7s) zu vermessen?
Noch einmal von vorn:
Wenn deine Hardware es erlaubt (Handbuch/Manual lesen!), dann wird die DAQ-Karte selbst mit höchstmöglicher Genauigkeit deine Daten aufnehmen. Entweder bietet deine DAQ-Karte simultane Messkanäle (Handbuch/Manual lesen!), dann hast du keinerlei zeitlichen Versatz zwischen den Messwerten. Oder deine Karte bietet nur einen ADC mit einem MUX, dann hast du einen genau definierten zeitlichen Versatz zwischen den Messkanälen - Handbuch/Manual lesen!

Es läuft alles auf Rtmfx hinaus - oder du rufst den Adwin-Support an und fragst den mal deine speziellen Fragen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.05.2017, 15:44
Beitrag #8

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
RE: Zeitliche Auflösung bei der Erfassung von Signalen
Hallo Verrain,

laut Produktübersicht Deiner Hardware gibt es für die ungeraden und geraden Analogeingänge separate A/D-Wandler.
Davor sitzt ein Multiplexer für die jeweilige Gruppe von Eingängen.
   
Was die Treiber allerdings aus der Hardware rausholen sagt dir das Manual oder der Support.

Wie Gerd schon sagt:

(18.05.2017 14:23 )GerdW schrieb:  Es läuft alles auf Rtmfx hinaus - oder du rufst den Adwin-Support an und fragst den mal deine speziellen Fragen!

Grüße
Andreas

Geht nicht, gibts nicht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: