LabVIEWForum.de - Zyklen vorgeben

LabVIEWForum.de

Normale Version: Zyklen vorgeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2

Jacky11

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?

Hoffe Ihr versteht mein ProblemSmile

Danke euch!
Grüße

Jacky11

Hat keiner eine Idee oder versteht ihr mein Problem nicht?Smile
(12.05.2014 07:24 )Jacky11 schrieb: [ -> ]Hat keiner eine Idee oder versteht ihr mein Problem nicht?Smile

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.

Überdenke wirklich nochmal Deine programmierweise und informiere Dich über die Grundlagen.
http://www.ni.com/gettingstarted/labviewbasics/
http://zone.ni.com/reference/en-XX/help/...data_flow/

Jacky11

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...Sad

Jacky11

Kann mir jemand weiterhelfenSmile?!
Im Anhang das VI mit lv11_img
Grüße
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.

Gruß

Jacky11

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 verstandenSad 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ändlichSmile?
Grüße
Hallo Jacky,

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! Smile

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? Hmm

(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?)

Jacky11

Hi Gerd...ich mal wieder gell Big Grin
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? Hmm
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 Hmm

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
Hallo Jacky,

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?
[attachment=49712]

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.

Rtmfx Rtmfx Rtmfx (Kann man nicht oft genug wiederholen!)

Zitat:Dann ändere ich meine samplerate auf 100 dann hab ich ein dt von 10 ms, ja?!
Simple Mathematik - immer wieder schön… Big Grin
Seiten: 1 2
Referenz-URLs