Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
parallele Threads/Pfade am Sequence Pin zusammenführen
25.06.2010, 07:59 (Dieser Beitrag wurde zuletzt bearbeitet: 25.06.2010 08:07 von Marc1897.)
Beitrag: #1
parallele Threads/Pfade am Sequence Pin zusammenführen
Hallo!

Ich habe heute das Übungsbuch von Meilhaus in die Hände bekommen (ist für den Einstieg gar nicht mal so schlecht)

Ein Beispiel verstehe ich aber nicht. Ihr könnt mir da sicherlich weiterhelfen Smile

Es geht um parallele Threads, die mit Gates verknüpft werden.
Im Bild unten soll "Start Engine" erst ausgeführt werden, wenn alle 4 Threads abgearbeitet sind.

   

Angenommen "Activate Batteries" und "Guidance On" sind aber schneller fertig als die anderen 2, dann wird trotzdem schon weitergemacht.
(siehe zweites Bild)

   

Jemand eine Ahnung wie man es richtig macht? Ich schicke die Lösung dann auch an Meilhaus Smile

Eigentlich braucht man ja nur ein "AND"-Objekt für Sequenzsignale... Gibt es sowas in VEE?


Gruß
Marc
Mir ist gerade eine (etwas umständliche) Lösung eingefallen Smile

Jeder Thread/Pfad setzt eine Variable auf 1, wenn er fertig ist
und vor "Start Engine" wird jede Variable mit if/then/else auf 1 geprüft.

Geht das auch einfacher?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.06.2010, 12:51 (Dieser Beitrag wurde zuletzt bearbeitet: 27.06.2010 13:05 von detlef.)
Beitrag: #2
RE: parallele Threads/Pfade am Sequence Pin zusammenführen
Im Prinzip geht es so:



   



Die Pings sind ja "binaerlos", ich muesste aber mal checken, ob sich das nicht in Vee9x geaendert hat. Dieses Beispiel hier ist in Vee8.5 getestet.

Immer mal den programflow mit den Execution flow und den Data flow checken ( ich hoffe, du weisst, was ich meine ;-) )

Ausserdem sind deine 2 Beispiele nicht identisch, du muesstest deine Waits selbst in einem Object kapseln, um korrekt zu sein...
Vielleicht ist es so noch ein wenig einfacher, Input ist boolean True:




   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.06.2010, 08:46
Beitrag: #3
RE: parallele Threads/Pfade am Sequence Pin zusammenführen
Vielen Dank!

Dachte mir schon fast, dass man es so machen muss (siehe Edit von meinem Beitrag)

Ich nehme mal an, dass du mit binärlose Pings meinst, dass man das Delay nicht direkt mit dem If/Then/Else verbinden kann - geht auch in der Version 9.2 nicht.

Execution flow und Data flow sagt mir was ;-)
Habe mich nur schon einmal gewundert, dass er für eine Schleife, die nur wenige Sekunden dauern sollte, fast eine Minute gebraucht hat.
Also immer schön den Flow ausschalten, wenn es um Zeitmessung geht ;-)


Die 2 Beispiele sind im Prinzip doch identisch. Die Waits laufen genauso wie Threads parallel. Wenn ich die Waits in User-Objekte (meintest du das?) packe, werden sie ja nacheinander ausgeführt. Oder hast du Thread-Objekte gemeint, dann wüsste ich aber nicht was das für einen Unterschied machen würde.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.06.2010, 10:50 (Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2010 10:50 von detlef.)
Beitrag: #4
RE: parallele Threads/Pfade am Sequence Pin zusammenführen
Hast schon recht. Ich werde das mal mit Vee9.2 checken und dann genauer erklaeren, was ich meinte...
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