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:

Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät



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!

15.07.2014, 09:52 (Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2014 09:53 von amadeus.)
Beitrag #1

amadeus Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jul 2014

1303
2014
EN

4942
Oesterreich
Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät
Hallo Experten,

Ich habe letzte Woche mein Praktikum bei einer Firma begonnen und komme daher, nach 4 Jähriger Pause, wieder einmal in den Genuss mit Labview zu arbeiten.
Die Erfahrung von vor 4 Jahren beschränkt sich jedoch auch auf ein Schulprojekt.

Meine Aufgabe ist es, eine Nachlaufmessgerät zu konstruieren, welches den Nachlaufweg und die Nachlaufzeit einer Anlage bestimmt. Dazu habe ich einen Inkrementalen Drehgeber mit 2000 Impulsen/Umdrehung und 10 Impulse/mm. Die aufzulösende Geschwindikeit liegt zwischen 0,1mm/s (wird als 0 gewertet) und 10m/s. Also einem Frequenzbereich von 1Hz-10kHz.

Der Ablauf sieht so aus, dass die Anlage hochgefahren wird und nach erreichen der Maximalgeschwindigkeit durch Auslösen eines Sicherheitsvorhanges (Lichtschranke) abschaltet.
Zu diesem Zeitpunkt soll auch meine Messung starten. Am Ende benötige ich die Daten: Dauer (bis die Geschwindigkeit unter 0,1mm/s abgefallen ist, Anzahl der Impulse (für die Berechnung der gefahrenen Distanz) und den Geschwindigkeitsverlauf.

Diese Messung führe ich 10 mal durch und gebe dann die damit 10 verschiedenen Werte an ein schon von mir fertiges und funktionierendes LV-Programm, welches daraus dann den Mindestabstand eines Sicherheitszaunes berechnet und in ein Excel-Dokument übergibt.

Das zu meiner Aufgabe.

Als Datenerfassungsmodul habe ich:
NI- USB 6351

Den Drehgeber bekomme ich erst in 2 Wochen, daher simuliere ich ihn derzeit mit einem Frequenzgenerator, Rechteck, TTL

Für die Erfassung der Daten hätte ich einfach die Counter- Eingänge benutzt und damit die Periode/Flanken gezählt.

Nachdem meine Karte am COunter-Eingang bis 10 MHz zulässig ist, müsste sie meiner Meinung nach locker auskommen?

Mein Großes Problem liegt darin, die Werte (vor allem für die Geschwindikeit) in einem Array abspeichern zu können, um dann einen Geschwindigkeitsverlauf aufzeichnen zu können, um den Punkt der Maximalgeschwindigkeit zu bestimmen.

Ich arbeite zum ersten mal mit einem Datenerfassungsmodul, und habe mich auch schon durch einige example-VIs gearbeitet und auch schon in diesem Forum gesucht.


Nachdem ich bisher zwar nicht für mich, aber generell, immer sehr gute Antworten gelesen habe, würde ich hier um Hilfe oder gute Anregungen bitten,
Hier einmal meine Versuche =
13.0 .vi  Nachlauf-Messgerät_Counter_Period.vi (Größe: 78,64 KB / Downloads: 256)


freundliche Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.07.2014, 11:42
Beitrag #2

amadeus Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jul 2014

1303
2014
EN

4942
Oesterreich
RE: Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät
Bin jetzt schon ein wenig weiter gekommen.

Ich starte 10 Messungen, jeweils über den START Button und erhalte 10 Messwerte für die Dauer meiner Messung und den dabei zurückgelegten Weg.

Diese Arrays übergebe ich jetzt noch meinem Berechnungs - Vi.

könnte sich das mal jemand von den Profis anschauen, ob ich gravierenden Mist irgendwo eingebaut habe? Wink


freundliche Grüße


Angehängte Datei(en)
13.0 .vi  Nachlauf-Messgerät_Datenerfassung.vi (Größe: 106,91 KB / Downloads: 216)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2014, 20:20
Beitrag #3

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RE: Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät
Im Prinzip machst du das schon richtig, aber einen kleinen Gedanken-Fehler hast du in einem Konzept:

das (schnelle) Zählen übernimmt der Counter-Chip auf der Mess-Karte. Wie oft du in der Software den Zähler-Stand abfragst ist wieder ein ganz anderes Thema. Das kann nun sehr langsam sein (z.B. mit 10 Hz) oder auch sehr schnell, aber der Zähler zählt erstmal komplett unabhängig davon wie schnell du den Zähler-Stand abfragst.

Ich würde das Thema wie folgt angehen:
einen Flanken-Zähl-Task mit DAQmx erstellen, der - wie der Name schon sagt - die Flanken zählt.
Diesen Task würde ich kontinuierlich anlegen und den Zähler-Stand mit z.B. 1 kHz auslesen. Damit hast du dann eine zeitliche Auflösung von 1 ms. Über die reinkommenden Samples würde ich eine gleitende Berechnung mit z.B. 500 ms Länge durchführen, die die Anzahl der Flanken in diesem Zeitfenster durch die Zeit dividiert. Das ganze rechnest du dann in Grad/Sekunde bzw. U/s um und schon hast du eine Umdrehungs-Geschwindigkeit. Das musst du dann noch über die Achs-Steigung in eine Achsen-Geschwindigkeit umrechnen und dann hast du schon fast das was du willst.

Ggf. ist bei dem DAQmx-Task noch ein Trigger sinnvoll, damit der Task genau dann startet wenn der Not-Aus gedrückt wurde

viele Grüße
cb

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
17.07.2014, 06:27 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2014 06:29 von amadeus.)
Beitrag #4

amadeus Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jul 2014

1303
2014
EN

4942
Oesterreich
RE: Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät
Hallo cb,

erstmals vielen Dank für deine Antwort.

Verstehe ich das richtig, dass ich meinen Counterstand jedes mal abfrage, wenn ich meine while-schleife durchlaufe?

Ich habe maximal eine Geschwindigkeit von 10m/s, das macht bei 10Impulsen/mm eine Frequenz von 10 kHz.
Außerdem muss ich davon ausgehen, dass ich Anlagen teste, die <1s abbremsen.

also innerhalb 1s von 10m/s auf 0. Wenn ich dann über 500ms "Mittle", dann verliere ich doch eigentlich meine ganze Information.

oder verstehe ich das falsch?


Zum Trigger,

ich muss die Messung starten und gleichzeitig eine "Autohand" ansteuern, die den Lichtvorhang innerhalb ys auslöst.

Jetzt steuere ich den Messungsstart noch über einen START Button an, aber kann man auch auf ein externes Signal, eine Flanke eines Impulses Triggern?

Ich schick dir einmal meinen derzeitigen Stand. Hier jetzt schon die Auswahlmöglichkeit zwischen Messung/Berechnung. wobei ich folgendes Problem habe:
Wenn ich zuerst die Messung durchführe, und dann die gemessenen Werte für die Berechnung verwenden und diese starten will, dann treten Probleme auf:
1) Die Ausgabe der Messung erfolgt in einem Spalten-Array, die Eingabe der Berechnung in Zeilen, daher funktioniert das nicht. denke ich? oder hat das andere Gründe. Ich kann doch bestimmt dieses Array Transponieren?

2) Wenn ich abwarte bis die Messung vorbei ist und dann auf Berechnung umsteige, funktioniert das nicht. Ich muss noch während der Messung auf Berechnung umschalten, damit ich in meinem Programm auch in dem anderen Case lande. Woran liegt das?


freundliche Grüße,

Amadeus


Angehängte Datei(en)
13.0 .vi  Nachlauf-Messgerät_Berechnung+Datenerfassung.vi (Größe: 296,95 KB / Downloads: 204)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.07.2014, 08:31 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2014 08:36 von cb.)
Beitrag #5

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RE: Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät
ich hab mir das VI nun nicht angeschaut (sorry, aber für eine genauere Analyse hab ich gerade keine Zeit ...) aber das Problem ist eigentlich schon fast gelöst, wenn du folgendes machst:

such dir in den Beispielen (Exmple-Finder) ein VI raus, mit einer getriggerten Flanken-Zählung, in dem Fall reicht auch eine finite Erfassung mit z.B. 2 oder 3 Sekunden. Über einen DIO steuerst du die Auto-Hand und das Lichtschranken Signal nutzt du als Trigger für den Flanken-Zähl-Task, ggf. brauchst du dann noch einen Spannungs-Teiler und eine Invertierung oder ähnliches.

Dein Counter-Task läuft dann in dem Moment los in dem die Lichtschranke auslöst und nimmt für (z.B.) 2 Sekunden die Counter-Stände auf mit der Sample-Rate, die du festlegst. Nehmen wir an du willst eine Auflösung von 100 µs, dann liest du den Counter mit einer SR von 10 kHz aus. Dein Ergebnis wäre dann ein Array mit 20000 oder 30000 Counter-Ständen, die du dann auswerten kannst.

Da es ja nur drum geht rauszufinden wie schnell die Maschine stoppt, braucht man da mMn gar kein großes Programm, man kann da auch einfach erst mal nur erfassen und die Daten innerhalb des Zeitraumes aufnehmen in dem die Maschine auf jeden Fall stoppen müsste und die genaue Analyse der Daten dann im Nachgang machen ...

Zur Mittelung: nein, das hast du falsch verstanden, du sollst nicht blockweise mit einer bestimmten Dauer mitteln, sondern gleitend, d.h. du fängst bei Sample 0 an und schneidest ein Array mit der Länge x aus (bei SR=1kHZ z.B. 500 Samples) und berechnest daraus eine Geschwindigkeit, dann nimmst du Sample 1 und machst das gleiche, dann Sample 2 usw. Hintergrund: wenn du nicht über eine bestimmte Dauer-Mittelst, dann ergibt die Berechnung einer Geschwindigkeit aus einem Encoder-Signal eine große Streuung weil du was kleines (ein Inkrement) durch noch was kleineres (Zeit zwischen 2 Samples) teilst und an der kleine Änderungen eine große Auswirkung haben ...



viele Grüße
cb

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
17.07.2014, 12:09
Beitrag #6

amadeus Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jul 2014

1303
2014
EN

4942
Oesterreich
RE: Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät
Danke dir, ich werde versuchen, das so umzusetzen.
Ich soll aber nicht einfach nur den Weg bestimmen, sondern auch den Geschwindigkeitsverlauf darstellen und andere Parameter ausgeben.
Aber das krieg ich hoffentlich schon alles irgendwie hin.

Jetzt habe ich habe ich aber immer noch ein Problem, mit dem ich mich schon den ganzen Tag rumschlage. Ich will 3 Auswahlmöglichkeiten haben
1) Aufnahme Geschwindigkeitskennlinie (soll einmal durchfahren damit ich bestimmen kann wie hoch die Maximalgeschwindigkeit ist und wo diese auftritt)
2) Messung: 10 durchläufe bei denen ich die Zeit bestimme
3) Berechnung: hier übernehme ich die 10 Zeiten und berechne meine Sicherheitsabstände.


Nachdem´s mit einer CASE- Struktur nicht funktioniert hat, habe ich jetzt alles auf eine Ereignisstruktur umgemünzt. Aber auch hier funktioniert die Umschaltung einfach nicht.
Müsste nicht eigentlich bei Drücken eines Tasters im Frontpanel die Ereignisstruktur zum jeweiligen Ereignis abgearbeitet werden und dann im Timeout-Modus auf ein neues Ereignis warten?

Vielen Dank für deine Hilfe, ich hoffe, du hast auch hier einen guten Rat. Vielleicht hast du mal kurz Zeit um ins Vi rein zu schaun um mir zu sagen, ob ich das mit den Eventstrukturen richtig aufgebaut habe.
Ich hängs nochmal an!

freundliche Grüße
amadeus


Angehängte Datei(en)
13.0 .vi  Nachlauf-Messgerät_Berechnung+Datenerfassung_Eventstruktur.vi (Größe: 474,86 KB / Downloads: 181)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.07.2014, 13:49
Beitrag #7

amadeus Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jul 2014

1303
2014
EN

4942
Oesterreich
RE: Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät
So, jetzt kann ich meine Probleme etwas konkreter benennen.

1) Wenn ich MESSEN will, dann möchte ich, wie gesagt, 10 Messwiederholungen machen.
Problem: Wenn ich in die Ereignisstruktur für MESSEN noch eine Ereignisstruktur einbaue für NEUE MESSUNG, dann hängt alles. Auch mit dem Highlight Execution-Feature kann ich nicht erkennen, worauf gewartet wird.

Ich möchte, dass wenn ich auf MESSEN gehe, die einzelnen Messungen starten, wenn ich den NEUE MESSUNG Button betätige. Nach meiner Denkweise müsste das so gehen, wie ich es Programmiert habe, aber leider funzt das so nicht. Ich hab das Gefühl, ich verstehe einfach noch nicht, wie Labview genau arbeitet.


2) Wenn ich im Ereignis KENNLINIE bin, möchte ich dort eben nur einmal eine Kennlinie aufnehmen und Maximalwert der Geschwindigkeit und dazugehörigen Verfahrweg bestimmen. das funktioniert auch ganz gut. Nur bringt mir der Feedback-node das Problem, dass ich, wenn ich die Kennlinie ein weiteresmal aufnehme, und eine kleiner Maximalgeschwindigkeit habe, der alte Maximalwert gespeichert bleibt.
Kann ich diesen bei erneutem Drücken des KENNLINIEN-Buttons im Frontpanel löschen?`

3) Nach einer Messfolge von 10 Messungen speichere ich diese in einem Text(LVM) ab, damit ich sie dann bei meiner Berechnung wieder auslesen kann. Hier auch wieder, wenn ich die Berechnung ein weiteres mal durchführen möchte, ein Fehler. : Error 4 occurred at Read From Measurement ( LabVIEW: End of file encountered.)


Auch hier keinen Plan woran das liegen kann, das File liegt im richtigen Ordner und hat genau 10 Einträge.
Kann es sein, dass beim ersten Durchlauf die ersten 10 Werte ausgelesen werden und beim zweiten Durchlauf versucht wird, ab dem 10 Eintrag wieder 10 Einträge auszulesen, welche jedoch nicht vorhanden sind?

Ich weiß, ich habe viele Fragen, aber Labview erscheint mir im Gegensatz zu C oder C# eine sehr komplizierte Programmiersprache zu sein Wink

Der Ablauf, wie mein Programm bearbeitet wird, ist mir oft nicht schlüssig.

freundliche Grüße


Angehängte Datei(en)
13.0 .vi  Nachlauf-Messgerät_Berechnung+Datenerfassung.vi (Größe: 473,05 KB / Downloads: 193)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.07.2014, 13:56
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät
(17.07.2014 13:49 )amadeus schrieb:  1) Wenn ich MESSEN will, dann möchte ich, wie gesagt, 10 Messwiederholungen machen.
Problem: Wenn ich in die Ereignisstruktur für MESSEN noch eine Ereignisstruktur einbaue für NEUE MESSUNG, dann hängt alles. Auch mit dem Highlight Execution-Feature kann ich nicht erkennen, worauf gewartet wird.
Jau, das haut nicht hin (oder wenn, dann nur mit viel Aufwand und fast garantiert unschönen Nebeneffekten). Hängt damit zusammen, dass es nur eine Event-Queue pro VI gibt, die GUI-Ereignisse empfängt und weitergibt. Lies dir die Hinweise zur Verwendung der Event-Struktur in der LabVIEW-Hilfe durch. Da steht u.a. maximal 1 Event-Struktur pro Schleife.
Die Erfahrung in der Realität leert: Max. 1 Event-Struktur pro VI.

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
17.07.2014, 15:03 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2014 15:16 von amadeus.)
Beitrag #9

amadeus Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jul 2014

1303
2014
EN

4942
Oesterreich
RE: Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät
Danke für die Antwort, auch wenn mir das jetzt überhaupt nicht in die Karten spielt.
Hast du eine Idee, wie ich dann trotzdem mit einem Ereignis (später dann über einen Digitalen Eingang) meine einzelnen Messungen starten kann?



Problem Nr. 3 habe ich jetzt gelöst, einfach den Reset-Eingang meines Write to Measurement File auf TRUE setzen und schon funktionierts Wink


Was hältst du von der Idee, die Messung auf den erwarteten Maximalwert der Geschwindigkeit zu Triggern? also, dass die ganze Zeit gemessen wird, aber die Aufzeichnung erst dann startet, wenn die Anlage wieder auf Nennleistung gefahren wurde?

edit: das ist eigentlich keine gute Idee, ich muss ja meine Messung exakt dann starten, wenn ich die Autohand auslöse, um die genaue Zeit ermitteln zu können
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.07.2014, 07:30
Beitrag #10

amadeus Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jul 2014

1303
2014
EN

4942
Oesterreich
RE: Drehgeber Datenerfassung DAQmx.9.8 Nachlaufmessgerät
Meine Idee war es jetzt, meine Messung einfach auf einen Eingang meiner Messkarte zu Triggern, welchen ich direkt mit einem Ausgang verbinde.
Mit diesem Ausgang steuere ich dann meine "Autohand" und meinen Messstart an. Mein Problem ist jetzt, dass ich immer eine Fehlermeldung bekomme, wenn ich den Counter über einen Eingang Triggern will.

Error -200452 occurred at Property Node DAQmx Trigger (arg 1) in DAQmx Start Trigger (Digital Edge).vi:3930002->Untitled 11

Possible reason(s):

Specified property is not supported by the device or is not applicable to the task.

Property: Start.TrigType

Task Name: _unnamedTask<35>


Das gleiche Problem wurde 2009 schon einmal hier diskutiert, aber leider nicht zu Ende gebracht.

Hat da jemand von euch eine Idee dazu?

freundliche Grüße
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
  Datenerfassung (DAQmx) & Motorsteuerung tommlst 6 4.879 19.08.2020 15:01
Letzter Beitrag: tommlst
  Drehgeber überprüfung mit NI 9401 MaxP 4 4.475 19.10.2016 06:38
Letzter Beitrag: MaxP
  Auswertung Drehgeber mit NI 9401 BenutzernameNO 6 5.859 29.08.2016 13:25
Letzter Beitrag: GerdW
  Datenerfassung cDAQ + NI9203 keine synchrone Datenerfassung dieseldunst 5 5.777 24.06.2016 14:49
Letzter Beitrag: jg
  Drehgeber 1Vss zur Regelung gottfried 1 3.148 21.10.2014 13:08
Letzter Beitrag: gottfried
  Inkremental Drehgeber Tobi4.4 5 6.380 24.10.2013 08:00
Letzter Beitrag: GerdW

Gehe zu: