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 

Pretrigger bei analoger und digitaler Erfassung



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!

28.07.2009, 19:55
Beitrag #1

Daniel234 Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: May 2009

8.6
2008
de

84389
Deutschland
Pretrigger bei analoger und digitaler Erfassung
Hallo zusammen,

ich möchte gleichzeitig analoge und digitale Signale aufzeichnen und die Messung mit einem Reference Trigger starten. Dann möchte ich mir die Werte vor und nach dem Trigger anschauen.
Benutze LabVIEW 8.6 und PXI 6254.
Ich habe folgendes Problem:

Nachdem der Trigger ausgelöst hat sind die beiden Graphen nicht synchron, das heißt die X-achsen stimmen zeitlich nicht überein.

       


Wenn ich das ganze ohne Trigger laufen lasse, funktioniert es.


       


Hab auch mal mein VI angehängt.


Sonstige .vi  syndigitalanalogtrigger.vi (Größe: 31,92 KB / Downloads: 300)



Gruß Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.07.2009, 08:06
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Pretrigger bei analoger und digitaler Erfassung
Hallo,

ich vermute mal ein wenig, aber ich denke, meine Vermutung stimmt:

Der Ablauf im Pretrigger-VI ist folgendermaßen:
1. Du definierst beide Tasks (AI & DI).
2. Du definierst, dass der DI-Task mit der "Sampleclock" vom AI-Task laufen soll.
3. Du startest den DI-Task, der jetzt auf die Sampleclock vom AI-Task wartet.
4. Du startest den AI-Task im Pretrigger-Modus.
5. Und jetzt kommen wir zu deinem Denkfehler und meiner Vermutung: Mit Start des AI-Task wird der AI-Sampletakt gestartet. Dies muss so sein! Schließlich muss der AI-Task ab diesem Zeitpunkt Daten aufnehmen und puffern, denn woher soll die DAQ-Karte "wissen", wann der Trigger kommt. Erst wenn der Trigger kommt, werden diese gepufferten Daten endgültig der DAQmx-Read dem Enduser zur Verfügung gestellt. Da aber der AI-Sampletakt schon lief, hat natürlich der DI-Task ab Start des AI-Task (und nicht ab Start des Pretriggers) seine Daten aufgezeichnet und ist schon längst fertig.

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
29.07.2009, 09:26
Beitrag #3

Daniel234 Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: May 2009

8.6
2008
de

84389
Deutschland
Pretrigger bei analoger und digitaler Erfassung
Hallo,
gibt es eine Möglichkeit den DI-Task mit dem AI-Task zusammen mit dem Pretriggersignal starten zu lassen?
Kann man das Pretriggersignal aus dem Trigger-VI irgendwie verwenden?

Gruß Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.07.2009, 12:23
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Pretrigger bei analoger und digitaler Erfassung
' schrieb:Hallo,
gibt es eine Möglichkeit den DI-Task mit dem AI-Task zusammen mit dem Pretriggersignal starten zu lassen?
Kann man das Pretriggersignal aus dem Trigger-VI irgendwie verwenden?

Gruß Daniel

Das hängt m.M. von der Hardwarekarte ab. Bei tuereren Karten wird das Analogtriggern in Hardware getan und dann kannst Du den entsprechenden Analogtrigger des AI Tasks als Starttrigger für die DI Funktion programmieren. Bei billigeren Karten wird der analoge Trigger erst in Software im Rechner gemacht und dann gibt es keine hardwaremässige Art um diesen Trigger als Starttrigger des DI Tasks zu verwenden. Und in Software wirst Du immer schnell mal einige ms oder mehr Delay erhalten.

Bei billigeren Karten sehe ich als einzige Möglichkeit, selber eine externe analoge Triggerschaltung zu machen.

Rolf Kalbermatter

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
29.07.2009, 13:10
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Pretrigger bei analoger und digitaler Erfassung
' schrieb:Hallo,
gibt es eine Möglichkeit den DI-Task mit dem AI-Task zusammen mit dem Pretriggersignal starten zu lassen?
Kann man das Pretriggersignal aus dem Trigger-VI irgendwie verwenden?

Gruß Daniel
Da die Zuordnung der Beispiele im NI-Examplefinder zu den Hardwarefähigkeiten einer NI-DAQ-Karte sehr gut ist, sieht es für mich nicht so aus, als ob du einen Digital-In bei der 6254 triggern kannst.

Möglicher (theoretischer, da nicht getester) Workaround: Du bleibst bei deinem Bsp. syndigitalanalogtrigger.vi, die Digital-In-Erfassung stellst du aber auf kontinuierlich um, die Daten sammelst du auf. Abbruch dieser DI-Erfassung, wenn Analog-In fertig ist.
Jetzt suchst du dir aus den erfassten DI-Daten die zur Analog-In passenden Werte heraus, schließlich hast du alle Werte seit Start des Analog-In-Tasks.

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
29.07.2009, 17:50 (Dieser Beitrag wurde zuletzt bearbeitet: 29.07.2009 17:51 von Daniel234.)
Beitrag #6

Daniel234 Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: May 2009

8.6
2008
de

84389
Deutschland
Pretrigger bei analoger und digitaler Erfassung
Das mit der kontinuierlichen Erfassung des DI kann ich leider nicht machen, da die Messung über Wochen andauern kann bis der Trigger auslöst.

Gibt es sonst keine Möglichkeit über die Software die digitale Erfassung mit dem Trigger der analogen Erfassung zu starten?

Gruß Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.07.2009, 19:28
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Pretrigger bei analoger und digitaler Erfassung
' schrieb:Das mit der kontinuierlichen Erfassung des DI kann ich leider nicht machen, da die Messung über Wochen andauern kann bis der Trigger auslöst.
Ui, Wochen, bis der Trigger auslöst..., und was macht das Programm währenddessen?;)Egal.
OK, noch mal meine Idee etwas ausbauen: Wieviele Messwerte vor Auslösung des Triggers und wieviele Messwerte nach Auslösung des Triggers nimmst du auf? Denn das ist die maximale Größe einen Puffers, die du für eine kontinuierliche DI-Erfassung vorsehen müsstest. D.h., du musst dir eigentlich nicht alle DI-Daten merken, sondern immer nur die Puffergröße. Ob so was viel Rechenzeit beansprucht, müsste man mal ausprobieren, wobei das sicher auch von der Sample-Rate abhängt (was sind da typische Werte).

' schrieb:Gibt es sonst keine Möglichkeit über die Software die digitale Erfassung mit dem Trigger der analogen Erfassung zu starten?
Ich habe erst mal keine Idee. Das Problem ist dein "Pretrigger"-Modus: Du willst ja auch einige Daten vor Auslösen des Triggers haben. Aber an die kommst du NUR dran, wenn sowohl Analog-In als auch Digital-In (zumindest im Hintergrund) immer laufen und Daten aufnehmen. Denn wie soll man sonst an Werte vor Auslösen des Triggersignals kommen? Zeitreisen in die Vergangenheit sind nach Einstein nicht möglich. Rolleyes

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
30.07.2009, 18:45
Beitrag #8

Daniel234 Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: May 2009

8.6
2008
de

84389
Deutschland
Pretrigger bei analoger und digitaler Erfassung
Zitat:Ui, Wochen, bis der Trigger auslöst..., und was macht das Programm währenddessen? Wink Egal.

Wie meinst du das? Ich dachte das Programm läuft im Hintergrund und wenn der Trigger auslöst startet die eigentliche Messung.

Zitat:OK, noch mal meine Idee etwas ausbauen: Wieviele Messwerte vor Auslösung des Triggers und wieviele Messwerte nach Auslösung des Triggers nimmst du auf? Denn das ist die maximale Größe einen Puffers, die du für eine kontinuierliche DI-Erfassung vorsehen müsstest. D.h., du musst dir eigentlich nicht alle DI-Daten merken, sondern immer nur die Puffergröße. Ob so was viel Rechenzeit beansprucht, müsste man mal ausprobieren, wobei das sicher auch von der Sample-Rate abhängt (was sind da typische Werte).

Ich nehme 500 Samples vor und 500 Samples nach Auslösung des Triggers auf. Typische Samplerate ist 10-50 kHz.
An das Problem mit der Rechenzeit habe ich gar nicht gedacht! Ich habe mir Sorgen um die Fesplattenkapazität gemacht. Wenn ich mehrere Tage kontinuierlich messe kommen da doch einige GB an Daten zustande?

Zitat:Ich habe erst mal keine Idee. Das Problem ist dein "Pretrigger"-Modus: Du willst ja auch einige Daten vor Auslösen des Triggers haben. Aber an die kommst du NUR dran, wenn sowohl Analog-In als auch Digital-In (zumindest im Hintergrund) immer laufen und Daten aufnehmen. Denn wie soll man sonst an Werte vor Auslösen des Triggersignals kommen? Zeitreisen in die Vergangenheit sind nach Einstein nicht möglich.

Mal angenommen ich lasse Analog-In und Digital-In immer laufen und Daten aufnehmen. Gibt es eine Möglichkeit nicht alle Daten des Digital-In zu speichern sondern z.B. ein paar Puffergrößen vor dem Trigger und ein paar Puffergrößen nach dem Trigger? Wie kann man dem Digital-In nach Auslösen des Triggers mitteilen das die Messung beendet ist?


Gruß Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30.07.2009, 20:03 (Dieser Beitrag wurde zuletzt bearbeitet: 30.07.2009 20:04 von rolfk.)
Beitrag #9

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Pretrigger bei analoger und digitaler Erfassung
' schrieb:Wie meinst du das? Ich dachte das Programm läuft im Hintergrund und wenn der Trigger auslöst startet die eigentliche Messung.
Ich nehme 500 Samples vor und 500 Samples nach Auslösung des Triggers auf. Typische Samplerate ist 10-50 kHz.
Das ist eine gute Idee!
Zitat:An das Problem mit der Rechenzeit habe ich gar nicht gedacht! Ich habe mir Sorgen um die Fesplattenkapazität gemacht. Wenn ich mehrere Tage kontinuierlich messe kommen da doch einige GB an Daten zustande?
Aber wer sagt denn dass Du alles auf die HD schreibst? Das machst Du eben nicht!
Zitat:Mal angenommen ich lasse Analog-In und Digital-In immer laufen und Daten aufnehmen. Gibt es eine Möglichkeit nicht alle Daten des Digital-In zu speichern sondern z.B. ein paar Puffergrößen vor dem Trigger und ein paar Puffergrößen nach dem Trigger?
LabVIEW ist eine vollumfängliche Programmiersprache. Da gibts grundsätzlich nichts was man nicht programmieren kann. Was Du einfach machen musst ist eine kontinuierliche Datenerfassung wo Analog und Digital synchronisiert sind. Dann liest Du jeweils beide Tasks regelmässig in einer Loop ein und schreibst die Daten in einen Buffer (Schieberegister) und untersuchst den analogen Eingang nach der Triggerkondition. Wenn der Trigger auftritt dann schreibst Du die vorigen Daten aus dem Buffer und die aktuellen Daten auf die Disk und machst eventuel noch einen oder mehrere weitere Loopdurchläufe wo Du alles zur Disk schreibst und danach verlässt Du die Loop und machst ein Task Stop und Task Clear sowohl auf der analogen als auch digitalen Task.
Zitat:Wie kann man dem Digital-In nach Auslösen des Triggers mitteilen das die Messung beendet ist?
Mit Task Stop (und ordnungshalber Task Clear) wie open erwähnt.

Rolf Kalbermatter

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
31.07.2009, 10:00
Beitrag #10

Daniel234 Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: May 2009

8.6
2008
de

84389
Deutschland
Pretrigger bei analoger und digitaler Erfassung
Zitat:LabVIEW ist eine vollumfängliche Programmiersprache. Da gibts grundsätzlich nichts was man nicht programmieren kann. Was Du einfach machen musst ist eine kontinuierliche Datenerfassung wo Analog und Digital synchronisiert sind. Dann liest Du jeweils beide Tasks regelmässig in einer Loop ein und schreibst die Daten in einen Buffer (Schieberegister) und untersuchst den analogen Eingang nach der Triggerkondition. Wenn der Trigger auftritt dann schreibst Du die vorigen Daten aus dem Buffer und die aktuellen Daten auf die Disk und machst eventuel noch einen oder mehrere weitere Loopdurchläufe wo Du alles zur Disk schreibst und danach verlässt Du die Loop und machst ein Task Stop und Task Clear sowohl auf der analogen als auch digitalen Task.

Das sind ein paar sehr gute Ideen.
1. Problem: Ich weiß aber nicht wie ich die Daten aus dem Puffer auf die HD speichere die vor dem Trigger vorhanden sind? Ich habe nur die aktuellen Daten ab dem Trigger gespeichert. Denn die Messung beginnt ja erst wenn der Trigger auslöst.

2. Problem: Bei der digitalen Erfassung gehen bei der Speicherung die Zeitinformationen verloren. Bei der analogen Erfassung sind die Zeitinformationen noch vorhanden.


Sonstige .vi  syndigitalanalogtriggerTDMSkontinuierlich.vi (Größe: 44,05 KB / Downloads: 299)


LabVIEW 8.6

Gruß Daniel
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
Music Erfassung von Signalen im wave-Format DavidStefan 8 6.610 11.05.2021 13:20
Letzter Beitrag: DavidStefan
  Anzeige und Erfassung von Prüfparametern Fantinel 4 5.680 04.01.2019 14:47
Letzter Beitrag: GerdW
  Digitaler Ausgang liefert 3,5 Volt Gesetzt 1 3.378 27.02.2017 13:06
Letzter Beitrag: jg
  Getimter Digitaler Output thomasth 3 3.917 02.11.2015 03:36
Letzter Beitrag: thomasth
  Analoge Datenausgabe und Erfassung danieljackson 13 14.525 12.11.2013 17:33
Letzter Beitrag: GerdW
  Falsche Werte durch paralleles Einlesen digitaler und analoger Werte daxel 13 13.233 20.08.2013 12:03
Letzter Beitrag: daxel

Gehe zu: