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!
Hi,
folgendes Problem: Ich kann in meinem VI nur über die Anzahl der samples meine gewünschten Zyklen vorgeben, welche bei einem Durchlauf wiederholt werden.
Wie kann ich aber jetzt aber direkt über das Zyklen Textfeld auswählen, dass ich z.B. 850 Zyklen haben möchte?
(12.05.2014 07:24 )Jacky11 schrieb: Hat keiner eine Idee oder versteht ihr mein Problem nicht?
Das VI zeigt eher, dass Dir die Grundlagen bei der LabVIEW Programmierung fehlen.
1.) Schau Dir Event Programmierung an, z.B. hier http://zone.ni.com/reference/de-XX/help/...structure/
2.) Eine der Schleifen läuft dauerhaft und kann nie beendet werden, das VI kann so nur abgebrochen werden
3.) "Wie kann ich aber jetzt aber direkt über das Zyklen Textfeld auswählen, dass ich z.B. 850 Zyklen haben möchte?"
Ein solches Textfeld existiert nicht.
4.) Wie immer bei LabVIEW -> DATAFLOW. Das ist hier nicht gegeben.
Das weiß ich dass mir einiges an Grundlagen fehlt, ist eben nicht so einfach nach 2 Monaten alles zu verstehen...vorallem wenn man nur nebenher programmiert.
Die Schleife welche dauerthaft läuft ist ja nur die mit der verstrichenen Zeit, das spielt ja keine Rolle...
Dass so ein Textfeld nicht direkt existiert ist mir auch klar, aber ich kann das ja bestimmt über eine Formel oder irgendwie anders hinkriegen, weiß leider nicht genau wie...
Hi,
ich hab zwar keine Ahnung was das alles soll, aber ich hab mal schnell was zusammen gebastelt.
Ist ein ziemlich schlechter Code, aber ich kann dir leider nix schönes programmieren, da ich den zweck der ganze Sache nicht verstehe.
Zitat:Hi,
ich hab zwar keine Ahnung was das alles soll, aber ich hab mal schnell was zusammen gebastelt.
Ist ein ziemlich schlechter Code, aber ich kann dir leider nix schönes programmieren, da ich den zweck der ganze Sache nicht verstehe.
Hm, du hast leider mein Problem nicht so ganz verstanden Trotzdem Danke!
Am Ende soll es Bedienerfreundlich sein und einfach, d.h. ich möchte z.b. 1000 Zyklen im Frontpanel eingeben mit einer Frequenz von 1 und erst nach den von mir gewünschten (z.B. 1000 Zyklen) stoppt das Programm.
Aktuell sieht es ja so aus: Ich stelle eine Frequenz und Amplitude von 1 ein, dann bedeutet das, dass 1 Durchlauf 9,993...Zyklen hat und diese 9,993...möchte ich Manuell eingeben!
Verständlich?
Grüße
15.05.2014, 08:07 (Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2014 08:15 von GerdW.)
Zitat:ich möchte z.b. 1000 Zyklen im Frontpanel eingeben mit einer Frequenz von 1 und erst nach den von mir gewünschten (z.B. 1000 Zyklen) stoppt das Programm.
Das hört sich nach einem Plan an!
Zitat:Aktuell sieht es ja so aus: Ich stelle eine Frequenz und Amplitude von 1 ein, dann bedeutet das, dass 1 Durchlauf 9,993...Zyklen hat und diese 9,993...möchte ich Manuell eingeben! Verständlich?
Nein, überhaupt nicht verständlich…
Du hast eine Sampleanzahl von 15000 bei einer SamplingRate von 150 programmiert. Das entspricht einer Signaldauer von 15k/150=100s. Wie kommst du jetzt darauf, dass bei f=1Hz 9,993 Zyklen (statt ganzer 100 Zyklen) erzeugt werden?
(Theoretische) Lösung für dein Problem:
Wenn du Frequenz und Zyklenzahl kennst, kannst du daraus ja mit der SamplingRate die zu erzeugende Sampleanzahl berechnen. Einfacher Dreisatz…
Praktische Probleme bei der Ausführung:
Du gibst die Samples einzelwertweise aus und nutzt Wait(ms) zum Takten der Ausgabe. Momentan hast du ein dt von 1/150s=6.67ms. Dieses rundest du gnadenlos auf 7ms auf…
Du kannst nur ganze Millisekunden warten, musst also deine Samplerates entsprechend anpassen: 1000Hz, 500Hz, 333.333Hz, 250Hz, 200Hz,… (hast du das zugrundeliegende Schema erkannt?)
Zitat:Du hast eine Sampleanzahl von 15000 bei einer SamplingRate von 150 programmiert. Das entspricht einer Signaldauer von 15k/150=100s. Wie kommst du jetzt darauf, dass bei f=1Hz 9,993 Zyklen (statt ganzer 100 Zyklen) erzeugt werden?
Hab doch auf meinem Frontpanel einen "Zyklen" Indicator, welchen ich über die Frequenz*Zeit berechne und da kommen doch die 9,993 Zyklen bei Samplerate 150 und Anzahl der Samples 1500 raus, ja?
Zitat: (Theoretische) Lösung für dein Problem:
Wenn du Frequenz und Zyklenzahl kennst, kannst du daraus ja mit der SamplingRate die zu erzeugende Sampleanzahl berechnen. Einfacher Dreisatz…
Die Zyklenanzahl kann ich in meinem VI doch gar nicht ändern weil ich ein Indicator habe bzw weiß nicht wie ich das ändern soll, sorry
Zitat: Praktische Probleme bei der Ausführung:
Du gibst die Samples einzelwertweise aus und nutzt Wait(ms) zum Takten der Ausgabe. Momentan hast du ein dt von 1/150s=6.67ms. Dieses rundest du gnadenlos auf 7ms auf…
Dann ändere ich meine samplerate auf 100 dann hab ich ein dt von 10 ms, ja?!
Grüße Jacky
15.05.2014, 09:39 (Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2014 09:40 von GerdW.)
Zitat:Hab doch auf meinem Frontpanel einen "Zyklen" Indicator, welchen ich über die Frequenz*Zeit berechne und da kommen doch die 9,993 Zyklen bei Samplerate 150 und Anzahl der Samples 1500 raus, ja?
Aber das man die SamplingInfo auch selbst manipulieren kann hast du noch nicht in Betracht gezogen?
Warum wird nun 9.993 statt glatt 10 angezeigt? Mal überlegen…
Es fehlen genau 0.007 Zyklen. Das sind bei einer SampleRate von 150? Genau: 1 Sample! Deine Zykluserkennung stört sich an einem fehlenden Sample! Und wo verlieren wir dieses eine Sample?
Lesen wir doch mal die LabVIEW-Hilfe zu WaveformDauer:
Zitat:Berechnet die Dauer von Signalverlauf (Eingang) durch folgende Formel: Dauer = (Anzahl der Werte-1) × dx.
(Kann man nicht oft genug wiederholen!)
Zitat:Dann ändere ich meine samplerate auf 100 dann hab ich ein dt von 10 ms, ja?!