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:

Beenden eines SUBVI ohne Abbruch des MainVI's



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!

03.07.2012, 08:46 (Dieser Beitrag wurde zuletzt bearbeitet: 03.07.2012 08:53 von jg.)
Beitrag #1

knutknorrsen Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jun 2012

LabVIEW Version 11.0
2012
EN


Deutschland
Beenden eines SUBVI ohne Abbruch des MainVI's
Hallo,

ich bin zur Zeit mit der Programmierung eines Teststandes vertraut.
Dabei ist es grundsätzlich so, dass ich mit Hilfe eines Linearmotors einen Zylinder positionieren muss, um dessen Hubvolumen zu nutzen (Druckmessungen mit vordefiniertem Volumen).

Ich steuere den Linearmotor mit Hilfe eines LabVIEW Programmes an. Dieses verwende ich als Sub VI in meinem Haupt Programm.
Da das vorgefertigte LV-VI des Linearmotors nach dem Producer/Consumer Prinzip abläuft habe ich folgendes Problem:

Bis zu dem SubVI funktioniert alles, doch dann verfängt sich das ganze in der SubVI-Schleife (Der Servocontroller muss ja kontinuierlich abgefragt werden).
Kann man ein SubVI ausschalten, ohne das MainVI auch zu beenden?

Anbei die beiden VI's

Ich verwende: lv11_img

   

Ich bin ob eurer Hilfe dankbar und lauere hier auf Antwort!


Grüße

Knut


Angehängte Datei(en)
11.0 .vi  MainVI.vi (Größe: 564,14 KB / Downloads: 238)

11.0 .vi  LinRS_Functionblock_for_LinMot.vi (Größe: 90,84 KB / Downloads: 215)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.07.2012, 08:55
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Beenden eines SUBVI ohne Abbruch des MainVI's
Offtopic2
Bitte in Zukunft alle Anhänge hier im Forum hochladen, auch die Screenshots (vgl. LVF-Regeln )

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
03.07.2012, 08:57 (Dieser Beitrag wurde zuletzt bearbeitet: 03.07.2012 08:59 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Beenden eines SUBVI ohne Abbruch des MainVI's
Hallo Knut,

Zitat:Kann man ein SubVI ausschalten, ohne das MainVI auch zu beenden?
Nein, das geht nicht.
Aber du kannst das subVI beenden, um zum mainVI zurückzukehren...

- Dieses subVI ist außerdem nicht als solches gedacht. Es hat seine eigene (aktiv verwaltete) Bedienoberfläche, die man auch anzeigen muss. Außerdem scheint es schon etwas älteren Datums zu sein und könnte etwas Überarbeitung vertragen...
- Den Wert des StopButtons zum Zeitpunkt des Aufrufs des subVI zu übergeben, dürfte wohl auch nicht ganz der eigentlichen Aufgabe entsprechen. Dann könnte man nämlich gleich eine Case-Struktur um das subVI herum legen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2012, 09:07
Beitrag #4

knutknorrsen Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jun 2012

LabVIEW Version 11.0
2012
EN


Deutschland
RE: Beenden eines SUBVI ohne Abbruch des MainVI's
Ich danke zunächst für die schnelle Antwort. Smile


Zitat:Aber du kannst das subVI beenden, um zum mainVI zurückzukehren


Das würde mir ja schon reichen!

Ich muss bei der Initialisierung erst nur einen Wert anfahren. Danach kann das subvi ja ruhig beendet werden!
An der "Home"-Position verweilt mein Motor ja dann erst. Wird dann der Positionierungs-Knopf gedrückt, soll der Motor mit eingeschaltetem Magnet verfahren. Die SubVIs brauch ich ja nur, wenn ich auch wirklich einen Knopf drücke.

Oder ist es so, dass diese VIs die ganze Zeit im Hintergrund laufen und dann, wenn ich sie beende nicht mehr funktionieren danach?
Zitat:Den Wert des StopButtons zum Zeitpunkt des Aufrufs des subVI zu übergeben, dürfte wohl auch nicht ganz der eigentlichen Aufgabe entsprechen. Dann könnte man nämlich gleich eine Case-Struktur um das subVI herum legen...

Könnte man, nur dachte ich, dass ich einfach den Stop Button verwende, wenn er denn schon in meinem "SubVI" verwendet wird. Da werde ich noch ein bisschen weiter arbeiten! Construction

Marvin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2012, 09:14
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Beenden eines SUBVI ohne Abbruch des MainVI's
Hallo knut,

Zitat:Oder ist es so, dass diese VIs die ganze Zeit im Hintergrund laufen und dann, wenn ich sie beende nicht mehr funktionieren danach?
Es ist in LabVIEW so wie in jeder anderen Programmiersprache auch:
Man ruft eine Funktion (subVI) auf, dann läuft diese Funktion, bis sie beendet wird. Wenn die Funktion beendet wurde, läuft sie natürlich nicht mehr weiter, stattdessen läuft die Hauptroutine/das MainVI weiter...

In LabVIEW nennt sich dieses Prinzip DATAFLOW. Vielleicht solltest du mal den Link in meiner Signatur durcharbeiten?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2012, 09:26
Beitrag #6

knutknorrsen Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jun 2012

LabVIEW Version 11.0
2012
EN


Deutschland
RE: Beenden eines SUBVI ohne Abbruch des MainVI's
Das mit dem DATAFLOW ist mir bekannt.

Es war lediglich ein Nachfragen, da du die Begriffe "nicht mehr weiterlaufen" wohl anders definierst.

Wie ich oben geschrieben habe ist es mir gleich, ob das Programm dann abbricht, solange es vorher die Richtige Position angefahren hat. Wie kann ich so etwas realisieren?

Als erstes würde mir da einfallen, dass man nach einer bestimmten Wartezeit das Programm automatisch abbricht.
Könnte man da prinzipiell eine Timed Loop verwenden?
Oder wäre es einfacher mit einer Tick count?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.07.2012, 09:36
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Beenden eines SUBVI ohne Abbruch des MainVI's

Akzeptierte Lösung

Hallo Knut,

Zitat:Als erstes würde mir da einfallen, dass man nach einer bestimmten Wartezeit das Programm automatisch abbricht.
Das Gleiche wurde gerade im NI-Forum gefragt...

Zitat:Das mit dem DATAFLOW ist mir bekannt.
Das ging aus der Fragestellung nicht hervor, sie implizierte eher das Gegenteil...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2012, 10:10
Beitrag #8

knutknorrsen Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jun 2012

LabVIEW Version 11.0
2012
EN


Deutschland
RE: Beenden eines SUBVI ohne Abbruch des MainVI's
Damit bricht auch nur das SubVI ab!

wie erhalte ich denn die globale Variable?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2012, 10:15 (Dieser Beitrag wurde zuletzt bearbeitet: 03.07.2012 10:17 von GerdW.)
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Beenden eines SUBVI ohne Abbruch des MainVI's
Hallo Knut,

Zitat:Damit bricht auch nur das SubVI ab!
Du solltest wohl besser "abbrechen" mal definieren.
Unter "abbrechen" verstehe ich die Nutzung der "Stop"-Funktion oder das Klicken auf den roten Stopp-Knopf in der VI-Menüleiste.

Ein subVI wird dagegen beendet, wenn es fertig gerechnet hat und die Kontrolle an das mainVI zurückgibt. Das hat nichts mit abbrechen zu tun...

Zitat:wie erhalte ich denn die globale Variable?
Muss ich dir jetzt erklären, wie man lokale/globale Variablen anlegen kann (was ich als absolutes Basiswissen ansehe) oder willst du selbst mal dein LabVIEW-Einsteigerkurs machen, wie er im Link meiner Signatur zu finden ist?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2012, 10:21
Beitrag #10

knutknorrsen Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jun 2012

LabVIEW Version 11.0
2012
EN


Deutschland
RE: Beenden eines SUBVI ohne Abbruch des MainVI's
Lokale Variablen finde ich nur die Globale nicht.. aber um nicht weiter zu stören durchstöber ich jetzt mal ein paar Foren...

Was ich an der Lösung auf der NI seite nicht gebrauchen kann ist leider, dass ein weiterer Knopf verwendet wird um das ganze abzubrechen.

Ich benötige eigentlich nur ein beenden des Ganzen.
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
  SubVI beenden nach einstellbarer Zeit angry_Nameless 5 3.437 06.05.2022 19:37
Letzter Beitrag: Martin.Henz
  MainVI sucht nach gelöschter .lvlib Bibliothek kwz 5 4.108 04.05.2021 16:11
Letzter Beitrag: kwz
  Kommunikation/Datenaustausch MainVI und SubVI THenry14 13 9.261 09.03.2018 08:46
Letzter Beitrag: GerdW
  Wechsel SubVI/MainVI, FP öffnen/schließen; LV2010 m.werle 4 4.690 12.10.2015 12:54
Letzter Beitrag: m.werle
Question Abfrage Abbruch eines asynchronen VI Aufrufs olmethn 2 3.582 17.06.2015 09:38
Letzter Beitrag: olmethn
  Erzeuger-Verbraucher Muster Abbruch Verbraucherschleife mit Abarbeitung der Queue lumaxo 5 6.710 12.02.2015 13:55
Letzter Beitrag: Lucki

Gehe zu: