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!
Ich bin ganz neu hier im Forum und habe nachdem ich passende Infos gesucht habe, mich entschlossen meinen ersten Beitrag zu sreiben.
Ich heiße Thorben und gehe noch in die Schlue. In unserer Physik-AG haben wir eine Aufgabe bekommen die ich mit LabVIEW lösen soll.
Es geht dabei um Abtastung.
Wir sollen dabei ein Signal abtasten (das Signal wir zuerst nur simuliert und später evtl. real über eine Messkarte eingelesen). Dabei handelt es sich um einzelne Rechteckamplituden (unterschiedliche Amplitudenhöhe), welche ein Ereignis darstellen. Wir wollen also über einen Zeitraum messen und die einzelnen Ereignisse aufzeichnen. Die Abtastrate soll dabei einstellbar sein.
Außerdem soll das komplette Signal nach Abschluss der Messung weiterhin auf dem Graph sichtbar bleiben. Also fast wie in einem Speicheroszilloskop o.ä.
Ich habe jetzt schon ein bißchen gelesen und denke das ich für die Darstellung der Werte diese in ein Array schreiben muss. Stimmt das?
Wie taste ich das Signal überhaupt ab?
Theoretisch könnte ich es ja mit einem Dirac Impuls multiplizieren, aber das müsste doch einfacher gehen..
Was bedeutet "Indizierung" bei einer While Schleife?
Worin liegt der Unterschied zwischen Waveform Graph und Chart?
Ich hoffe Ihr seit nicht genervt von so einem blutigen Anfänger wie mir!
Thorben
P.S. Anbei mein erstes VI. Ich habe in der linken Box versucht ein Signal zu generieren und es rechts dann darzustellen...
<div align="left">Hi, ich bin selber neu hier und in LabVIEW.
Ein wenig kann ich dir helfen.
Aber fuer einen Schueler erstaunt mich, dass du weisst was ein Dirac Impuls ist.
Die Frage wie du das Abtasten des Signals machst haengt davon ab was du genau machen willst. Im Grunde kannst du ueber einen Schalter auf der Oberflaeche, der an ein Relais angeschlossen ist das simulierte Signal auf dem Waveform Chart an und ausschalten und es wird dann sogar die Luecke in der du es kurzfristig ausgeschalten hast angezeigt.
Womit wir bei den Graphen waeren. Ein Chart ist wie einem EKG vom Doktor welches das Signal auf ein Endlospapier druckt. Du siehst das signal von links nach rechts wandern und wenn es am Graph rand ankommt, wanderst du mit ihm in der x-Achse mit. Du kannst auch eine Scroll-Leiste einblenden und nach dem Stoppen des VIs noch hin und her scrollen. Beim Graph ist es mehr wie ein Oszilloskop in dem du nur das Bild hast und nicht schauen kannst was schon fuer Signale vor ein paar Sekunden waren.
Wenn du also das Signal nicht speichern musst um es ein anderes mal wieder zu laden, dann ist ein Chart am besten und einfachsten dafuer geeignet. Sobald du das VI jedoch wieder startest wird dein Signal im Chart ueberschrieben.
Bei der Indizierung einer While Schleife weiss ich nicht genau was du meinst. Es gibt die Moeglichkeit, dass du Werte aus einer Schleife ausgibst, dann wird jeder Wert der in einer Iteration (Ablauf) der Schleife z.B. berechnet wurde indiziert und du erhaelst die Werte aus jeder Iteration in einem Array. Das Problem bei einer While Schleife ist jedoch, dass du nicht weisst wie viele Iterationen die Schleife macht, da die Anzahl nicht wie bei einer For Schleife festgelegt ist und dein Array damit riesig werden kann. Als Indizierung ist hier also der Index gemeint den der Wert im Array erhaelt um seine Position im Array festzulegen. Also a0, a1, a2, a3 aus einem Array mit 4 Werten.
Da ich LabVIEW 8 habe und nicht den Unterschied zu 7 kenne, sondern nur 6, kann ich nicht sagen welche Funktionen in 7 schon existieren. So wuerde dein Signalaufbau in Version 8 aussehen.
Die schwarzen Luecken sind Aufzeichnungspausen in denen ich nicht gemessen hab. Die Scroll-Leiste unter dem Graph ist das aufgezeichnete, fuer die laenge der Aufzeichnung muss du aber angeben wie gross der Speicher fuer den Graphen sein soll, wenn es eine laengere Messung wird.
Gruesse,
Boris
</div>
16.10.2006, 08:01 (Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2006 08:02 von cb.)
Man tastet ein Signal ab, in dem man mit einem vorgegebenen Takt ("Sample-Rate", "Abtast-Frequenz") den Wert des Signals misst ("Sample"). Bei eine Sample-Rate von 1kHz misst man z.B. 1000 mal pro Sekunde den Wert des Signals (üblicherweise die Spannung).
Soweit zur Theorie, ab hier spielt dann die Hardware eine Rolle: Messen kann man z.B. mit einer Messkarte. Eine Messkarte hat einen ADC (Analog to Digital Converter), der aus dem analogen Signal (der Spannung) eine digitale Zahl erzeugt. Die Genauigkeit der Messung hängt von der Auflösung des ADC ab. Es gibt typischerweise ADCs mit 12bit Auflösung, 16 bit Auflösung, 24 bit Auflösung, etc. Je nachdem wie groß der Eingangsbereich des ADC ist, wird die Spannung in 2 hoch Auflösung Häppchen zerteilt.
Beispiel: eine Messkarte mit einer Auflösung von 12 bit und einem max. Eingangsbereich von -10 bis +10 Volt teilt das Signal (20V in 2 hoch 12 = 4096) gleiche Teile auf => ein 12 bit ADC kann max. 0,00488 Volt auflösen. Schwankungen des Signals, die kleiner sind als die Auflösung des ADC kann man nicht mehr messen, man spricht in diesem Zusammenhang auch von dem Quantisierungsfehler ...
Die Indizierung bei einer For-Schleife bedeutet, dass die Schleife genau so oft durchlaufen wird, wie das angeschlossene Array mit den wenigsten Elementen Elemente hat. Beispiel:
du schließt an eine For-Schleife ein Array mit 20 Elementen und ein Array mit 5 Elementen an, bei beiden ist Autoindizierung an => die For-Schleife wird 5 mal durchlaufen.
Oder: eine For-Schleife kann automatisch ein Array aufbauen, das so viele Elemente enthält, wie die Anzahl der Schleifendurchläufe.
Bei der While-Schleife ist es ähnlich, nur beim Eingang muss man aufpassen, die While-Schleife wird NICHT beendet, wenn alle Array-Elemente abgearbeitet sind ...
Der Unterschied zwischen Graph und Chart? --> LabVIEW -> Hilfe -> RTFM- sorry, ich will mir nicht meinen Ruf versaun
Wenn ich noch eine Kleinigkeit ergänzen darf, und zwar zu Deinem Satz:
Zitat:Theoretisch könnte ich es ja mit einem Dirac Impuls multiplizieren, aber das müsste doch einfacher gehen..
Das geht wirklich nur theoretisch, d.h auf dem Papier, in Lehrbüchern oder in Vorlesungen. Es ist eine mathematische Methode, um den Abtastvorgang zu modellieren und der theoretischen Analyse zugänglich zu machen. Z.B kann man mit diesem Modell den Unterschied im Fourierspektrum eines analogen Signals und einer daraus gewonnenen Abtastfolge berechnen.
Was sich in der Mathematik als "Multiplikation des Signalverlaufes mit einem Dirac-Impuls" darstellt, ist in der physikalischen Wirklichkeit schlichtweg ein Abtastwert (engl Sample = Probe, Stichprobe) zu einem bestimmten Zeitpunkt, und üblicherweise ist das eine AD-Umsetzung mit einem real existierenden AD-Wandler.
' schrieb:Wenn ich noch eine Kleinigkeit ergänzen darf, und zwar zu Deinem Satz:
Das geht wirklich nur theoretisch, d.h auf dem Papier, in Lehrbüchern oder in Vorlesungen. Es ist eine mathematische Methode, um den Abtastvorgang zu modellieren und der theoretischen Analyse zugänglich zu machen. Z.B kann man mit diesem Modell den Unterschied im Fourierspektrum eines analogen Signals und einer daraus gewonnenen Abtastfolge berechnen.
Was sich in der Mathematik als "Multiplikation des Signalverlaufes mit einem Dirac-Impuls" darstellt, ist in der physikalischen Wirklichkeit schlichtweg ein Abtastwert (engl Sample = Probe, Stichprobe) zu einem bestimmten Zeitpunkt, und üblicherweise ist das eine AD-Umsetzung mit einem real existierenden AD-Wandler.
Das mit dem Dicar Impuls hab ich im Internet gelesen.
Gibt es in LabVIEW denn einen Baustein "Abtastung"?
Ich konnte bei mir noch nichts finden...
Aber die Idee das Signal einfach aufzuzeichnen und nach dem Ende der Messung einfach zurückzuscrollen ist fast genau das was ich bauen wollte. Wie baue ich denn einen Scrollbalken ein? Über die Skalierung der Achse kann ich ja schon einiges abbilden...
' schrieb:<div align="left">
...
Die Frage wie du das Abtasten des Signals machst haengt davon ab was du genau machen willst. Im Grunde kannst du ueber einen Schalter auf der Oberflaeche, der an ein Relais angeschlossen ist das simulierte Signal auf dem Waveform Chart an und ausschalten und es wird dann sogar die Luecke in der du es kurzfristig ausgeschalten hast angezeigt.
...
Wenn du also das Signal nicht speichern musst um es ein anderes mal wieder zu laden, dann ist ein Chart am besten und einfachsten dafuer geeignet. Sobald du das VI jedoch wieder startest wird dein Signal im Chart ueberschrieben.
...
Da ich LabVIEW 8 habe und nicht den Unterschied zu 7 kenne, sondern nur 6, kann ich nicht sagen welche Funktionen in 7 schon existieren. So wuerde dein Signalaufbau in Version 8 aussehen.
Die schwarzen Luecken sind Aufzeichnungspausen in denen ich nicht gemessen hab. Die Scroll-Leiste unter dem Graph ist das aufgezeichnete, fuer die laenge der Aufzeichnung muss du aber angeben wie gross der Speicher fuer den Graphen sein soll, wenn es eine laengere Messung wird.
Gruesse,
Boris
</div>
Danke Boris!
Deine Art der Abtastung ist wirklich ideal. Über den Schalter kann man die "Messung scharfschalten".
Das ist wirklich super. Dankeschööön!
<div align="left">Hi beginner.
wenn du mit rechts-klick auf dein Chart klickst und in Eigenschaften gehst, kannst du auf der ersten Seite deiner Register ein Haeckchen fuer die Scroll-Leiste setzen. Ich weiss leider nicht genau wie das Feld in der deutschen Version heisst, ich hab die englische.
Mit dem rechts-klick kannst du bei vielen deiner Bloecke die du erstellst eine Menge einstellen, immer wieder ein wenig darin rumprobieren. So kannst du auch den Knopf zu einem Schalter oder Taster machen, der auf verschiedene Arten reagiert, z.B. auf Loslassen "EIN" oder auf betaetigen "EIN" so lange du ihn gedrueckt haelst usw.
Freut mich, dass ich hier auch jemandem helfen kann
Boris (Bandit600N) hat oben genau so ein VI gepostet wie ichs brauche.
Leider kann ich das VI mit LV7 nicht nachbauen, ich finde die ExpressVIs nicht.
Kann mir das evtl jemand für LV7.1 speichern oder mir sagen wo ich die ExpressVIs finden kann?
Funktioniert schon ganz prächtig, nur eine Fragen habe ich noch:
Wenn ich das VI starte fragt LabVIEW sofort nach dem Speicherort meiner Grafik. Ich konnte die Messung jetzt aber noch gar nicht starten, was mache ich da noch falsch?
es gibt eine "Disable-Structure" in den Ordnern, wo du die while-Schleife oder die auch die Case-Structure findest.
Ziehe diese Schleife über den Part deines VI, in dem der Speichervorgang gemacht wird. Wenn du dann das VI laufen lässt, wird alles abgearbeitet, ausser die Elemente, die sich in der Disable-Structure befinden.
Somit kannst du dein VI testen, ohne speichern zu müssen.