Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ist das ein Bug ?
30.05.2013, 01:34
Beitrag: #1
Ist das ein Bug ?
Hallo zusammen,

es ist mir jetzt schon mehrfach passiert, das ein VEE Programm einen "Sequence-Zweig" vorzeitig abbricht.
Ich habe es geschafft ein kleines (völlig sinnloses) Programm zu erstellen, das den Effekt zeigt.

Schreibt man in die IF/THEN-Abfrage "A==2" funktioniert das Programm so wie ich es erwarte.
Schreibt man "A==1" rein, wird nach der "For Count (3)" nur noch das erste Gate (Gate_immer) getriggert.

Stehe ich total am Schlauch, oder ist das wirklich ein Bug ?

Ich kann mir das nur so erklären, das der Eingang des Gates (Gate nur 2) beim Sequenz-Triggern nicht mehr gültig ist, wobei der Debugger etwas anderes sagt.
(Auszug aus VEE-Help: The data that flows into Gate is not stored; the container on the data input pin is the container output when the sequence input pin is activated.)

Habt ihr eine Idee ?

Gruß Peter

   


Angehängte Datei(en)
.vee  Vee_Bug.vee (Größe: 6,88 KB / Downloads: 2)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.05.2013, 08:54 (Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2013 11:24 von detlef.)
Beitrag: #2
RE: Ist das ein Bug ?
Eigentlich nein, der Programmflow ist falsch.
Vee arbeitet von links nach rechts, und von oben nach unten.
Deine Schleife widerspricht diesem Prinzip. Du musst rechts runter fertig sein, damit dein fORCOUNT NACH UNTEN EIN pING gibt. Die Schleife verwurschtelt.

Wenn man die Ping Anzeige mitlaufen lassen wuerde, muesstest du das sehr schoen sehen koennen.
Wenn ==2, dann ist bei 1 die Bedingung nicht erfuellt, also else, da kommt dann nix- was bedeutet, das das rechte von for count fertig ist, dann setzt die for count den Ping nach unten. Nur die zweite Anzeige bekommt kein input...

Also Schleifen richtig anwenden und keine hmm...Wurschelschleife Wink

Lass mal denProgramflow anzeigen du weisst, was ich meine ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.05.2013, 20:41
Beitrag: #3
RE: Ist das ein Bug ?
Hallo Detlef,

ich dachte eigentlich, das der "Eingang" von "Gate nur 2" beim 2ten Durchlauf der Count-Schleife (Wert: A=1) gefüllt wird.
Wenn dann die For count Schleife nach unten "pingt" könnte das Gate ja diesen Wert ja durchschalten.

Jedenfalls zeigt der Debugger beim Eingangspin von "Gate nur 2" den Wert (Hallo Welt 1) an, auch wenn die Count-Schleife schon beendet ist.

Zugegebenermaßen ist der Programmflow etwas "verwurschtet" aber nicht unlogisch.

Ich hatte das Problem zuletzt bei einem Programm, bei dem vier Werte in eine Datei geschrieben werden sollten. Diese vier Werte kamen aus verschiedenen Ebenen (verschachtelte Schleifen) des Programms.
Die vier Eingänge des toFile-Objekts wurden zwar alle nach und nach getriggert aber die Werte letztlich nicht in die Datei geschrieben.
Anscheinend läßt sich nich "Schleifenübergreifend" programmieren. Bleibt nur die Möglichkeit die Werte in Variablen zwischen zu speichern und dann "in einem Zug" rauszuschreiben.
Dumm ist nur, das der Debugger die Werte an den Eingängen noch anzeigt, und die Sequenz-Verbindungen überhaupt zugelassen werden - das verwirrt.

   

der Sequenz-Ausgang von Count 3 sollte in obigen Beispiel dann gar nicht an das Display-Objekt angehängt werden können !

Gruß Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:




Partnerforen: LabVIEWForum.de| DIAdem-Forum.de| Machine-Vision-Forum.de| goMatlab.de| VEEforum.de