LabVIEWForum.de - Zyklus abbrechen

LabVIEWForum.de

Normale Version: Zyklus abbrechen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi

irgendwie fehlt mir das Wissen bzw die zündende Idee


Brauch ein Programm das alle 30 Minuten ein Netzteil neu einstellen soll.

Ich fange bei 14V an und will eben alle 30 Minuten die Spannung um 100mV senken.

Jetzt will ich kein 30 Minunten wait verwenden sondern eine elegante Lösung das ich in den 30 Minuten vielleicht auch mal auf Stop oder so klicken kann damit das verringern der Spannung aufhört und ich anderen Code laufen lassen kann.

Wie stellt man sowas am besten an?

Danke
Hallo bull,

statt einem Wait für 30min könntest du auch 360 Waits für 5s verwenden. Dann kannst du alle 5s abbrechen...
Noch schöner wäre eine saubere Statemachine!
Ich hab mir gedacht ich nehm eine Ereignisstruktur und alle 30 Minunten kommts zum Timeout wo die Spannung herabgesetzt wird.

Drücke ich wärend der 30 Minunten Stop dann reagiert die Ereignisstruktur und bricht ab oder macht was auch immer.

Geht das nicht eleganter?

Nen Schalter pollen in einer Schleife die ich 360 mal durchlaufen lasse mit 5s wait will ich auch nicht.

Taugen die Timedloops für sowas? Habe damit keine Erfahrung.
Hallo bull,

Antworten wie meine oben kommen davon, dass der OP kein VI anhängt...

Ja, mit einer Eventstruktur ginge das eleganter. Wobei pollen im 5s-Takt noch nicht so ressourcenfressend ist...
Wennn Du unbedingt auf Alternativen zu den bisherigen Vorschlägen aus bist: Das Timeout von Meldern, Queues, Occurrences lässt sich als Wait missbrauchen und ist jederzeit unterbrechbar. Beispiel Occurrence:
[attachment=41595]
Habs jetzt so gemacht

Danke für die Ideen
Hallo bull,

uh-oh, eine Eventstruktur in einer Case-Struktur. Ich sehe dunkle Wolken am Horizont...

Außerdem:
Warum lokale Variablen, wenn die Terminals unbenutzt im BD rumliegen?
(20.09.2012 20:00 )GerdW schrieb: [ -> ]Hallo bull,

uh-oh, eine Eventstruktur in einer Case-Struktur. Ich sehe dunkle Wolken am Horizont...

Außerdem:
Warum lokale Variablen, wenn die Terminals unbenutzt im BD rumliegen?

Hi

die Terminals lege ich immer nach oben weil ich sie an anderen Stellen auch noch brauche. So hab ich alle auf einem Blick.

Was spricht gegen die Eventstruktur in einer Case?

Das dekrementieren der Spannung soll erst erfolgen wenn die Cases davor erledigt sind und nach dem beenden gehts weiter mit anderen Cases.
(21.09.2012 07:27 )ragingbull schrieb: [ -> ]Was spricht gegen die Eventstruktur in einer Case?
Es deutet stark darauf hin, dass du mehrere Eventstrukturen innerhalb eines VIs verwendest. Das führt prinzipiell zu Ärger!

Gruß, Jens
Hallo bull,

Zitat:die Terminals lege ich immer nach oben weil ich sie an anderen Stellen auch noch brauche. So hab ich alle auf einem Blick.
Wenn du bei der LabVIEW-Programmierung durchgängig lokale Variablen benutzt, hast du deren Prinzip (sowohl der Programmierung als auch der Variablen) nicht verstanden. LabVIEW arbeitet datenflussorientiert! THINK DATAFLOW!

Zitat:Was spricht gegen die Eventstruktur in einer Case?
Dagegen spricht, dass die Eventstruktur sich nicht an den Datenfluss hält. Es wird vorausgesetzt, dass ein Event jederzeit abgearbeitet werden kann! Das ist nicht der Fall, wenn eine Eventstruktur in einem Case versteckt wird...

Zitat:Das dekrementieren der Spannung soll erst erfolgen wenn die Cases davor erledigt sind und nach dem beenden gehts weiter mit anderen Cases.

Hört sich nach einer Aufgabe für eine Statemachine-Architektur an, die du ja schon verwendest. Hat das irgendwas mit dem Problem zu tun?
Seiten: 1 2
Referenz-URLs