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 

Ereignis in While schleife abfragen?



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!

13.11.2007, 18:24
Beitrag #1

ljminti Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Nov 2007

8.2
2007
kA


Deutschland
Ereignis in While schleife abfragen?
Ich tüftel gerade fleißig mit der Behandlung von Ereignissen in einer While-Schleife, jedoch passt irgendwie meine logik nicht.
Nun mal zu meinem Ziel.

In einer While-Schleife wird eine Variable (Ausgang eines SubVI) unregelmäßig mit folgenden werte belegt.

0, 1, 5, 7, 20

Bei jedem Schleifendurchlauf jeweils eine Zahl.
Sobald die VARIABLE den Wert 0 hat soll die While schleife beendet werden.

Aber viel wichtiger ist, zu ermitteln, nach wievielen Schleifendurchläufen das erste mal die Variable den Wert 1, 5, 7 oder 20 hat.

diese Anzahl wird dann über ein Anzeigeelement ausgegeben.

Ich habe versucht über eine Gleichheitsoperation die variable abzufragen und dann den Wert des schleifenzählers auszugeben.
Hierbei habe ich nur das problem dass beim nächsten schleifendurchlauf, wenn die Variable einen anderen wert hat als zuvor meine Anzeige überschrieben wird.

Ich habe eben für jeden Wert (1, 5, 7, 20) eine eigene anzeige.

Wie muss meine Logik aussehen damit wirklich nur beim ersten auftreten der wert des schleifenzählers angezeigt wird und danach eben nichtmehr überschrieben wird.

Ich hoffe ihr könnt nachfollziehen was ich vorhabe.

gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.11.2007, 20:59
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Ereignis in While schleife abfragen?
' schrieb:Wie muss meine Logik aussehen damit wirklich nur beim ersten auftreten der wert des schleifenzählers angezeigt wird und danach eben nichtmehr überschrieben wird.

Ich hoffe ihr könnt nachfollziehen was ich vorhabe.
Hallo,
erstmal, ja, war sehr gut nachvollziehbar. Was du aus meiner Sicht brauchst, ist eine "2. Logikebene". 2 Ideen (die aber im Prinzip identisch sind) hätte ich:

1. Du hast ja für jede "Anzahl" eine Anzeige und somit auch eine Variable. Wenn diese Anzeige jetzt vor Schleifenbeginn auf meinetwegen -1 initialisiert sind, kannst du bei jedem Durchlauf parallel überprüfen, ob die Anzeige schon größergleich Null ist, in diesem Fall darfst du deinen Anzeige nicht mehr überschreiben.
2. Oder du legst für jede Anzeige parallel eine Bool-Variable an, die anfangs auf meinetwegen FALSE initialisiert wird. Sobald die entsprechende Zahl zum ersten Mal auftaucht, wird diese Boolean auf TRUE gesetzt und du hast nun einen Merker, diese Anzeige nicht mehr neu zu beschreiben.

Nachdem ein Bild bzw. VI mehr sagt als tausend Worte, hier noch für Variante 2 ein Screenshot:

   

MfG, 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
15.11.2007, 21:05
Beitrag #3

ljminti Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Nov 2007

8.2
2007
kA


Deutschland
Ereignis in While schleife abfragen?
Hallo Jens,

das mit der CASE Struktur ist mir jetzt schon klar.
Allerdings weis ich gerade nicht wie ich in der while-Schleife mehr als eine abfrage gestallte?

also für die einzelnen Zahlen.

und was ist das rechts von der -1, dieses NUMERIC 2?

Weiterhin habe ich in meiner Case-Struktur ein weißes Quadrat als Tunnel.

Kannst du mir noch erklären woher die einzelnen CASE-Strukturen für die einzelnen Zahlen wissen, wieso gerade die -1 als initialisierung für eine bestimmte struktur gelten?

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.11.2007, 22:34
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Ereignis in While schleife abfragen?
Ich hab vergessen, einen Screen-Shot vom TRUE-Case zu machen:

   

Jetzt klarer? In der Variablen Numeric 2 steht in meinem Bsp also der Index, wenn zum ersten Mal eine Zufallszahl > 0.8 aufgetreten ist. Variable Numeric zeigt die Anzahl der Schleifendurchläufe an, bis zum ersten Mal ein Wert < 0.1 aufgetreten ist.

Um klar zu erkennen, ob überhaupt eine Zahl > 0.8 aufgetreten ist, initialisiere ich den Indicator "Numeric 2" über eine lokale Variable (Rechtsklick auf Indicator im BD->Create->Local Variable) auf den Wert -1.

MfG, 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
15.11.2007, 23:08
Beitrag #5

ljminti Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Nov 2007

8.2
2007
kA


Deutschland
Ereignis in While schleife abfragen?
so habe jetzt meine Struktur aufgebaut.

Jedoch habe ich beim boolschen Ausgangstunnel immernoch ein weißes Quadrat.
Wieso ist dieses Bei dir Grün?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.11.2007, 00:08
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Ereignis in While schleife abfragen?
' schrieb:Jedoch habe ich beim boolschen Ausgangstunnel immernoch ein weißes Quadrat.
z.B.: Weil in einem Case der Anschluss fehlt. Entweder du machst eine Konstante hin oder du verwendest die Eigenschaft "Standard verwenden). Im Falle eines "großen weißen Quadrates" sollte ein Fehler vorliegen.

Im Falle eines "kleinen weißen Quadrates" liegt die Eigenschaft "Standard verwenden" vor und kein Fehler.

Es gäbe auch den Fall, dass du ein weißes Quadrat über einem grünen liegen hast. Das kommt dann, wenn du mit der Maus beim Verbinden nicht genau das Viereck triffst, sondern den Rahmen nebendran.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.11.2007, 08:31
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Ereignis in While schleife abfragen?
Hallo,

wenn du beide Cases "ausgefüllt" hast, sollte eigentlich alles gehen.

Ansonsten ist der Erklärung von "IchSelbst" nichts hinzuzufügen, außer vielleicht zu besseren Erhellung noch ein Screenshot:

   

Oben: "großes weißes Quadrat"
Unten: "kleines weißes Quadrat"

MfG, 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
16.11.2007, 09:44 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2007 13:57 von jg.)
Beitrag #8

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Ereignis in While schleife abfragen?
' schrieb:In einer While-Schleife wird eine Variable (Ausgang eines SubVI) unregelmäßig mit folgenden werte belegt.
0, 1, 5, 7, 20
Bei jedem Schleifendurchlauf jeweils eine Zahl.
Sobald die VARIABLE den Wert 0 hat soll die While schleife beendet werden.
Aber viel wichtiger ist, zu ermitteln, nach wievielen Schleifendurchläufen das erste mal die Variable den Wert 1, 5, 7 oder 20 hat.

Das Ganze macht - wenn überhaupt - nur Sinn, wenn das Sub-Vi auch andere Zahlen als die genannten erzeugt. Ich habe mich mal dafür entschieden, daß das Sub-VI Zufallszahlen im Bereich 0..49 erzeugt und daß das Haupt-VI zwei Anzeigen haben soll:
erste Anzeige: Anzahl Durchläufe bis um ersten Vorkommen von 1,5,7,20
zweite Anzeige: Anzahl Durchläufe bis Stop (Vorkommen von 0)
Wenn die Null vor der 1,5,7,20 erscheint, dann zeigt die erste Anzeige -1 an.
Es ist im Prinzip ein State-machine mit zwei Zuständen:
False-State: Vor dem ersten Vorkommen von 1,5,7,20
True-State: danach

(VI LV 8.2)


Angehängte Datei(en)
Sonstige .vi  nonsens.vi (Größe: 11,16 KB / Downloads: 244)
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
Wink Benutzerdefinirtes Ereignis mit Arduino jennylena 1 3.286 15.02.2018 09:53
Letzter Beitrag: IchSelbst
  Ereignis Struktur 911tom 9 6.950 20.12.2017 20:57
Letzter Beitrag: GerdW
  Ereignis "Wertänderung" verzögern aw 3 4.902 11.08.2016 16:08
Letzter Beitrag: Trinitatis
  Messwerte Protokollieren für ein Ereignis ghost79fi 1 3.338 07.07.2014 08:13
Letzter Beitrag: GerdW
  Ereignis im Blockdiagramm auslösen samuel 7 7.717 22.10.2013 07:15
Letzter Beitrag: GerdW
  Messwerte bei Ereignis in Array schreiben js89 14 11.526 18.08.2013 15:57
Letzter Beitrag: Trinitatis

Gehe zu: