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 

AI und DI synchronisieren



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!

19.11.2007, 16:41
Beitrag #1

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
AI und DI synchronisieren
Hallo,

ich habe eine entscheidende Hürde zu meistern. Ich muss analoge und digitale Messungen synchronisieren. Hintergrund: Es sind mehrere Tests zu automatisieren, die ähnlich zum Folgenden aussehen. Die Spannung eines Potentiometers (das von einem konstanten Strom durchflossen ist), was an einem Motor befestigt ist, soll über einer kompletten Motorumdrehung geloggt werden. Die Motorposition bekomme ich von einem Encoder, der mittels eines Counters und Position -> Angular Encoder oder wahlweise auch Edge Counting ausgelesen wird.
Nun muss ich also die analoge Messung nicht mit einer Zeit synchronisieren, sondern mit einem Ort. Einer konstanten Umdrehungsgeschwindigkeit (die eine Zeit/Ort-Zuordnung ermöglichen würde) kann ich nicht ausreichend genau trauen. Deswegen muss das irgendwie ander vonstatten gehen.

Meine Idee wäre zunächt mal, die analogen Messungen mit den Encoder-Pulsen zu triggern. Nachteil: Ich habe keine Ahnung, wie ich das Anstellen soll. Die einzige Triggermöglichkeit, die ich bisher kenne ist, mit Hilfe des DAQmx Trigger.vi eine Messung zu starten. Danach kann man stoppen und mit Start auf den nächsten Trigger warten (oder alternativ einfach das Read.vi nochmal aufrufen). Dieses Software Stop/Start ist aber mit Sicherheit viiieeel zu langsam. Die Encoderauflösung liegt immerhin bei 12bit nach 4-Flanken-Auswertung. Eine entsprechend langsame Verfahrgeschwindigkeit ist auch keine Option. Gibt es die Möglichkeit, mit jedem Triggerpuls automatisch ein Sample zu messen, ohne zwischendurch per Software einzugreifen?

Zweite Möglichkeit, bei der ich aber ebenfalls nicht weiterkomme. AI wird mit fester Rate gemacht, das Auslesen des Counterwertes erfolgt im gleichen Takt, so dass ich ebenfalls synchrone Daten habe. Bedingung hier auch wieder: Kein Eingreifen der Software (wie z.B. indem die Read-Funktionen parallel in einer software-getimten Schleife liegen), weil zu langsam und ungenau.

Kann mir hier einer weiterhelfen? Kann man Sample Clock auf Counter-Read anwenden oder Implicit auf Analog-Read...??? Oder gibt es eine ganz andere Möglichkeit?

Danke für Ideen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.11.2007, 16:56
Beitrag #2

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
AI und DI synchronisieren
Hi,

das synchronisieren auf ne Externe Clock geht irgendwie...da gibts auch Beispiele...weiß aber grad auch nicht so genau wie und wo...

Alternativ könntest du aber auch den Encoder ebenfalls auf AI legen und beide Signale dann parallel abtasten/auswerten!

Gruß
Achim

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.11.2007, 17:10
Beitrag #3

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
AI und DI synchronisieren
Mmhh, Encoder weg vom Counter zu nehmen, will ich mir eigentlich ersparen, weil ich ja dann die ganzen Flanken per Software zählen muss. Außerdem hängt das Funktionieren dieser Methode dann extrem von der Abtastrate ab - sie muss um mindestens doppelt so hoch sein, wie die Encoderpulse (nach Vierflanken-Überlagerung) entstehen... Naja, ist wenigstens eine (theoretisch machbare) Möglichkeit.

Dein erster Vorschlag interessiert mich aber mehr: Synchronisieren auf Externe Clock geht, hab ich auch schon gefunden. Das macht man mit dem DAQmx Timing (Sample Clock) und Anlegen eines Signales an den Input dieses VIs. Das Clock-Signal könnte dann das Encoder-Signal sein. ABER: Das erfordert ebenfalls ein Anschließen des Rate-Eingangs. Meines Erachtens versucht das VI dann nur, die unter Rate spezifizierte Zeit mit Hilfe der externen Clock einzuhalten. Ich möchte aber nunmal keine Zeit, sondern einfach alle Pulse. Die Zeit soll sich nach der externen Clock richten. Wenn man das irgendwie einstellen könnte, wäre ich glücklichWink

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.11.2007, 19:48 (Dieser Beitrag wurde zuletzt bearbeitet: 19.11.2007 19:49 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
AI und DI synchronisieren
' schrieb:Dein erster Vorschlag interessiert mich aber mehr: Synchronisieren auf Externe Clock geht, hab ich auch schon gefunden. Das macht man mit dem DAQmx Timing (Sample Clock) und Anlegen eines Signales an den Input dieses VIs. Das Clock-Signal könnte dann das Encoder-Signal sein. ABER: Das erfordert ebenfalls ein Anschließen des Rate-Eingangs. Meines Erachtens versucht das VI dann nur, die unter Rate spezifizierte Zeit mit Hilfe der externen Clock einzuhalten. Ich möchte aber nunmal keine Zeit, sondern einfach alle Pulse. Die Zeit soll sich nach der externen Clock richten. Wenn man das irgendwie einstellen könnte, wäre ich glücklichWink
NEIN!!! Hast du schon ausführliche Hilfe zum Timing-VI gelesen?

' schrieb:rate - specifies the sampling rate in samples per channel per second. If you use an external source for the Sample Clock, set this input to the maximum expected rate of that clock.

Das dient nur dazu, die DAQ-Karte auf entsprechende Timings vorzubereiten. Die Daten werden bei externer Clock wirklich erst gewandelt, wenn du einen Impuls bekommst. Man kann sogar noch weiter gehen, und meinetwegen mit Hilfe der Counter auf einer DAQ-Karte nur bei jedem 10. Puls eine AD-Wandlung durchführen. Mach ich dauernd, funktioniert.

MfG, 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
20.11.2007, 09:25
Beitrag #5

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
AI und DI synchronisieren
Natürlich habe ich die Hilfe gelesen. Das Problem war nur, wenn ich es so gemacht habe, hat er zwar mit der ersten Messung gewartet, bis ein Impuls kam, aber danach ging es unabhängig vom Signal mit hoher Rate und kontinuierlich weiter, selbst wenn ich Finite Samples=2 gewählt habe...

Trotzdem danke für's nochmal drauf stoßen, Ich habe jetzt mal den Sample Mode 'Hardware Timed Single Point' probiert, der tut's. Irgendwie kam ich vorher nicht auf die Idee, das zu verwenden, weil dazu in der Hilfe was von kontinuierlicher Messung und bufferlos steht, was für meine Zwecke ungeeignet klang. Aber kontinuierlich ist hier so zu verstehen, dass beliebig viele Messwerte aufgenommen werden können - das warten auf die Clocksignale geschieht immer wieder, bis man den Task beendet.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2008, 22:29
Beitrag #6

BRX Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Feb 2008

8.5
2008
kA

8915
Schweiz
AI und DI synchronisieren
' schrieb:NEIN!!! Hast du schon ausführliche Hilfe zum Timing-VI gelesen?
Das dient nur dazu, die DAQ-Karte auf entsprechende Timings vorzubereiten. Die Daten werden bei externer Clock wirklich erst gewandelt, wenn du einen Impuls bekommst. Man kann sogar noch weiter gehen, und meinetwegen mit Hilfe der Counter auf einer DAQ-Karte nur bei jedem 10. Puls eine AD-Wandlung durchführen. Mach ich dauernd, funktioniert.

MfG, Jens

Daten erfassen mit externem Takt ist mir gelungen, aber wie ich den counter brauche, um den externen Takt zu untersetzen (was bei Dir offenbar funktioniert), ist mir noch unklar: welcher Task braucht welche Einstellungen? (LabVIEW 8.5, USB-6218).
Vielen Dank!

Windows XP, LabView 8.5, DAQ USB-6218
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.02.2008, 07:32
Beitrag #7

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
AI und DI synchronisieren
Die Methode den AI auf eine Spur des Encoders zu triggern verwende ich in Real Life relativ selten, denn dabei geht die Zeit-Information des AI-Kanals verloren bzw. wird mehr oder weniger stark verschleiert. Wenn man die Zeit-Information nicht braucht, ist das okeh aber wenn ich die Zeit brauche, dann mache ich folgendes (entsprechende Hardware vorausgesetzt):

ich erzeuge mit mit einem Counter meinen eigenen Mess-Task und route den auf einen RTSI/PXI-Pin, z.B. 1000 Hz auf RTSI0. Die Wahl des Messtaktes hängt stark von der höchsten Frequenz der Encoder-Pulse ab, wenn man für jeden Puls später ein Sample haben will sollte die Abtastfrequenz min. Faktor 3 betragen

meinen Messtakt verwende ich als externen Takt für meinen AI und Encoder task, beide Tasks werden z.B: über den Z-Impuls des Encoders gemeinsam gestartet und erfassen ab da continuierlich Messdaten bis zum Abbruch der Erfassung.

Aus den so erfassten Daten kann mann man dann wiederum auf "Sample on Tic" zurückrechnen, in dem man beide Arrays (Zählerstand und AI-Samples) durch eine For-Schleife jagt, die das AI-Array so dezimiert, dass nur die Samples übrig bleiben, bei denen sich der Zählerstand geändert hat ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.02.2008, 19:16
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
AI und DI synchronisieren
Hallo,

das Bsp. aus dem NI-Examplefinder hierzu sind die Digital Pulse Trains:
   

Die muss man nur entsprechend umbauen, z.B. etwas in der folgenden Art:
   

Dann noch beim AI-Read als Zeitbasis den InternalCounterOutput des entsprechenden Counters nehmen, fertig.

MfG, 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
14.02.2008, 12:39
Beitrag #9

BRX Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Feb 2008

8.5
2008
kA

8915
Schweiz
AI und DI synchronisieren
' schrieb:Hallo,

das Bsp. aus dem NI-Examplefinder hierzu sind die Digital Pulse Trains:
[attachment=38279:Image01.png]

Die muss man nur entsprechend umbauen, z.B. etwas in der folgenden Art:
[attachment=38280:Image02.png]

Dann noch beim AI-Read als Zeitbasis den InternalCounterOutput des entsprechenden Counters nehmen, fertig.

MfG, Jens

Vielen Dank, das hat mir sehr geholfen.
B

Windows XP, LabView 8.5, DAQ USB-6218
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2008, 14:29 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2008 14:31 von abrissbirne.)
Beitrag #10

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
AI und DI synchronisieren
Wie wäre es denn timed loops mit dem takt der ni karte zu synchronisieren. Hab mal was gebastelt, aber nicht ausprobiert. Man kann bei dem DAQmx Creating timing Source noch andere Optionen wählen. Hab sowas ähnliches schonmal gebaut und hat gepasst.


Angehängte Datei(en) Thumbnail(s)
   
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
  Counter-Eingänge synchronisieren für Positionsmessung Knödelmann 1 5.787 18.04.2016 15:56
Letzter Beitrag: Knödelmann
  AO und AI versetzt synchronisieren Bärbel 4 5.267 09.10.2014 06:27
Letzter Beitrag: Bärbel
  Ai mit Encoder Synchronisieren Magneto 14 12.187 25.07.2014 10:17
Letzter Beitrag: GerdW
  NI PXIe-6537 und NI PXI-5412 synchronisieren Bananenbrot 1 3.973 29.08.2012 07:21
Letzter Beitrag: Achim
  synchronisieren von Messdaten unterschiedlicher Quelle und Rate kob 2 4.766 03.08.2012 10:45
Letzter Beitrag: kob
  Synchronisieren mit DAQmx ReneP 7 6.830 22.09.2011 13:21
Letzter Beitrag: ReneP

Gehe zu: