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 

Mehrere Programmabschnitte



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!

14.02.2013, 16:30
Beitrag #1

labview2013 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 57
Registriert seit: Sep 2012

2011
-
kA



Mehrere Programmabschnitte
Hallo zusammen,

ich habe ein VI welches aus mehreren Programmabschnitten besteht (eig. sind es genaugenommen unterschiedliche Programme in einem).
Nun sollen die Programmabschnitte einzeln gestartet/beendet werden oder alle zusammen gestartet/beendet werden. Wichtig ist jedoch, das die Programmabschnitte ihre "Endroutine" ausführen (zb. Ports schließen) und nicht einfach die Schleife abbrechen.

Ich habe es bisher mit lokale Variablen/Schleifen mehr oder minder gelöst. Mir kommt aber meine Lösung sehr "schmutzig" vor. Ich würde gerne wissen wie ich an die Aufgabenstellung herangehen soll.

Danke

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.02.2013, 17:33
Beitrag #2

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Mehrere Programmabschnitte
Hallo LabView2013,

hast du dich schonmal in Melder-Operationen eingearbeitet?
Damit ginge es sicher etwas "sauberer"

Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.02.2013, 18:13
Beitrag #3

labview2013 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 57
Registriert seit: Sep 2012

2011
-
kA



RE: Mehrere Programmabschnitte
Ja, ich hab mir zwar schon vieles bei LabView angesehen aber es kamm noch nicht alles zum Einsatz.
Also meinst du Melder sind dafür am besten geeignet?
Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.02.2013, 18:27
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Mehrere Programmabschnitte
Ob Melder die beste Lösung sind, hängt von deiner Aufgabenstellung ab.

Generell sind aber Melder und Queues das Mittel der Wahl, um unabhängige Programm-Prozesse zu steuern, es schadet also überhaupt nicht, wenn du dich damit grundlegend vertraut machst.

Grundbeispiel wären z.B. eine Producer-Consumer-Struktur mit mehreren Consumern.

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
15.02.2013, 09:44 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2013 09:44 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Mehrere Programmabschnitte
Hallo LabVIEW2013,

Zitat:Nun sollen die Programmabschnitte einzeln gestartet/beendet werden oder alle zusammen gestartet/beendet werden.

Zwei Folgerungen:
- jeder "Abschnitt" wartet auf sein eigenes Start-Signal.
- jeder "Abschnitt" wartet auf sein eigenes Stopp-Signal.
Wie dieses Signal aussieht, bleibt dir überlassen. (Named) Queues/Notifier könnte man verwenden. Wenn die Anzahl der "Abschnitte" fest steht, könnte man auch eine FGV verwenden. Am primitivsten könnten globale Variablen zu verwenden sein...

Zitat:Wichtig ist jedoch, das die Programmabschnitte ihre "Endroutine" ausführen (zb. Ports schließen) und nicht einfach die Schleife abbrechen.
Das ist keine Frage des Stopp-Signals, sondern einzig nur durch deine Programmierung gegeben. Wenn du die Aufräumarbeiten jeweils nach der eigentlichen Arbeitsschleife deines "Abschnitts" durchführst, wird immer aufgeräumt, bevor der "Abschnitt" beendet wird...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2013, 10:25 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2013 10:27 von Lucki.)
Beitrag #6

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: Mehrere Programmabschnitte
Die perfekte Lösung heißt:
Ereignisgesteuerte queue driven State Machine
Leider habe ich im Moment keinen Zeit für das Beispiel. Bitte etwas gedulden. Oder es springt jemand Anderes schnell auf den Zug auf...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2013, 14:03 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2013 14:04 von Lucki.)
Beitrag #7

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: Mehrere Programmabschnitte
Hier das versprochene VI, unaufgeräumt und hastig zusmmengeklickt. Für gewöhnllch wird die Queue auch benutzt, um außer dem State auch Daten in die States mit zu übergeben. Als Datenformat wird dann meist Variant genommen, um in die unterschiedichen States unterschiedliche Datentypen übergeben zu können. Das habe ich hier alles weggelassen.


Angehängte Datei(en)
11.0 .vi  Ablauf.vi (Größe: 19,72 KB / Downloads: 135)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: