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 

Dieses Thema hat akzeptierte Lösungen:

Präzises Auslesetiming ohne Hardware Trigger



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!

18.11.2011, 12:33 (Dieser Beitrag wurde zuletzt bearbeitet: 18.11.2011 13:11 von jg.)
Beitrag #1

Piddi Offline
LV-User Masterarbeit


Beiträge: 4
Registriert seit: Nov 2011

11
2009
DE_EN


Deutschland
Question Präzises Auslesetiming ohne Hardware Trigger
Hallo zusammen!

Der Hintergrund:

Das VI soll mit möglichst exakt 1kHz die innerhalb der letzten 1ms gezählten Flanken einer PCI 6602 Karte auslesen.
Mein Ansatz ist eine zeitgesteuerte Schleife mit DAQmx-Lesebefehl, sowie programmgesteuerter I/O am DAQmx Kanal.
Zur Kontrolle ist momentan ein Funktionsgenerator mit 1MHz angeschlossen.
Theoretisch sollte das VI in "data" einen Vektor gefüllt mit Werten = 1000 ausspucken.
Der Zeitdifferenz "x-y" (vgl. Screenshot) sollte bei 10.000 ms liegen.

Was klappt:

- "x-y" ist gleich 10.000 ms
- 99,99% der Flanken werden gezählt

Jetzt zum Problem:

Leider wird der DAQmx-Befehl "Lesen" nicht immer im Abstand 1ms aufgerufen.
Das Histogramm der Werte in "data" (siehe Screenshot) deutet darauf hin.
Im Histogramm stören die beiden Nebenmaxima bei 0 und 2000.
Meine Interpretation ist, dass der Befehl "Lesen" bei Iteration i zu spät ausgeführt wurde
-> bis zum Lesen zu viele Pulse gezählt
und "Lesen" bei Iteration i+1 wieder pünktlich ausgeführt werden konnte
-> weniger als 1 ms seit dem letzten "Lesen" und deshalb weniger gezählte Flanken

Meine Frage:

Wie kann man den Zeitpunkt zum ausführen des "Lesen"-Befehls zuverlässiger festnageln - ohne Hardware Trigger bzw. Gate-Signal.
Gibts vielleicht bei dem Modus für verspätete Iterationen der zeitgesteuerten Schleife noch potential?
Ich habe alle Modi mal ausprobiert und ohne den Unterschied wirklich zu verstehen keine Verbesserung festgestellt.

Vielen Dank!


EDIT jg: Externer Bildlink gelöscht


Angehängte Datei(en) Thumbnail(s)
   

9.0 .vi  Zeitgesteuerte Schleife LV9.vi (Größe: 168,83 KB / Downloads: 129)

11.0 .vi  Zeitgesteuerte Schleife LV11.vi (Größe: 44,54 KB / Downloads: 149)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.11.2011, 12:44
Beitrag #2

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Präzises Auslesetiming ohne Hardware Trigger
Hi
Ich denke, Deine Chancen ohne HW-Trigger auszukommen stehen sehr schlecht. Das habe ich auch einmal probiert.

Wenn Du keinen externen Trigger hast, kannst Du einen anderen Counter als Frequenzgenerator auf der Karte nutzen und das interne Signal-Routing, um seinen Ausgang als Latch-Trigger zu verwenden. Damit wäre kein externes Verkabeln nötig. Dann musst Du noch den Buffergröße richtig einstellen, damit der While-Loop-Timing-Jitter Dir keinen Strich durch die Rechnung macht.

Mit diesem Konzept bin ich sogar ohne Timed-Loop ausgekommen.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.11.2011, 13:13
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Präzises Auslesetiming ohne Hardware Trigger
Offtopic2
Wenn du deinen Screenshot als PNG abspeicherst, dann ist die Datei
1) viel kleiner (40 kB anstatt 3,6 MB) und
2) zweitens hier im Forum hochladbar, was laut LVF-Regeln sowieso erwünscht ist.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.11.2011, 14:56
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Präzises Auslesetiming ohne Hardware Trigger
(18.11.2011 12:33 )Piddi schrieb:  Das VI soll mit möglichst exakt 1kHz die innerhalb der letzten 1ms gezählten Flanken einer PCI 6602 Karte auslesen.
Habe jetzt nicht speziell bei der 6602-Karte nachgeschaut, aber normalerweise geht genau das mit jeder Universal-Messkarte, ohne daß dafür groß programmiert werden muß.

"Daqmx create Virtual Channel.vi" ist einzustellen auf: CI-Flankenzählung.
"QAQmx Timing" ist einzustellen auf "Sample Takt", Rate = 1000.
Aus dem "DAQmx Read" kommen dann als Array die Anzahl der Flanken pro ms der letzten ms heraus.

Es gibt in der Beispielsammlung unter:
Signalerfassung mit Hardware / Daqmx / Zählergstützte Messung / Zählen digitaler Ereignisse
mindestens ein Beispiel, welches massgenau zu Deiner Aufgabe passt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.11.2011, 16:10 (Dieser Beitrag wurde zuletzt bearbeitet: 18.11.2011 16:16 von BNT.)
Beitrag #5

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Präzises Auslesetiming ohne Hardware Trigger
Hi
ich stimme meinem Vorredner zu.

Am Sample Clock.vi kann zusätzlich der Sample Trigger (Source) ausgewählt werden. Extern oder interne Signale, die entwerden schon direkt verbunden sind, oder indirekte Routen, die über die Routing-VIs verbunden werden können. (DAQmx->Advanced->Signal Routing)

Direkte und indirekte Routen durch das System kannst Du dir MAX ansehen.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.11.2011, 10:23 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2011 10:27 von Piddi.)
Beitrag #6

Piddi Offline
LV-User Masterarbeit


Beiträge: 4
Registriert seit: Nov 2011

11
2009
DE_EN


Deutschland
RE: Präzises Auslesetiming ohne Hardware Trigger
Danke erst einmal für die Antworten!
Ich habe versucht die Idee mit dem Sample Clock.vi und dem karteninternen Signal Routing umzusetzen.
Leider erhalte ich eine Fehlermeldung (siehe Screenshot). Den Sinn der Fehlermeldung glaube ich zu verstehen.
Glas1
Was muss geändert werden, damit der Ressourcen-Konflikt nicht auftritt?


Angehängte Datei(en) Thumbnail(s)
   

9.0 .vi  PCI 6602 Programm EXAKT.vi (Größe: 23,07 KB / Downloads: 144)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.11.2011, 10:47
Beitrag #7

Piddi Offline
LV-User Masterarbeit


Beiträge: 4
Registriert seit: Nov 2011

11
2009
DE_EN


Deutschland
RE: Präzises Auslesetiming ohne Hardware Trigger
Da hat sich noch ein Fehler im VI eingeschlichen. Ändert aber nichts an der Fehlermeldung.
Jetzt mit dem richtigen Anschluss für den Sample Takt...


Angehängte Datei(en)
9.0 .vi  PCI 6602 Programm EXAKT.vi (Größe: 23,15 KB / Downloads: 135)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.11.2011, 13:04
Beitrag #8

Piddi Offline
LV-User Masterarbeit


Beiträge: 4
Registriert seit: Nov 2011

11
2009
DE_EN


Deutschland
Thumbs Up RE: Präzises Auslesetiming ohne Hardware Trigger

Akzeptierte Lösung

Hab das Problem jetzt selbst gelösts.
1.) Es ist nicht notwendig die Ausgänge (ctr1 out und ctr0 gate) extra zu verbinden, das passiert schon im Sample Takt / "Stoppuhr" VI. Deshalb kam es zu dem Ressourcen-Konflikt.
2.) Die Pulsfolge musste noch auf kontinuierlich definiert werden.

Gruß
Piddi


Angehängte Datei(en) Thumbnail(s)
   

9.0 .vi  PCI 6602 exakter Counter.vi (Größe: 23,43 KB / Downloads: 155)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.11.2011, 13:13
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Präzises Auslesetiming ohne Hardware Trigger
Kleiner Verbesserungsvorschlag:
Du solltest per Datenfluss sicherstellen, dass die Kanaleigenschaften auch wirklich vor Start des Tasks gesetzt werden.
Außerdem kannst du die beiden Eigenschaften mit einer PropertyNode abhandeln:
   
Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Pre-Trigger auf aktuellen Trigger-Kanal einsetzen yowa 0 4.788 22.02.2016 15:58
Letzter Beitrag: yowa
Question Gating von DAQ Hardware (hier: Sample Trigger) Novgorod 4 4.849 28.05.2014 23:48
Letzter Beitrag: Novgorod
  Trigger Counter (no registered trigger lines) NILVuser 2 8.586 02.09.2011 21:55
Letzter Beitrag: NILVuser
  Erzeugung eines digitalen Trigger signals um 2 Analoge Signal per Trigger synchron einzulesen Meddoc 3 8.159 15.09.2009 06:04
Letzter Beitrag: rasta

Gehe zu: