LabVIEWForum.de - While-Schleife mit Bedingungsanschluss

LabVIEWForum.de

Normale Version: While-Schleife mit Bedingungsanschluss
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Zum einen muss eine Whileschleife um die Casestruktur und nicht eine Whileschleife in jeden Case (sonst wird immer nur ein Case, je nach Schalterstellung, ausgeführt), dann solltest Du in die Whileschleife eine Zeitverzögerung von mindestens 1 ms reinpacken, damit Du die CPU nicht zu 100 % belastest und dann solltest Du die Werte aus dem jeweiligen Tick-Count voneinander abziehen, damit Du auch auf die richtigen Zeiten kommst.

Wenn Du es so wie ich machst, dann wird Deine CPU nicht so belastet und Du brauchst auch keine Zeitverzögerung.

Gruß Markus
Danke, für die Schnelle Antwort. Das habe ich soweit verstanden, dass man für diesen Fall keine While-Schleife in die Case-Struktur steckt. Jetzt möchte ich aber, dass in Abhängigkeit von 3 Schaltern 2 Zeiten messen. Das heißt, dass wenn Schalter_1 auf true geht, soll Zeitmessung_1 gestartet werden. Danach geht Schalter_1 wieder auf False, aber die Zeit läuft weiter. Wenn Schalter_2 auf true geht, soll Zeitmessung_1 gestoppt werden und gleichzeitig die Zeitmessung_2 gestartet werden. Anschließend kann der Schalter_2 wieder auf false springen und die Zeitmessung_2 wird erst gestoppt, wenn Schalter_3 auf true springt.

Hierbei müssten doch in jede Case-Struktur eine While-Schleife, mit der Abbruchbedingung "Nächster Schalter auf True", oder? Sonst würde die Zeitmessung doch nur laufen, solange ein Schalter auf beispielsweise True steht, oder?
Dann weiß ich nicht genau, wie ich die 3 Schalter mit der Case-Struktur verbinde, da ich bisher nur mit einem Schalter und den Beiden Case-Fällen True und False gearbeitet hab. Wie macht man das dann?

Die Schalter stehen eigentlich für Signale, die ich von Lichtschranken bekomme. Ich wollte es zur Vereinfachung zunächst einmal mit den Schaltern probieren, bevor ich mich an die Einführung der Digitalen Lichtschrankenwerte wage.


Vielen Dank für die Hilfe und ein Frohes Neues Jahr wünsche ich!!!!!
Meinst Du so?

[attachment=16005]
Lv85_img

Gruß Markus
Hey, super genau sowas hab ich gesucht. Vielen Dank. Ich versuche das jetzt mal nachzuvollziehen. Und dann versuche ich das nächste Woche, wenn ich wieder an der Uni bin, in mein Programm einzubinden. Schonmal vielen Dank


Gruß


Sebastian
Hallo, wie müsste ich das Programm umschreiben, um die Schalter durch die Lichtschrankensignale zu ersetzen? Ich benutze den DAQ-Assistenten, um die Signale von den Lichtschranken auf dem PC darzustellen. Jetzt soll zwischen LED_1 = 1 und LED_2 = 1, zwischen LED_2 =1 und LED_3=1 und zwischen LED_3=1 und LED_4=1 wie im True-False-Counter die Zeit gemessen werden. Nur das die Schalter durch die Lichtschranken Signale ersetzt werden. Über Hilfe wäre ich sehr dankbar.


Viele Grüße

Sebastian
Lv85_img
Dann kannst Du das Signal der Lichtschranke an einen "Property Node" (Value Signaling) eines Boolschen Elements anschließen und dann kannst Du in Deinem Event auch nach Value abfragen. Hab' Dir ein kleines Bsp. gemacht.

[attachment=16018]
Lv85_img

Gruß Markus

' schrieb:Hallo, wie müsste ich das Programm umschreiben, um die Schalter durch die Lichtschrankensignale zu ersetzen? Ich benutze den DAQ-Assistenten, um die Signale von den Lichtschranken auf dem PC darzustellen. Jetzt soll zwischen LED_1 = 1 und LED_2 = 1, zwischen LED_2 =1 und LED_3=1 und zwischen LED_3=1 und LED_4=1 wie im True-False-Counter die Zeit gemessen werden. Nur das die Schalter durch die Lichtschranken Signale ersetzt werden. Über Hilfe wäre ich sehr dankbar.
Viele Grüße

Sebastian
Hallo, erstmal vielen Dank für das Beispiel mit der Abtastung des Signals von der Lichtschranke. Was mir allerdings noch nicht klar ist, wie ich genau Kanal 1 bzw. Kanal 2 oder Kanal 3 am DAQ-Assistenten ansprechen kann, um es dann "Property Node" (Value Signaling) eines Boolschen Elements anschließen zu können.


Ich hab mir jetzt nochmal selber ein Programm für die Zeitmessung zwischen Schalterstellungen geschrieben, weil ich das vorherige Beispiel nicht ganz verstanden habe. Weiterhin wollte ich durch die Verwendung der Sequenz-Struktur erreichen, dass die Zeitmessung 2 nach der Zeitmessung 1 stattfindet. Mit dem Schalter LS1 wird die erste Zeitmessung gestart und mit Schalter LS2 die Zeitmessung beendet. Mit LS2* wird die zweite Zeitmessung gestartet und mit LS3 beendet. Allerdings geht bei der Zeitmessung die CPU-Auslastung ziemlich in die Höhe. Wie könnte ich da Abhilfe schaffen?


Grüße


Sebastian

Lv86_img
Offtopic2
Bitte LVF-Regeln beachten:

Bei jedem VI-Upload LV-Version mit angeben!

Dein letzter Beitrag ist ein typischer Beitrag für diese Regel! Upload ist LV8.6, laut Profil hast du "nur" LV8.5.
Oh, tut mir leid, hab nicht dran gedacht, dass ich auf dem Laptop, an dem ich eigentlich nicht arbeite noch die Testversion 8.6 drauf habe.
Eine Zeitverzögerung (da reicht schon 1 ms, besser sind z.B. 10 ms) in Deine Whileschleifen machen.

Gruß Markus

' schrieb:Wie könnte ich da Abhilfe schaffen?
Seiten: 1 2
Referenz-URLs