LabVIEWForum.de - Schleife sofort abrechen

LabVIEWForum.de

Normale Version: Schleife sofort abrechen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
wie kann ich eine while Schleife sofort abrechen, in c geht das ja mit break wie aber mit labview.

bei mir wird die Schleife noch einmal durchgeführt und erst dann gestoppt, ich will sie aber sofort stoppen, damit der Zählerstand erhalten bleibt.
Hallo Thomas,

ein Schleifendurchlauf wird immer noch zu Ende durchgeführt, wenn die Schleife gestoppt wurde.
Dass sie nach dem Abarbeiten noch mal anfängt und erst dann stoppt kommt nicht vor.

Gruß Markus

EDIT: Break ist evtl. hier vergleichbar mit dem roten Knopf links oben. Da bin ich mir aber nicht sicher, da ich mich in C nicht wirklich auskenne.
in C gehts mit break.

Aber hast du dann eine Idee wie der Zählerstand erhalten bleibt und die Schleife von bis (Uhrzeit) laufen soll.
Hallo seitzo,

ohne dein VI zu sehen (Hatte ich schon mal erwähnt, dass das Runterkonvertieren auf LV2009 hilfreich wäre?(), vermute ich eine Datenfluss-Problem:
Dein Stopp-Button wird sofort bei Iterationsbeginn abgefragt. Wenn du ihn dan während der Iteration betätigst, wird er erst in der darauffolgenden Iteration abgefragt - und du fragst dich, warum die Schleife einmal mehr iteriert... THINK DATAFLOW!

Zitat:wie ... die Schleife von bis (Uhrzeit) laufen soll.
Hatten wir das nicht schon mal geklärt? Wieso fragst du erneut nach - ohne Verweis auf den alten Thread? Und obwohl du dort sagst "Ich habe eine Lösung gefunden", ohne diese uns mitzuteilen? Kleiner Tipp: Forenregeln lesen... Wink
Für Gerd:
[attachment=35893]

Bei Deiner Programmstruktur bin ich noch nicht so ganz durchgestiegen. Hab' gerade aber auch nicht viel Zeit.

Gruß Markus
Danke Markus für das VI.

@Thomas:
- Wieso benutzt du DBL-Controls mit Anzeige als Zeit formatiert statt direkt Timestamp-Controls zu verwenden? Das würde dir auch die ganzen Konvertierung im BD ersparen...
- Wieso stellst du die Zeit in einem String dar statt einfach einen Timestamp-Indicator zu verwenden? Du könntest dir die Konvertierung ersparen...

Bitte aufräumen und nochmal (runterkonvertiert) hier anhängen. Und erklären, was du vorhast...
wie speicher ich das als LV2009 ab?
Sorry hab leider keine Ahnung.
Hallo Thomas,

Datei-Menü: Speichern für vorherige Version... (Right in your face Smile )
(15.09.2011 07:36 )seitzo schrieb: [ -> ]bei mir wird die Schleife noch einmal durchgeführt und erst dann gestoppt,
Labview führt parallele Aufgaben bei fehlender Datenabhängigkeit in zufälliger Reihenfolge aus - so die Theorie. Praktisch erlebt man es aber anders: Erst werden z.B in einer Schleife sämtliche Bedienelemente eingelesen, dann erst wird der übrige Code, mit Sub-Vis usw. ausgeführt.
Das führt dazu, daß, wenn der Stop-Knopf gedrückt wurd, dieser schon längst gelesen ist und daß der Stop erst im nächsten Schleifendurchlauf zur Kenntnis genommen wird.
Lösung siehe rechtes Bild: Dafür sorgen, daß Stop erst zuletzt gelesen wird, wenn der übrige Code in der Schleife abgearbeitet ist. Damit wird ein weiterer Schleifendurchlauf verhindert. Es bedeuted aber nicht, daß das Programm augenblicklich beendet wird. Ich denke, das hast Du auch nicht so gemeint, obwohl Du hier irritierender Weise die Vokabel "sofort" verwendet hast.

[attachment=35895]
Salve
habs anbei als 2009


der Zähler wird nach einer einstellbaren Verzögerung hochgezählt, außer es ist eine Pause eingetragen siehe case-Strucktur.
Achtung Datum muss richtig eingegeben werden

jetzt will ich mit einer Start Stop Zeit die Schleife abrechen, aber der Zählerstand soll erhalten bleiben.
Seiten: 1 2
Referenz-URLs