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 

andere VIs als Prozesse in einer Schleife starten



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!

05.08.2011, 09:23 (Dieser Beitrag wurde zuletzt bearbeitet: 05.08.2011 09:24 von ceos.)
Beitrag #1

ceos Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2011

2010
2011
DE_EN



andere VIs als Prozesse in einer Schleife starten
Ich hab ehier ein Problem, ich habe 2 "Treiber"-Klassen gebaut, die je eine Run-VI haben, nun kann es dazu kommen, dass im Programmablauf unerwartet ein externes Kommunikationsproblem auftritt und diese VIs neu gestartet werden müssen. Also hab ich mir gedacht, legst du den Start der VIs in deine Event-Schleife ... blöd nur dass die Eventschleife jetzt einfach das Event solange nicht verlässt, bis tatsächlich auch das Run-VI beendet ist! Wie kann ich das umgehen?

Die Idee innerhalb der Run-VIs das Reset durchzuführen hatte ich auch schon, aber bei einer "unglücklichen" Terminierung des Haupt-VI würde das mit einer hohen Wahrscheinlichkeit zum Freeze der Anwendung führen.

Daher hätte ich es schon gern innerhalb des Events gestartet um im Notfall auch das VI abschießen zu können!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.08.2011, 13:58
Beitrag #2

NWOmason Offline
Simultator
*****


Beiträge: 1.078
Registriert seit: Dec 2010

2012.SP1
2008
EN

93047
Deutschland
RE: andere VIs als Prozesse in einer Schleife starten
(05.08.2011 09:23 )ceos schrieb:  ... blöd nur dass die Eventschleife jetzt einfach das Event solange nicht verlässt, bis tatsächlich auch das Run-VI beendet ist! Wie kann ich das umgehen?

Wie startest du denn dein RunVi? Wenn du es mittels VI Server startest, dann kannst da am 'Waituntildone'-Anschluss festlegen, dass nicht gewartet werden soll, bis das VI beendet ist:

   

Sonst lade doch mal dein VI hoch, oder ein Beispiel, damit man sich das ganze besser vorstellen kann.

Beste Grüße,
NWO

9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris
.

NI schrieb:To use the abort button is like using a tree to stop a car!

(20.01.2012 11:02 )NWOmason schrieb:  Getting Started with NI LabVIEW Student Training
http://zone.ni.com/devzone/cda/tut/p/id/7466

Introduction to NI LabVIEW - Learn LabVIEW Basics
http://www.ni.com/gettingstarted/labviewbasics/

Top 5 der Empfehlungen für LabVIEW-Einsteiger
http://www.ni.com/newsletter/51735/de/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.08.2011, 16:59
Beitrag #3

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: andere VIs als Prozesse in einer Schleife starten
Eine zweite Möglichkiet ist, daß vom Event aus über Melder, Queues oder globale Variable mit dem VI kommuniziert wird. Damit kann man es starten und anhalten.
Damit das klar wird, mal ein Beipiel:
Das Sub-Vi sei z.b. eine Statemachine mit den Zuständen "Idle", "Active" und "Exit"
Es wird bei Start des Haupt-VI mit gestartet, befindet sich aber zunächst im Zustand "Idle". Vom Haupt-VI läßtes es sich dann über Melder beliebig oft zwischen "active" und "idle" umschalten. Bei Beenden des HauptVI sollte das SubVI in den Status "Exit" versetzt werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.08.2011, 09:42 (Dieser Beitrag wurde zuletzt bearbeitet: 12.08.2011 09:06 von ceos.)
Beitrag #4

ceos Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Apr 2011

2010
2011
DE_EN



RE: andere VIs als Prozesse in einer Schleife starten
über Server kann cih es nur bedingt starten.

EDIT: Beispiel entfernt. Ich versuch einfach noch ein paar Tutorials anzuwenden da hab ich wahrscheinlich mehr Erfolg.

Ich komm aus der Ecke Informatik und tu mich ehrlich gesagt noch sehr schwer in Labview zu denken, weshalb ich einen etwas anderen Blickwinkel habe, also nich wundern falls mein Beispiel merkwürdig aussieht!

Ich verwende darin einen paramtergesteuerten Prozess, also keine Statemachine.

So wie ich die Queue dort verwendet habe dient sie mir zum einen als Thread-Lock und zum anderen als Referenz oder "quasi"-this-Pointer. Grund hierbei ist ein Ansatz für eine generische Klasse, über die ich für verschiedene Geräte, die verwendet werden, die gleiche API bereitstellen will, also von ihr ableite und dann die Gerätespezifischen Befehle umsetze.

MfG

Danke für die Anregungen bisher ^^

Die Idee den Prozess gleich komplett als Statemachine laufen zu lassen ist garnicht sooo verkehrt und ähnelt vom Konzept ja meiner parametergesteuerten Threadschleife. Ich versuch mal das Beispiel drauf umzustellen.
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
  Drei Queues in einer While-Schleife mit case-Struktur EinVolvic 12 11.413 17.05.2017 20:25
Letzter Beitrag: EinVolvic
  Datei über Drag & Drop in andere Anwendung (kein LabVIEW) verschieben ahebauer 2 3.108 29.03.2017 08:41
Letzter Beitrag: ahebauer
  Probleme seit einfügen einer For-Schleife JUON 7 5.270 14.02.2017 18:01
Letzter Beitrag: TR61
  Rechenzeit einer Schleife pro runde bekommen aidinnikoo 1 3.361 30.11.2016 13:53
Letzter Beitrag: GerdW
  Dauer einer Schleife berechnen Marius89 3 5.761 31.10.2016 09:24
Letzter Beitrag: jg
  Ansteuern einer Case Struktur mit for-Schleife berlinfatih 10 8.633 22.04.2016 05:25
Letzter Beitrag: berlinfatih

Gehe zu: