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 

Messdaten eines Vibrationsaufnehmers erfassen



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.08.2009, 17:14
Beitrag #1

olnol Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Aug 2009

Studentenversion 8.6 & Vollversion 8.2
-
de

56412
Deutschland
Messdaten eines Vibrationsaufnehmers erfassen
Guten Tag! Ich bin zurzeit als Werksstudent tätig. Meine derzeitige Aufgabe sieht folgendermaßen aus: Ein Vibrationsaufnehmer gibt in unregelmäßigen Abständen eine aufklingende Schwingung und dann eine abklingende Schwinung aus. Der Pegel beträgt +-10V. Um das Signal analysieren zu können und Aussagen treffen zu können sollen die Daten mittels LabVIEW und einer DAQmx-9205 erfasst werden. Dabei soll das Programm folgende Funktionen unterstützen: 1. Anzeige Life-Signal, 2.Triggern auf eine Vibration(dh wenn aufklingende Schwinung bestimmte Schwelle überschreitet) 3.einstellbare Anzahl an Schwingungen müssen oberhalb einer Grenze liegen damit Trigger Ende, 3. Pre- und Posttrigger , 4. Darstellen des kompletten getriggerten Signals 5.Speichern des getriggerten Signalverlaufs(dh also quasi die auf-und abklingende Schwingung + Pre - und Posttriggersamples), 6. mehrmaliger Programmablauf möglich

Ich bin völliger Anfänger in LabVIEW und habe mich zunächst einmal in die Grundlagen eingearbeitet. Das Life-Signals des Vibrationsaufnehmers darstellen und auf Threshold triggern habe ich mit den DAQmx-Vi's gelöst. Doch nun stehe ich an einem Punkt und komme seit zwei Tagen einfach nicht weiter.

Wie löse ich die anderen Anforderungen?
Wie muss der grundsätzliche Aufbau des Programms aussehen( Schleifen, Sequenzen???)

Da das ganze in 3 Wochen fertig sein muss stehe ich etwas unter Zeitdruck. Ich hoffe ich bekomme von euch hilfreiche Tipps bzw Ansätze!!!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.08.2009, 09:11
Beitrag #2

MichaDu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 115
Registriert seit: Jun 2008

8.5
2008
en

47
Deutschland
Messdaten eines Vibrationsaufnehmers erfassen
Hallo,

weißt du nicht, wie du deine Ideen in Code umsetzen sollst? Oder weißt du noch gar nicht, wie du die Aufgabenstellung angehen sollst?

1. hast du schon fertig
2. hast du auch schon fertig
3. Irgendwie unklar formuliert. Vorgabe ist Anzahl der Schwingungen? Zählen könnte man mit einer weiteren Abfrage Ualt>Uschwelle UND Uneu<=Uschwelle (abfallende Flanke) in Ergänzung zu 2, um die positiven Amplituden zu erfassen. Oder die Maxima erfassen (siehe Mathe "Kurvendiskussion" = Extremwerte, Scheitelpunkte)
4. Pre-/Posttrigger unklar formuliert: willst du vor/nach dem eigentlich Triggern lediglich die Schwingung darstellen, aber nicht auswerten? Dann weitere Trigger wie in 2 und 3 definieren
5. Signaldarstellung geht ganz einfach mit einem Chart, Graph oder XY-Diagramm, wenn du die Werte vorher als Array oder Waveform gespeichert hast
6. Speichern in eine Datei? Geht auch ganz einfach mit vorhandenen VIs (Text, binär, tabellenform, ...). Schau mal in Gruppe "File IO"
7. Loop until stop??

Zum allgemeinen Programmaufbau gibt es viele Beispiele. Schau dich mal in deiner Enteicklungsumgebung um. Je nach LV-Version und Paket (ich weiß nicht, womit du arbeitest) gibt es auch viele Beispiele und optionale Tools wie "Signalanalyse", die deine Programmiererfahrung u.U. erheblich vereinfachen können ;-)

Ansonsten bekommt ein Werksstudent bestimmt Unterstützung von einem erfahrenen Betreuer ;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.08.2009, 09:12 (Dieser Beitrag wurde zuletzt bearbeitet: 20.08.2009 09:29 von jg.)
Beitrag #3

olnol Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Aug 2009

Studentenversion 8.6 & Vollversion 8.2
-
de

56412
Deutschland
Messdaten eines Vibrationsaufnehmers erfassen
Hallo zusammen. Ich habe mal mein ersten Ansatz gepostet. Wie zu erkennen ist möchte ich, wenn der Trigger feuert, dh eine bestimmte einstellbare Schwelle ober- oder unterschritten ist, beginnen die Messwerte in ein Array zu schreiben. Die Abbruchbedingung für das Speichern muss noch erzeugt werden. Doch auch wie sich ein Abbruch bei einer bestimmten Bedingung realsieren lässt ist mir noch unklar. Aber das ist im Moment nicht mein Problem. Mein derzeitiges Problem ist, dass die Start der Speicherung sehr ungenau erfolgt. Habe ich sehr steile Peaks in meinem Signal, liegt der erste Wert in meinem Array deutlisch über der Triggerschwelle. Dh zwischen dem "Feuern" des Triggers und dem Beginn der Datenspeicherung wurden schon neue Samples gelesen.

Wie erreiche ich nun ein sofortiges Speichern nach dem der erste Wert die Triggerschwelle überschritten hat????

Lv82_img


Angehängte Datei(en)
Sonstige .vi  TriggerVI.vi (Größe: 66,25 KB / Downloads: 225)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.08.2009, 10:14
Beitrag #4

MichaDu Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 115
Registriert seit: Jun 2008

8.5
2008
en

47
Deutschland
Messdaten eines Vibrationsaufnehmers erfassen
Warum erzeugst du nicht einen Impuls für die Datenspeicherung, der mit der Bedingung U>=Startschwelle startet und erst wieder zurückgesetzt wird, sobald U<=Stopschwelle ist. Wenn du die Stopschwelle etwas unter die Startschwelle setzt, kannst du ein "Prellen" durch eventuelles Signalrauschen eliminieren, ähnlich einem Zweipunktregler.

Zitat:Habe ich sehr steile Peaks in meinem Signal, liegt der erste Wert in meinem Array deutlisch über der Triggerschwelle.
Irgendwo musst du ja eine Triggerschwelle festlegen. Wenn deine Flanken zu steil sind, kannst du ja höher Abtasten (=höhere Samplingrate), um den Verlauf genauer aufzulösen.

Zitat:Dh zwischen dem "Feuern" des Triggers und dem Beginn der Datenspeicherung wurden schon neue Samples gelesen.
Du kannst natürlich auch mit dem Trigger eine Datei öffnen und die Werte sofort reinschreiben und wieder schließen, sobald der Stop-Trigger ausgelöst hat. Oder du trennst das Sampling von der Datenspeicherung und übergibst das Array mit den Messwerten an einen separaten Thread (=Loop), z.B. als lokale Variable.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.08.2009, 10:32
Beitrag #5

olnol Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Aug 2009

Studentenversion 8.6 & Vollversion 8.2
-
de

56412
Deutschland
Messdaten eines Vibrationsaufnehmers erfassen
Zitat:Irgendwo musst du ja eine Triggerschwelle festlegen. Wenn deine Flanken zu steil sind, kannst du ja höher Abtasten (=höhere Samplingrate), um den Verlauf genauer aufzulösen.

Ah das leuchtet mir ein. Dh bei steilen Peaks liegen die Samples weiter auseinander, so das es zu dieser großen Abweichung kommt. Kann ich denn mit dem derzeitigen Programm davon ausgehen das der Wert der zum Überschreiten der Triggerschwelle geführt hat auch mein 0. Element im Array ist, also die Speicherung gleichzeitig mit der Triggerung startet?


Zitat:4. Pre-/Posttrigger unklar formuliert: willst du vor/nach dem eigentlich Triggern lediglich die Schwingung darstellen, aber nicht auswerten? Dann weitere Trigger wie in 2 und 3 definieren

Dh ich möchte nachher ein Array, oder eben irgendetwas wo die Daten gespeichert sind, haben was sich zusammensetzt aus:
1. Werten vor Trigger
2. Werten von Trigger Start bis Ende
3. Werten nach Trigger Ende

Im Moment erfasse ich mit dem derzeitigen Programm ja nur Werte von Trigger Start an. Um auch Werte vor dem Trigger-Event speichern zu können müsste die Datenspeicherung doch kontinuierlich erfolgen und hat dann der Trigger gefeuert müsste ich irgendwie eine bestimmte Anzahl an Samples vor dem Triggerereignis extrahieren und daran die Werte nach dem Trigger-Event anhängen.

Oh man ist das kompliziert. Wie gehe ich da am besten vor?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.08.2009, 16:52
Beitrag #6

olnol Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Aug 2009

Studentenversion 8.6 & Vollversion 8.2
-
de

56412
Deutschland
Messdaten eines Vibrationsaufnehmers erfassen
So ich habe mal versucht ein halbwegs lauffähiges Programm zu erstellen. Dh beim Ausführen erledigt es auf den ersten Blick einen Teil der og Anforderungen. Was dem ganzen noch fehlt sind Posttrigger, Retriggerbar und Speicherung der Triggersignale in einer Datei.
Ich möchte gerne mal eure Meinungs zu meinem bisherigen "Werk" hören.

Ist das ganze einigermaßen "professionell" gelöst oder ist es völliger Unsinn das Problem in dieser Art umzusetzen ?

Ich bin für jegliche Art von Kritik und Verbesserungsvorschlägen offen. Schließlich möchte ich was lernen

Lv82_img


Angehängte Datei(en)
Sonstige .vi  V1.2_8.2akt.vi (Größe: 80,04 KB / Downloads: 210)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.08.2009, 18:31 (Dieser Beitrag wurde zuletzt bearbeitet: 20.08.2009 18:32 von Y-P.)
Beitrag #7

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Messdaten eines Vibrationsaufnehmers erfassen
Negative Kritik:

1. Das VI ist viel zu riesig. Eine Richtlinie ist, dass das Blockdiagramm nicht größer als eine Bildschirmgröße sein soll. Wenn es mal größer sein sollte, dann bitte nach rechts erweitern. Den Rest kann man mit SubVI's machen.

2. Viel zu viele (sinnlose) lokale Variablen, die Du durch Schieberegister oder einfache Durchverdrahtung vermeiden könntest.

3. Viel zu verschachtelt. Bei einer State Machine hast Du eine (!) Whileschleife mit einer Case-Struktur (optional mit einer Eventstruktur) und das war's.
Bei Dir ist eine Sequenz im Case, dieser wiederum in einer Sequenz, welche in einer Whileschleife ist, die sich in einem Case befindet, der auch wieder in einer Whileschleife ist, die Du in einer Sequenz plaziert hast. Das ist schon krass.

Positive Kritik:

Du bist keiner der Homework-Hustler, sondern möchtest echt was lernen. Dazu empfehle ich Dir dringendst, Dich mal mit der Vorgehensweise der LabVIEW-Programmierung zu befassen, am besten auf einem / mehreren Lehrgängen. Wenn nicht, dann schau' Dir einfach mal ein Buch oder diverse Beispiele hier im Forum an.

Gruß Markus

' schrieb:Ich bin für jegliche Art von Kritik und Verbesserungsvorschlägen offen. Schließlich möchte ich was lernen

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.08.2009, 19:07
Beitrag #8

olnol Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Aug 2009

Studentenversion 8.6 & Vollversion 8.2
-
de

56412
Deutschland
Messdaten eines Vibrationsaufnehmers erfassen
Zitat:Negative Kritik:

1. Das VI ist viel zu riesig. Eine Richtlinie ist, dass das Blockdiagramm nicht größer als eine Bildschirmgröße sein soll. Wenn es mal größer sein sollte, dann bitte nach rechts erweitern. Den Rest kann man mit SubVI's machen.

2. Viel zu viele (sinnlose) lokale Variablen, die Du durch Schieberegister oder einfache Durchverdrahtung vermeiden könntest.

3. Viel zu verschachtelt. Bei einer State Machine hast Du eine (!) Whileschleife mit einer Case-Struktur (optional mit einer Eventstruktur) und das war's.
Bei Dir ist eine Sequenz im Case, dieser wiederum in einer Sequenz, welche in einer Whileschleife ist, die sich in einem Case befindet, der auch wieder in einer Whileschleife ist, die Du in einer Sequenz plaziert hast. Das ist schon krass.

Das habe ich mir fast gedacht!

Zitat:Du bist keiner der Homework-Hustler, sondern möchtest echt was lernen. Dazu empfehle ich Dir dringendst, Dich mal mit der Vorgehensweise der LabVIEW-Programmierung zu befassen, am besten auf einem / mehreren Lehrgängen. Wenn nicht, dann schau' Dir einfach mal ein Buch oder diverse Beispiele hier im Forum an.

Mir fehlt leider die Zeit und das Geld für solche Lehrgänge. Ein Buch habe ich mir schon besorgt und diverse Beispiele zudem angeschaut. Mh aber anscheinend habe ich dabei nicht viel gelerntWink. Allerdings fand ich die Beispiele bisher nicht so komplex wie meine Problemstellung. Aber vielleicht kommt es mir auch nur so schwer vor.
Lerne möchte ich auf jeden Fall was, aber das ist eig mein persönliches Interesse. Die andere Sache ist das das Programm in 3 Wochen laufen muss!

Ist es denn zu empfehlen einen Zustandsautomaten bei meiner Problemstellung zu verwenden?
Ist die Sache an denn an sich gut gelöst (Pretrigger, Trigger, Speichern der Werte in Arrays, 1 Sample pro Zyklus) und nur die Strukturierung ein wenig wüst?????
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.08.2009, 09:17
Beitrag #9

olnol Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Aug 2009

Studentenversion 8.6 & Vollversion 8.2
-
de

56412
Deutschland
Messdaten eines Vibrationsaufnehmers erfassen
Guten Morgen zusammen! Ich habe mal begonnen das ganze in einem Zustandsautomaten zu implementieren.
Ich möchte nun gerne mal wissen ob die Vorgehensweise so korrekt ist!
Ist es nötig in jedem Case die Durchverdrahtung der Schieberegister zu erstellen?

Ich bin auf eure Antworten gespannt

Lv82_img


Angehängte Datei(en)
Sonstige .vi  Zustandsautomat.vi (Größe: 32,63 KB / Downloads: 215)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.08.2009, 10:33
Beitrag #10

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Messdaten eines Vibrationsaufnehmers erfassen
Das sieht doch schon mal ganz anders aus. Top2
Du solltest die Schiebergister schon durchverdrahten. Schnell geht das, wenn Du am rechten Tunnel folgendes machst (nach Rechtsklick auf Tunnel, bzw. unausgefülltes Rechteck).
   
Dann kannst Du mehrere Cases auf einmal verdrahten.

Gruß Markus

' schrieb:Guten Morgen zusammen! Ich habe mal begonnen das ganze in einem Zustandsautomaten zu implementieren.
Ich möchte nun gerne mal wissen ob die Vorgehensweise so korrekt ist!
Ist es nötig in jedem Case die Durchverdrahtung der Schieberegister zu erstellen?

Ich bin auf eure Antworten gespannt

Lv82_img

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
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
Smile Höchstwerte eines Diagramms erfassen DAYA 10 6.476 05.04.2017 07:27
Letzter Beitrag: jg

Gehe zu: