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 

Dieses Thema hat akzeptierte Lösungen:

Button reagiert nur beim ersten Aufrufen der SubVI



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!

11.10.2012, 16:09
Beitrag #1

c_Kay Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Oct 2012

2009
2012
EN



Button reagiert nur beim ersten Aufrufen der SubVI
Ich habe die Steuerung eines unserer Messplatzes von GPIB-Kommunikation auf serielle Kommunikation über VISA umgebaut, da die GBIB-Schnittstelle in einem der Messgeräte nicht mehr funktioniert. Dabei wollte ich einen Fehler bezüglich der Stopp-Funktion im Programm beheben und bin gescheitert. Hoffentlich könnt ihr mir da helfen.

Die Messung läuft in 2 While-Schleifen ab: Erste Schleife: Gehe zum nächsten Messwert; 2 Schleife: Fahre die Geräte und nimm die Messwerte auf.
Als Abbruchbedingung ist jeweils die Beendigung der Aufgabe drin und zusätzlich über ein "OR" eine angeschlossene Stopp-Funktion.

Die Stopp-Funktion ist eine Event-Strukture in einer While-Schleife. Die Event-Strukture wird ausgelöst beim Drücken des Stopp-Knopfes oder wenn die Messung komplett fertig ist (die anderen Schleifen durchgelaufen sind) und verhindert dann jeweils weitere Schleifen-Durchgänge der beiden Messschleifen und der Stopp-Funktionsschleife.

An sich wohl eine der eleganteren Wege das Programm zu beenden, wie ich finde, doch funktioniert der Stopp-Knopf leider nur ein mal. Hat man die Messung (und damit die VI) mit Hilfe des Stopp-Knopfs beendet, so kann man den Knopf bei einem erneuten Aufruf der SubVI nicht mehr drücken. Da die zweite Messung an sich aber regulär durchläuft, kann es wohl nicht an nicht zurück gesetzten Variablen liegen (da sonst die Schleifen ja direkt nach dem ersten Durchlauf beendet werden würden).

Der Schalter ist auf "Latch beim Loslassen" (Latch when released) eingestellt, falls das wichtig ist.

Das ganze läuft noch unter Lv85_img Blush

An bei noch einmal ein Bild der Stopp-Button-Programmierung. "Stopp" ist der eigentliche Button, "Stop_Acquisition" wird zu Beginn der VI auf False gesetzt.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2012, 17:15
Beitrag #2

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
RE: Button reagiert nur beim ersten Aufrufen der SubVI
Hallo c_Kay,

(11.10.2012 16:09 )c_Kay schrieb:  An bei noch einmal ein Bild der Stopp-Button-Programmierung. "Stopp" ist der eigentliche Button, "Stop_Acquisition" wird zu Beginn der VI auf False gesetzt.

Das was Du als Bild geposted hast funktioniert nicht?
Hast Du mal im Highlight Modus nachvollzogen was da passiert? Oder mal die ein oder andere Sonde plaziert um die Zustände während der Ausführung zu überprüfen?

Mein Beispiel tut im Prinzip das was Du sagst, nur bei Dir ist laut Screenshot noch mindestens ein Ereignes mehr definiert.

8.5 .vi  stop_program.vi (Größe: 12,78 KB / Downloads: 210)


Grüße
Andreas

Geht nicht, gibts nicht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.10.2012, 18:07
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Button reagiert nur beim ersten Aufrufen der SubVI
Leider zu wenig Infos, um dir zu helfen.
Wie Andreas schon sagt, dein Screenshot sollte für sich alleine funktionieren.

Hast du vielleicht 2 Event-Strukturen verbaut (zwecks deiner 2 Schleifen), die auf dieselben Events reagieren sollen ?

Welchen Button hast du da noch in der Event-Struktur ?

Am besten lädst du mal dein ganzes VI hoch.

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2012, 07:59 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2012 08:13 von Lucki.)
Beitrag #4

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: Button reagiert nur beim ersten Aufrufen der SubVI
Meine Diagnose unter der "Nebenbedingung unvollständiger Information": Die abgebildete Schleife mit Ereignisstruktur läuft parallel zum restlichen Programm - so ist es OK. Aber: Bei Ausführung des abgebildeten Ereigniscases wird die Schleife verlassen - und zwar unwiderruflich. Das Hauptprogramm mit einer oder mehreren anderen Schleifen läuft unbeeindruckt weiter. Die Ereignisstruktur wird aber nie mehr bedient.
Zum Testen, ob eine bestimmte Stelle im Programm angefahren wird oder nicht, verwende ich gern den Signalton. Platziere ihn einfach mal in das Ereignis. Du wirst sehen: es macht nur einmal Pieps und dann nie wieder.
Es ist leider recht häufig, dass die Ereignsstruktur mit einem Interrupt gleichgesetzt wird. Bei einem Interrupt beibt alles Stehen und Liegen, was gerade in Arbeit ist, der Interrupt hat Vorrang.
Bei einem Ereignis wird zwar auch ein solcher Interrupt ausgeführt, aber der registriert zunächst nur das Ereignis und stellt es in eine Queue. Die Behandlung erfolg erst dann, wenn die Ereignsistruktur im Programm ganz normal turnusmäßig dran ist. Wenn das nie da Fall ist, gibt es auch keine Ereignisbehandlung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2012, 08:56
Beitrag #5

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
RE: Button reagiert nur beim ersten Aufrufen der SubVI
Offtopic2

(12.10.2012 07:59 )Lucki schrieb:  Zum Testen, ob eine bestimmte Stelle im Programm angefahren wird oder nicht, verwende ich gern den Signalton. Platziere ihn einfach mal in das Ereignis. Du wirst sehen: es macht nur einmal Pieps und dann nie wieder.
Das ist eine prima Idee. Da bin ich bislang noch nicht drauf gekommen. Werde ich bei Gelegenheit mal einsetzen.

Grüße
Andreas

Geht nicht, gibts nicht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2012, 11:23
Beitrag #6

c_Kay Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Oct 2012

2009
2012
EN



RE: Button reagiert nur beim ersten Aufrufen der SubVI
Danke für die vielen Antworten. Die VI ist leider relativ groß und unübersichtlich, deswegen wollte ich sie euch ersparen. Werde gleich mal eine Art Beispiel programmieren, das zeigt wie es aufgebaut ist.

Das was im Bild gepostet ist funktioniert, nur leider nur einmal.

Das mit dem Ton ist echt ein guter Punkt, werde ich ausprobieren. Ich denke nur das die SubVI beendet wird und das, wenn ich sie wieder neu Aufrufe auch alle Schleifen & Eventstruktures Zwangsweise neu geladen werden. Ich teste das gleich mal mit dem Ton. Wenn die Schleife an dem Punkt gar nicht mehr läuft, ist der Punkt geklärt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.10.2012, 12:35 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2012 13:16 von A.Berndsen.)
Beitrag #7

A.Berndsen Offline
LVF-Team
LVF-Team

Beiträge: 2.437
Registriert seit: Feb 2005

8.2.1 - 2011
2004
DE

724xx
Deutschland
RE: Button reagiert nur beim ersten Aufrufen der SubVI
(12.10.2012 11:23 )c_Kay schrieb:  ... auch alle Schleifen & Eventstruktures Zwangsweise neu geladen werden.

Verwendest Du mehrer Eventstrukturen in Deinem Programm?
Da könnte der Hund begraben sein.

Grüße
Andreas


PS: Hatte eben in das Beispiel oben die Funktion mit dem Signalton eingebaut. Das sorgte dann in ein paar Iterationen für Heiterkeit kurz vor dem Wochenende. Das wollte ich Euch nicht vorenthalten. Big Grin

8.5 .vi  stop_program.vi (Größe: 19,7 KB / Downloads: 206)

Geht nicht, gibts nicht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2012, 14:16
Beitrag #8

c_Kay Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Oct 2012

2009
2012
EN



RE: Button reagiert nur beim ersten Aufrufen der SubVI
So.. es ist Definitv nur eine Eventstrukture im Programm. Die andere Bedingung der Event-Strukture wird beim Ende der Messung geändert und funktioniert beendet die Schleife auch. Nur beim nächsten starten der VI, läuft die Schleife wohl nicht mehr. Werden beim erneuten Starten einer VI nicht automatisch alle Schleifen wieder aufgerufen? Soweit ich es verstanden haben müsste beim erneuten Starten der VI auch die Schleife und damit auch die Eventstrukture wieder geladen werden...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.10.2012, 15:40 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2012 15:43 von c_Kay.)
Beitrag #9

c_Kay Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Oct 2012

2009
2012
EN



RE: Button reagiert nur beim ersten Aufrufen der SubVI

Akzeptierte Lösung

Okay, ich hab das Problem gelöst, in dem ich die Eventstrukture ausgebaut und den Stopp-button direkt verkabelt habe. Da der aktuelle Schleifendurchlauf sowieso zum Ende laufen soll, ist das ganze also egal und die Übersichtlichkeit wird eher besser.

Mein Lernerfolg daraus: Kontrolliert ob Ihr wirklich die Eventstrukture braucht.
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
  [split] Button reagiert nicht mehr samba 13 5.800 19.04.2021 09:30
Letzter Beitrag: samba
  Start-/Stopp-Funktion beim Aufrufen eines VIs lipster 3 4.779 17.01.2017 10:05
Letzter Beitrag: lipster
  Durch Schließen des SubVIs reagiert das Haupt VI nicht mehr?! C.Maier 2 3.536 07.10.2016 07:52
Letzter Beitrag: Lucki
  Referenzen in Variable speichern und in SubVI aufrufen Hasenfuss 16 11.653 30.04.2015 08:09
Letzter Beitrag: Hasenfuss
  Blockdiagramm reagiert nicht auf Frontpanel Rostra 21 12.186 07.11.2013 15:01
Letzter Beitrag: Achim
  SubVI Funktionen verwenden, ohne SubVI Frontpanel (AVT Kamera) Allyoucaneat 3 8.113 25.08.2011 15:18
Letzter Beitrag: GerdW

Gehe zu: