INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

While Loop mit Value Signaling beenden



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!

02.05.2012, 15:35
Beitrag #1

Idlewild Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Feb 2012

11.0.1
-
EN


Deutschland
While Loop mit Value Signaling beenden
Hallo,

ich möchte eine While Schleife mit Hilfe der Property Node Val.(Signal) beenden. Es soll also, wie auf dem Screenshot zu sehen, bei einem bestimmten Wert ein Dialog Fenster erscheinen mit nur einer Wahlmöglichkeit. Beim drücken des "Beenden" Buttons auf dem Dialog Fenster soll das Programm abbrechen.

Nun meine Frage, warum geht das nicht? liegt es einfach daran das der "stop" button ein boolean ist?

Danke und mit freundlichen Grüßen

Idlewild


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  Value Signaling.vi (Größe: 9,14 KB / Downloads: 132)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.05.2012, 15:37 (Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2012 15:39 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.426
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: While Loop mit Value Signaling beenden
Hallo idlewild,

THINK DATAFLOW!

- Die FOR-Loop wird erst nach Ablauf aller 25 Iterationen beendet...
- Der Stop-Knopf wird parallel dazu abgefragt - wahrscheinlich bevor du ihn setzt. Deshalb gibt es einen weiteren Durchlauf der Whileloop...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2012, 16:26
Beitrag #3

Idlewild Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Feb 2012

11.0.1
-
EN


Deutschland
RE: While Loop mit Value Signaling beenden
Hallo,

Vielen dank für die schnelle Antwort! War auf jeden Fall ein Anstoss nochmal drüber nachzudenken Wink

So wie ich es jetzt gemacht habe, funktioniert es zumindest so wie ich es mir vorgestellt habe, aber ist es auch "vernünftig" programmiert?

Danke und Grüße


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2012, 16:37 (Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2012 16:37 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: While Loop mit Value Signaling beenden
Nein, so wird es noch nicht so richtig funktionieren.

1) Da LabVIEW alles, was parallel abgearbeitet werden kann, auch parallel abarbeitet, ist der Wert des Stop-Buttons in der Regel schon direkt am Start der Schleife ausgelesen. Mit hoher Wahrscheinlichkeit hast du immer 2 Durchläufe deiner While-Schleife. Zum Beweis, schließ einfach einmal einen Indikator am Index der While-Schleife an.
2) Mit Value(Signaling) verwendest du eigentlich die falsche Property Node. In diesem Fall langt auch Value. Die Signaling-PropertyNode ist dafür gedacht, ein Event in einer Event-Struktur auszulösen, so als ob interaktiv der Button bedient wurde.
3) Du kannst die For-Schleife auch vorzeitig abbrechen, einfach mal Rechtsklick auf den Rand -> "Conditional Terminal". Aktuell gibst du nur den Vergleich des letzten Durchlaufs weiter.

Wie Gerd schon gesagt hat, THINK DATAFLOW.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.05.2012, 17:59
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: While Loop mit Value Signaling beenden
(02.05.2012 16:26 )Idlewild schrieb:  So wie ich es jetzt gemacht habe, funktioniert es zumindest so wie ich es mir vorgestellt habe, aber ist es auch "vernünftig" programmiert?
Die "unvernünftige Programmierung" beginnt schon in der ersten For-Schleife. Von den 100 Durchläufen sind die ersten 99 für die Katz, die Ergebnisse werden überhaupt nicht verwendet. Für den boolschen Ausgang zählt nur das Ergebnis des letzten Durchlaufes.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2012, 07:23 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2012 07:26 von Andora.)
Beitrag #6

Andora Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 124
Registriert seit: Jul 2008

2009
2001
de

81539
Deutschland
RE: While Loop mit Value Signaling beenden
(02.05.2012 15:35 )Idlewild schrieb:  Hallo,

ich möchte eine While Schleife mit Hilfe der Property Node Val.(Signal) beenden. Es soll also, wie auf dem Screenshot zu sehen, bei einem bestimmten Wert ein Dialog Fenster erscheinen mit nur einer Wahlmöglichkeit. Beim drücken des "Beenden" Buttons auf dem Dialog Fenster soll das Programm abbrechen.

Nun meine Frage, warum geht das nicht? liegt es einfach daran das der "stop" button ein boolean ist?

Danke und mit freundlichen Grüßen

Idlewild

Hallo,
du könntest dir mit Sequenzen helfen wie weiter unten :

    oder    

obwohl dadurch wird die Möglichkeit der manuellen Funktionalität des Schalters außer Kraft gesetzt. Ein Argument muss du aber haben.

Gruß,
Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.05.2012, 08:27
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.426
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: While Loop mit Value Signaling beenden
Hallo,

wenn wir schon Vorschläge machen, will ich mich beteiligen:
   
Ganz ohne verschachtelte Schleife, ohne Sequenzen, ohne lokale Variablen oder PropertyNodes...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2012, 08:33
Beitrag #8

Andora Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 124
Registriert seit: Jul 2008

2009
2001
de

81539
Deutschland
RE: While Loop mit Value Signaling beenden
(03.05.2012 08:27 )GerdW schrieb:  Hallo,

wenn wir schon Vorschläge machen, will ich mich beteiligen:

Ganz ohne verschachtelte Schleife, ohne Sequenzen, ohne lokale Variablen oder PropertyNodes...

das wäre die saubere Variante, ich habe den Schalter in Prinzip als überflüssig gesehen.

Gruß,
Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2012, 09:36 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2012 09:39 von Idlewild.)
Beitrag #9

Idlewild Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Feb 2012

11.0.1
-
EN


Deutschland
RE: While Loop mit Value Signaling beenden
Guten Morgen,

@jg: Die while Schleife wurde tatsächlich zweimal durchlaufen, bei der jetzigen Version wird sie sogar viermal durchlaufen. Ist nicht so toll. Das Value(Signaling) brauche ich tatsächlich für eine Event Struktur. Bei dem ganzen Programm ist eine Event Struktur in einer while Schleife, und bei bestimmten Ereignissen (Wete zu klein) soll die while Schleife beendet werden. Cool das mit dem Conditional Terminal wusste ich nicht, das ist schonmal hilfreich. Vielen dank!

@Lucki: habe ich mir auch nochmal genauer angeschaut, mit dem Hinweis von jg habe ich das behoben glaube ich

@Andora: die Möglichkeit des manuellen beenden des Programms soll weiter vorhanden sein, aber habe es jetzt auch nochmal mit Sequenzen ausprobiert

@gerdw: leider bin ich auf die property nodes angewiesen

Vielen dank euch!

Bei der jetzigen Version funktioniert die For Schleife dank dem Conditional Terminal so wie ich mir das vorgestellt habe. Es wird auch bei Abbruch ein "true" in den zweiten Frame der Sequenz übergeben. Aber warum wird beim drücken des "beenden" buttons im erscheinenden Dialog Fenster "ignoriert". Und im Gegensatz dazu kann ich im dritten Frame der Sequenz das Programm weiter laufen lassen bzw. sogar beenden, und zwar auch mit Value(Signaling). Und warum wird die while Schleife mehrmals durchlaufen Sad

Edit: die "not"s sollten da nicht mehr sein

[/php][/quote]


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  Value Signaling.vi (Größe: 15,64 KB / Downloads: 129)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.05.2012, 09:42
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.426
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: While Loop mit Value Signaling beenden
Hallo idlewild,

THINK DATAFLOW!

- Dein Stop-Event wird erst nach Abarbeiten des Start-Events abgearbeitet - DATAFLOW!
- Grundregel für Events: Ein Event sollte immer so schnell wie möglich abgearbeitet werden, lang laufende Schleifen im Eventcase vermeiden...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Parallel Port Read and Write Loop.vi rothhp 2 3.746 16.12.2015 16:08
Letzter Beitrag: rothhp
  While-loop Margi 2 2.900 21.09.2015 12:49
Letzter Beitrag: TDO
  For und While Loop katana 2 3.791 29.07.2015 11:14
Letzter Beitrag: Trinitatis
  Property value(signaling) für digital "latch when released" gottfried 2 3.884 27.03.2015 12:14
Letzter Beitrag: gottfried
  While Loop Case überspringen PaulC 13 11.289 07.01.2015 15:13
Letzter Beitrag: GerdW
  Timing simulation and control loop I2thavo 0 3.334 23.07.2014 19:49
Letzter Beitrag: I2thavo

Gehe zu: