LabVIEWForum.de
analoges Messsignal in abh. von Schrittzähler darstellen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: analoges Messsignal in abh. von Schrittzähler darstellen (/Thread-analoges-Messsignal-in-abh-von-Schrittzaehler-darstellen)

Seiten: 1 2


analoges Messsignal in abh. von Schrittzähler darstellen - Jegge88 - 28.05.2012 19:24

Hallo,
Ich arbeite z.Z. an einem Spektrometer in dem ein Schrittmotor eingebaut ist. Dieser hat einen Positionszähler. Von einer Photodiode erhalte ich ein analoges Gleichspannungssignal, welches ich in Abh. der Position des Schrittmotors graphisch darstellen und speichern möchte.
Dazu benutze ich das NI USB-6215. Es ist bei der Aufnahme der Wertepaare zur graphischen Darstellung wichtig, dass das Spannungssignal nicht gegen die Zeit aufgetragen wird, sondern die Spannungswerte immer dann ausgelesen werden sollen, wenn der Positionszähler meines Schrittmotors ein Schritt weiter zählt. DIe Position des Schrittmotors kann ich mit Labview auslesen. Im Measurement and Automation Explorer habe ich hierzu leider nichts gefunden.

Wie kann ich dieses Problem am einfachsten angehen?

Mfg Jegge


RE: analoges Messsignal in abh. von Schrittzähler darstellen - GerdW - 29.05.2012 08:23

Hallo Jegge,

viel einfacher wird es, wenn du statt eines analogen Pulses einen digitalen hättest. Den könntest du nämlich auf einen der PFI-Eingänge deiner Messkarte legen und damit dann die analogen Eingänge takten lassen.

Tipp:
Für steile TTL-Flanken empfiehlt sich ein Schmitttrigger ala 7414!


RE: analoges Messsignal in abh. von Schrittzähler darstellen - Lucki - 29.05.2012 08:54

(28.05.2012 19:24 )Jegge88 schrieb:  Wie kann ich dieses Problem am einfachsten angehen?
Wenn also ausdrücklich nach der einfachsten, und nicht nach der besten und elegantesten Löung gefragt wird, dann würde ich so sagen: a) nicht Triggerung, sondern Polling. b) nicht Digital und analog, sondern beide Kanäle analog einlesen.
Also:
1.) Messen:
Mit mindestens der 10fachen Stepfrequnz des Schrittmotors die beiden Kanläe einlesen.
2.) Auswerten
Im Photodioden-Kanal alle Samples herauslöschen, bei denen am Stepmotor-Kanal kein Flankenwechsel stattgefunden hat.
3.) Darstellen:
Diesen Rest des Photodioden-Kanals graphisch (Signalverlaufs-Graph) darstellen. Die X-Achse ist dann automatisch die Schrittzahl des Motors. (Der Stepmotor-Kanal wird überhaupt nicht mehr gebraucht).

Und die elegantere Methode:
Das digitale Frequenzsignal des Schrittmotors wird direkt anstelle des sonst verwendeten internen Zählers zur Triggerung der Photodioden-Samples verwendet.

Voraussetzung bei beiden Methoden ist allerdings, dass der Schittmotor während der Messung seine Richtung nicht wechselt.


RE: analoges Messsignal in abh. von Schrittzähler darstellen - Jegge88 - 29.05.2012 13:22

@Lucki
Es ist dann doch eher die elegantere Lösung die ich benötige.
Mit dem NI USB-6215 nehme ich nur die Spannung auf. Die Position des Schrittmotors gibt mir der Controller des Schrittmotors über eine serielle Schnittstelle in Labview zurück.
In Abh. der Drehgeschwindigkeit ändert sich der zeitliche Abstand dementsprechend. Falls die Messung unterbrochen wird, sollte dann die aufnahme des nächsten Messwertes ebenfalls warten.
Ich habe über DAQ Assistenen bereits den Kanal zur Spannungsmessung erstellt. Jetzt wäre es hilfreich, wenn der das DAQ-VI in Abh. der Schritte jeweils einen Messwert aufnimmt. Muss ich dies über eine Occurence oder Queue machen? Die immer größer werdenden Messpaare sollen dann synchron ausgelesen, gespeichert und graphisch dargestellt werden. Ich habe auch mit dem XY Graph herumprobiert aber noch kein Ergebnis bekommen.

Mfg Jegge88


RE: analoges Messsignal in abh. von Schrittzähler darstellen - GerdW - 29.05.2012 13:44

Hallo Jegge,

schön, dass du diese Details erst jetzt bekannt gibst...

Du willst also mit einem Signal(wert), den du von der seriellen Schnittstelle bekommst, eine DAQmx-Erfassung triggern? Nun ja, da dürfte Luckis Weg der deutlich einfachere sein: DAQmx kontinuierlich laufen lassen & bei Wertänderung am seriellen Port den aktuellen Wert vom DAQmx abspeichern...


RE: analoges Messsignal in abh. von Schrittzähler darstellen - Lucki - 29.05.2012 15:36

Mit dem eleganten Weg meinte ich das:
Den ADC über einen externen Pin takten . Die Pins, die dafür in Frage kommen, heißen PFI0, PFI1,... .Finde heraus, welcher PIn geeignet wäre, es muß einer sein der sonst nicht gebraucht wird (Die Pins haben mehrfach-Funktion). Vorausgesetzt, es geht mit Deiner Karte überhaupt.
Die Konfiguration sieht im Prinzip so aus;
[attachment=39941]
wobei Du auch herasufinden mußt, welche Pin-Nr. der gefundene PFI-Pin hat. (Manual oder MAX)
Ich kann mit vorstellen, daß es für die Externe Sample-Triggerung auch ein Beispiel gibt.

Übrigens: Mit die wichtigste Information bei solchen Fragen - die allerdings regelmäßig unterschlagen wird, nicht nur von Dir - ist: In welchem Frequenzbereich spielt sich das alles ab? 1Hz?, 10Hz? 10kHz? 1MHz? Davon hängt der Lösungsweg u.U. entscheidend ab.


RE: analoges Messsignal in abh. von Schrittzähler darstellen - Jegge88 - 30.05.2012 08:31

@Lucki
Hallo
Die maximale Frequenz mit der die Messwerte gespeichert werden sollen hängt von der Anzahl der Microsteps meines Motors ab. Die Freuquenz wird zwischen 30 Hz und max. 10 kHz liegen.
Nur kurz zum Verständnis: Durch einen realen Stecker oder dergleichen kann ich keinen der digitalen Eingänge des Boards belegen. Der Schrittmotor (Trinamic) regelt die Geschwindigkeit und die Berechnung der Schritte auf einem Controller intern. Um einen Parameter, wie z.B. ''rotate right'' zu ändern, sende ich mit Labview einen Befehl an den Controller des Schrittmotors. Dieser sendet dann sein Feedback, ob er meinen Befehl verstanden hat. So macht er dies auch bei der Position des Motors.

Kann ich intern, also ohne Kabel, einen digitalen Kanal auf dem Board belegen? Da ich sonst nicht weiß, wie ich es sonst angehen sollte.

Mfg Jegge


RE: analoges Messsignal in abh. von Schrittzähler darstellen - GerdW - 30.05.2012 08:36

Hallo Jegge,

schon mal Beitrag #5 gelesen?


RE: analoges Messsignal in abh. von Schrittzähler darstellen - Lucki - 30.05.2012 13:32

Wie gerd schon sagte: Die serielle Schnittstelle eigent sich kaum zu Synchronisation mit anderen Messungen.

Es gibt bei der Messwerterfassung mit ADC zwei verschieden Starts:
a) Start der Messung (einmalig)
b) Start der einzelnen Messwerterfassungen (Sample-Takt)

Bisher haben wir hier nur über b) diskutiert. Aber eigentlich sehe ich da gar kein Problem, man muß die beiden Vorgänge gar nicht synchronisieren, denn:
aa) der Motor oder Schlitten bewegst sich quarzgenau mit einer ganz bestimmten Geschwindigkeit, die über die das serielle Schnittstellenkommando vorgegeben ist.
bb) die Datenerfassung mit dem internen Counter in Samples/sec ist ebenfalls quarzgenau.
Von daher ist es ein simples Dreisatzproblem, jeder gemessenen Sample n seine genaue Position x zuzuordenen. Der Motor bewegt sich übrigens bei höheren Schittfrequenzen kontinuierlich, von daher spielt es keine wichtige Rolle, ob Schrittfrequenz und Samplefrequenz übereinstimmen oder nicht (es würde nur das "Dreisatzproblem" weiter vereinfachen Big Grin)

Bleibt das Problem a)
Hier muß, wenn ein digitales Hardware-Signal "Start der Bewegung" von der Apparatur weder abgegeben wird, noch als Kommando empfangen werden kann, selbst etwas gebaut wird. Z.B. ein Positionsmelder am Schlitten, dessen Ausgang auf die Karte geführt wird und die analoge Erfassung präzise startet. [Eigenlob] Ich selbst würde das allerdings nicht so machen. Als gewiefter Bastler würde ich allemal Mittel und Wege finden, um mir innerhalb der mitgelieferten Elektronik zum Schrittmotor ein passendes Signal herauszuklauben [/Eigenlob] )


RE: analoges Messsignal in abh. von Schrittzähler darstellen - Jegge88 - 30.05.2012 14:30

vorweg:
Da ich erst seit ca. 6 Wochen mit Labview arbeite habe ich noch ein Paar Anfangsprobleme. Dies sehe man mir doch nach.

Das Problem der Synchronisation hat sich gelöst.
Die Aufnahme von Messwertepaaren habe ich mitlerweile auch hinbekommen, wenn es auch von euren Vorschlägen etwas abweicht und noch Feinschliff benötigt.

Vielen Dank für die Hilfestellung

Mfg Jegge