29.08.2013, 07:01
Beitrag #1
|
finalr
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Oct 2012
2012
2011
DE
Deutschland
|
Aufruf über Referenz
Hallo,
ich hab ein kleines Problem mit dem VI "Aufruf über Referenz".
Das Szenario:
Ein Prüfablauf-VI wird mittels Aufruf über Referenz gestartet. Das klappt auch.
Nun möchte ich gerne vom aufrufenden VI über einen Cancel-Button den Prüfablauf stoppen können. Mein Problem ist jedoch, dass das aufrufende VI während der Abarbeitung des Prüfablaufs nicht gereagiert. Erst nach Ablauf des Prüfablaufs kann ich das abrufende VI wieder bedienen.
Gibt es eine Einstellung, sodass das aufrufende VI während der Abarbeitung bedienbar ist? Bzw. vielleicht hat jemandeine Idee, wie ich den Prüfablauf noch stoppen könnte.
Gruss Daniel
|
|
|
29.08.2013, 07:14
Beitrag #2
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
RE: Aufruf über Referenz
Hab hier schnell mal ein altes "Call by Reference" - Bsp. um einen Stop-Knopf erweitert.
Hoffentlich meintest Du auch "Call by Reference". Ich habe die deutsche Version nämlich nicht.
Haupt-VI.vi (Größe: 7,63 KB / Downloads: 308)
Plus.vi (Größe: 5,79 KB / Downloads: 272)
Minus.vi (Größe: 5,81 KB / Downloads: 264)
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
29.08.2013, 07:41
Beitrag #3
|
finalr
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Oct 2012
2012
2011
DE
Deutschland
|
RE: Aufruf über Referenz
Vielen Dank für deine Antwort. So ähnlich habe ich das auch gelöst.
Das Problem ist nicht das Beenden an sich, sondern das sich das Haupt-VI nicht bedienen lässt, in der Zeit, wo der Prüfablauf abläuft.
Konkrekt: Das Haupt-VI reagiert nicht auf Buttonklicks oder sonst was. Erst wenn der Prüfablauf fertig ist, dann kann ich den Button wieder drücken bzw. er reagiert wieder.
Im Prüfablauf wird über eine Sequenzstruktur mehrere Messungen abgearbeitet. Ohne While-Schleife oder sonstiges.
Gruss Daniel
|
|
|
29.08.2013, 07:58
Beitrag #4
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
RE: Aufruf über Referenz
Dann lad' mal Deine VIs hoch.
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
29.08.2013, 08:41
Beitrag #5
|
|
|
29.08.2013, 09:14
Beitrag #6
|
|
|
29.08.2013, 09:21
Beitrag #7
|
finalr
LVF-Grünschnabel
Beiträge: 12
Registriert seit: Oct 2012
2012
2011
DE
Deutschland
|
RE: Aufruf über Referenz
Hallo Marko,
der Button Exit wird im Prüfablauf via globale Variabel abgefragt. Funktioniert auch aber ich kann das Haupt_VI nicht bedienen, sobald der Prüfablauf läuft (eingefroren).
Gruss Daniel
|
|
|
29.08.2013, 09:24
(Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2013 09:25 von jg.)
Beitrag #8
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Aufruf über Referenz
So wird das nichts. "Call by Reference" ist wie ein normaler SubVI Aufruf, du bleibst solange in der Event-Struktur hängen (MERKE: Lange andauernde Prozesse gehören NICHT in die Event-Struktur), bis das VI beendet ist. Deshalb wird im Aufrufer-VI auch nichts mehr abgearbeitet.
Lösungen:
1) Der SubVI Aufruf wird parallel zur Event-Struktur in einer eigenen Schleife aufgerufen.
2) Start des VI per Invoke Node "Run VI"
3) Ab LabVIEW gibt es auch asynchrones Aufrufen von VIs: http://zone.ni.com/reference/de-XX/help/..._vi_calls/
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.
|
|
|
29.08.2013, 09:39
Beitrag #9
|
|
|
29.08.2013, 09:46
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Aufruf über Referenz
@Marko: Haken oder nicht, das nützt bei dem Aufbau nichts. Wie schon gesagt, Call by Reference ist identisch zu einem SubVI Aufruf. Die Node wartet also, bis das SubVI abgearbeitet ist. Erst dann wird die Event Struktur beendet und erst danach kann ein weiteres Event verarbeitet werden.
THINK Dataflow.
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.
|
|
|
| |