GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » LVUG » LVUG - Technische Fragen » triggergesteuerte Datenerfassung ....
triggergesteuerte Datenerfassung .... [message #872] Mon, 30 August 2004 18:45 Go to next message
Maxi Wilde is currently offline  Maxi Wilde
Messages: 2
Registered: August 2004
occasional visitor
From: *dynamic.qsc.de
Hallo;
ich habe ein Problem bei der Programmierung einer schrittmotorgesteuerten
Datenerfassung mittels Digitaltrigger und Analogeingang einer NI-6013-Karte:
Der Motor ist zur Anfangsposition gefahren und nun soll in festgelegten Schrittweiten
bis zu einer festgelegten Endpos. gefahren weden.
Bei jedem Schritt, also auch gleich am Anfang und auch am Ende, soll er jeweils zB 20 Triggerwerte am
Analogeingang erfassen,davon den Mittelwert bilden, und zusammen mit dem jew.Positionswert in ein 2D-Array
abspeichern bis er am Ende angekommen ist.
Der Verlauf soll in einem Graphen mit Punkten dargestellt werden, wo die x-Achse vorher mit Start- und
Endwert des Motors vorgegeben ist.
Ich habe jetzt das Problem mit der Schleifenverschachtelung und mit dem Demo-VI von Labvieb, zur
digital getriggerten Datenaufnahme.
Denn dort sind ja gleich vier Analoge Eingänge berücksichtigt.
Auch habe ich das mit der Rate etc. noch nicht richtig gerafft:
Ich will doch nur: 1)Triggersignal (rising edge, start only) 2)Verzögerung um wenige ms 3)einen(!)Wert nehmen ..und
das ca. 20 mal hintereinander für eine Position des Motors -- dann Mittelwert ausrechnen und weiterfahren ...usw.
bis zum Ende.
vielleicht kann mir bitte, bitte jemand helfen.
Achso: Kann man, wenn das Programm beendet wird, eine automatische Sequenz aufrufen lassen welche den aktuellen Wert
der Motorposition noch schnell ausliest und abspeichert, um ihn beim nächsten Start des Programms automatisch wieder
einlesen zu lassen?

ist eine ganze Menge Stoff, aber für einen Profi sind das vielleicht keine großes Probleme.
Ich arbeite erst seit ca. 2 Monaten mit Labview 6.0i .

liebe Grüsse
Re: triggergesteuerte Datenerfassung .... [message #873 is a reply to message #872] Tue, 31 August 2004 11:40 Go to previous messageGo to next message
Christoph Baumann is currently offline  Christoph Baumann
Messages: 2
Registered: August 2004
Location: Münster University
occasional visitor
From: C-QUARK.UNI-MUENSTER.DE
Hi maxi!

Guck Dir mal vielleicht das Beispiel "Acquire 1 Point Digital Trig.vi" an, dass müsste das sein, was Du suchst.
Die Verzögerung bekommst Du am einfachsten hin, wenn Du so etwas wie dieses Beispiel z.B. in eine "For" Schleife mit 20 Iterationen packst und eine Stoppuhr dazu setzt, die für die gewünschte Verzögerung zwischen den Messwerten sorgt.

Die Messwerte würde ich in einem 1d Array zwischenspeichern und nach der 20. Messung mitteln und ins 2-d Array schreiben, um numerischen Ungenauigkeiten aus dem Weg zu gehen. (Ansonsten Schleifenvariable mit LastValue=(LastValue+CurrentValue)/2.)

Das Position initialisieren geht wohl am einfachsten, wenn Du das ganze Programm in eine Sequence packst (an Pos. 2) und an Pos.3 den Wert in ein Textfile schreibst, dass Du an Pos. 1 wieder auslesen kannst.

Gruß,
Christoph

Re: triggergesteuerte Datenerfassung .... [message #880 is a reply to message #873] Wed, 01 September 2004 22:41 Go to previous messageGo to next message
Maxi Wilde is currently offline  Maxi Wilde
Messages: 2
Registered: August 2004
occasional visitor
From: *dynamic.qsc.de
hi christoph
..werde mir mal das acquire 1 pointdigital trig.vi ansehen.
Mein Problem mit der verzögerung ist etwas anders gelagert:
ich muss nach der rise-flanke einen verzögerungswert eingeben können, nachdem dann erst gemessen wird.
denn nach jedem triggersignal (=laserpuls) dauert es erst ein wenig, bis der auszulesende wert sein maximum erreicht hat.
(das problem ist nähmlich das der integrator keine autoverzögerung
via triggersteuerung annimmt)
zur datenerfassung: wo, also in welchen schleifen soll ich das 1-d array (?in for-schleife?) und das 2d array packen(?in sequenz drumherum?) ...und (sorry) wie meinst du das mit lastvalue etc...
...bin halt noch recht unerfahren .
zur positionsspeicherung: kann ich nicht einfach eine globale variable generieren, welche am ende abgespeichert wird, wenn ich das programm beende(!-also automatisch beim beenden)und es lade
wenn ich das programm starte? ..wenn ja, wie sollte das aussehen?

gruss
maxi
Re: triggergesteuerte Datenerfassung .... [message #913 is a reply to message #880] Mon, 13 September 2004 16:17 Go to previous message
Christoph Baumann is currently offline  Christoph Baumann
Messages: 2
Registered: August 2004
Location: Münster University
occasional visitor
From: C-QUARK.UNI-MUENSTER.DE
Wenn Du eh nen festen Delay hast, kannst Du dafür doch gut externe elektronik nehmen.
Oder Du nimmst nicht 1 Point Acquire, sondern N Point Acquire, misst erstmal nen ganzen Schwung Daten (SampleRate*DelayTime) und schreibst dann nur den benötigten Wert in das Array.
Previous Topic: Treiber für Functionmeter gesucht
Next Topic: Parent VI sperren während Sub VI aktiv ist
Goto Forum:
  


Current Time: Thu Mar 28 11:44:48 CET 2024

Total time taken to generate the page: 0.00890 seconds