Nach Ereignisbehandlung weitere Anweisungen ausführen
|
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!
16.09.2009, 18:52
Beitrag #1
|
HansWerner
Unregistered
|
Nach Ereignisbehandlung weitere Anweisungen ausführen
Ich habe als Anfänger folgendes Problem:
Ein Signalgenerator soll über die VISA Schnittstelle angesteuert werden. Hierzu sind entsprechende VI's vorhanden.
Der Signalgenerator wird über die Ethernet Schnittstelle angesteuert. Soweit unproblematisch.
Nun sollen verschiedene Signale automatisiert bzw. iterativ erzeugt werden. Hierzu werden in mehreren ineinandergeschachtelten Schleifen verschiedene Parameter verändert.
Zwecks Übersichtlichkeit habe die einzelnen Schleifen in eine Ereignissteuerung (Ereignissteuerung 1) gepackt (Wird per Button ausgelöst) und die eigentliche Ansteuerung des Signalgenerators (Ereignissteuerung 2) in eine andere Ereignissteuerung. Sobald sich der Wert eines Parameters ändert (Ereignissteuerung 1) wird dies signalisiert und in der zweiten Ereignissteuerung (Ereignissteuerung 2) werden die entsprechenden VIs zur Ansteuerung des Signalgenerators ausgeführt.
Beide Ereignisteuerungen stecken in einer While-Schleife.
Nun soll im Anschluss an die Ansteuerung des Signalgenerators (Ereignissteuerung 2) unabhängig vom zuvor ausgeführten Ereignis-Case die Signalgenerierung getriggert werden. Anschliessend soll ein Timer entsprechend der Zeitdauer für die Signalgenerierung (Wiedergabe einer Datei) gestartet werden. Während dieser Zeit soll keine weitere Iteration ausgeführt werden, d.h. das weitere Durchlaufen der einzelnen Schleifen in der ersten Ereignissteuerung (Ereignissteuerung 1) muß angehalten werden.
Zur Prozeßsynchronisation wollte ich ein Rendevouz verwenden.
Mein momentanes Problem:
Die Ereignissteuerung 2 steckt in einer While-Schleife. Da diese nie beendet wird können auch keine weiteren (nachfolgenden) Anweisungen ausgeführt werden. Es ist also nicht möglich die While-Schleife mit der Ereignisteuerung 2 als Teil einer Sequenz zu verwenden. Ich kann auch nicht eine Sequenz in die While-Schleife packen da ich dann keine Signalleitungen herausführen kann, z.B. vom VI "Rendevouz erzeugen".
Ich hoffe jemand hat mein Problem verstanden. Wahrscheinlich ist der Ansatz schon grundlegend falsch. Wie muss ich das ganze strukturieren ? Leider habe ich bisher kein entsprechendes Beispiel gefunden. Weder in der LabVIEW Hilfe noch im Internet.
|
|
|
16.09.2009, 19:33
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Nach Ereignisbehandlung weitere Anweisungen ausführen
Verstehe ich richtig, du verwendest innerhalb eines VI's mehrere Event-Strukturen? Finger weg davon, das führt in der Regel nur zu mehr Ärger (s. deine Frage).
Vgl. hierzu auch die Hinweise von NI in der Hilfe: Da steht sinngemäß, "nicht mehr als eine Event-Struktur pro (While-) Schleife". Die Praxis sagt, nicht mehr als eine Event-Struktur pro VI.
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.
|
|
|
17.09.2009, 07:08
Beitrag #3
|
|
|
17.09.2009, 07:15
Beitrag #4
|
|
|
17.09.2009, 08:37
Beitrag #5
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Nach Ereignisbehandlung weitere Anweisungen ausführen
' schrieb:Mein momentanes Problem:
Die Ereignissteuerung 2 steckt in einer While-Schleife. Da diese nie beendet wird können auch keine weiteren (nachfolgenden) Anweisungen ausgeführt werden. Es ist also nicht möglich die While-Schleife mit der Ereignisteuerung 2 als Teil einer Sequenz zu verwenden. Ich kann auch nicht eine Sequenz in die While-Schleife packen da ich dann keine Signalleitungen herausführen kann, z.B. vom VI "Rendevouz erzeugen".
Es müßte doch ohne großen Aufwand möglich sein, genau hierzu ein einfaches Demo-VI zu machen. Wenn Du das hier postest, dann erhälst Du postwendend konkrete Löungen statt allgemein gehaltener Ratschläge..
|
|
|
| |