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 

Übergeordnete Funktion



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!

31.01.2008, 11:10
Beitrag #1

joe1234 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 136
Registriert seit: Sep 2007

2010
2007
kA


Deutschland
Übergeordnete Funktion
Hallo,
erstmal der Hintergrund:
Ich habe eine Hauptprogramm geschrieben, welches viele SubVIs beinhaltet. In diesem Programm geht es um Temperaturen bei bestimmten Verhältnissen auszulesen.

Nun meine Frage:
Gibt es eine Möglichkeit so eine Art übergeordnetes SubVI zu schreiben, um eine Temperaturgrenze als Absicherung zu setzen?

Bsp:
Die kritische Temperaturabfrage findet immer alle 5min statt (egal wo ich mich gerade im Hauptprogramm befinde!!!). Wenn Temperatur ok ist, soll das Programm fortfahren. Wenn nicht sofort abbrechen, oder Gegenmaßnahmen einleiten.


Ich hoffe man kann aus meinen Erklärungen entnehmen, um was es sich handelt.

MfG Joe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2008, 11:21
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Übergeordnete Funktion
Nicht alles ganz klar. Wie ist dein Hauptprogramm aufgebaut? Kannst du es überhaupt an jeder Stelle abbrechen? Hast du eine State Machine? Müssen diese 5 Minuten genau eingehalten sein? Hast du mehrere parallele Schleifen im Programm oder nur eine Hauptschleife?
Mein erster Vorschlag wäre ein VI zur kritischen Messung zu erstellen und dieses in eine Case-Struktur in einer parallele While-Schleife setzen. Diese While-Schleife wird z.B. jede Sekunde ausgeführt, aber nicht das VI in der Schleife. Erst, wenn 5 Min. vorbei sind, wird das VI ausgeführt und abhängig vom Resultat der Messung wird ein Event ausgelöst, der die Hauptschleife z.B. abbricht.
Um genaueres zu raten musst du mehr über deine Vorgehensweise sagen und evtl. noch Screenshot deines HauptVIs hier posten.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2008, 11:49
Beitrag #3

joe1234 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 136
Registriert seit: Sep 2007

2010
2007
kA


Deutschland
Übergeordnete Funktion
' schrieb:Nicht alles ganz klar. Wie ist dein Hauptprogramm aufgebaut? Kannst du es überhaupt an jeder Stelle abbrechen? Hast du eine State Machine? Müssen diese 5 Minuten genau eingehalten sein? Hast du mehrere parallele Schleifen im Programm oder nur eine Hauptschleife?
Mein erster Vorschlag wäre ein VI zur kritischen Messung zu erstellen und dieses in eine Case-Struktur in einer parallele While-Schleife setzen. Diese While-Schleife wird z.B. jede Sekunde ausgeführt, aber nicht das VI in der Schleife. Erst, wenn 5 Min. vorbei sind, wird das VI ausgeführt und abhängig vom Resultat der Messung wird ein Event ausgelöst, der die Hauptschleife z.B. abbricht.
Um genaueres zu raten musst du mehr über deine Vorgehensweise sagen und evtl. noch Screenshot deines HauptVIs hier posten.

So habe nun ein Screenshot eingefügt. Wie man sieht habe ich nur eine Schleife. Die kritische Funktion sollte auch erst eingreifen, wenn das SubVI "Datei.Speichern" (das ist die große Case-Struktur ausgeführt wird.). Das SubVI "Datei.Speichern" besteht eigentlich nur aus mehreren ineinanderverschachtelten for-Schleifen, die nach und nach abgearbeitet werden. Hier befindet sich keine While-Schleife im Innern.

Zu deinen Fragen:
1.Hauptprogramm ist unten als Scrennshot.
2.Das weiß ich nicht. Aber ich würde gerne an jeder beliebigen Stelle abbrechen wollen.
3.State-Maschine kenn ich nicht. Ich denke, ich habe auch bis jetzt keine eingebaut.
4.Die 5 Minuten sind nur ein Beispielwert. Müssen auch nicht genau eingehalten werden, denn die Temperaturentwicklung ist sehr langsam.
5.Insgesamt habe ich mehrer While-Schleifen im Programm. Doch wie gesagt, bei SubVI "Datei.Speichern" habe ich keine While-Schleife mehr. Parallele While-Schleifen habe ich gar keine.


Wie meinst das mit der Parallel-Schleife? Kannst du kurz ein Beispiel erstellen?
Wenn ich dich recht verstehe, müsste ich ja meine kritische While-Schleife in die große Case-Struktur (siehe Scrennshot) einbauen. Ist das richtig so?

Mfg Joe

LV8.5


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2008, 12:01
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Übergeordnete Funktion
Also:

1. mache nur eine While-Schleife, das sollte für dein Prog reichen
2. vermeide mehrere Event Strukturen in einem VI, sehr gefährlich
3. deine grosse Case-Struktur kannst du eigentlich direkt in das "Datei erstellen" case setzen, wenn es nur dort ausgeführt werden soll.

Du kannst leicht in eine Event Struktur mehrere Events einfügen, dazu Rechtsklicke und Add Event.. auswählen.
Unten ein Beispiel. Wenn du soweit bist, schauen wir weiter.


Angehängte Datei(en) Thumbnail(s)
   

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2008, 13:14
Beitrag #5

jeffrey Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 123
Registriert seit: Aug 2007

8.0 zuhause, 8.2 Uni
2007
kA


Deutschland
Übergeordnete Funktion
Hi,
etwas Offtopic
' schrieb:2. vermeide mehrere Event Strukturen in einem VI, sehr gefährlich
warum? und können dann 2 cases gleichzeitig eintreten?

mfg jeffrey
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2008, 13:20
Beitrag #6

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Übergeordnete Funktion
' schrieb:Hi,
etwas Offtopic

warum? und können dann 2 cases gleichzeitig eintreten?

mfg jeffrey


Hmm, wann brauchst du denn sowas? Ich habe es noch nie gebraucht.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2008, 14:36 (Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2008 14:53 von jeffrey.)
Beitrag #7

jeffrey Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 123
Registriert seit: Aug 2007

8.0 zuhause, 8.2 Uni
2007
kA


Deutschland
Übergeordnete Funktion
' schrieb:Hmm, wann brauchst du denn sowas? Ich habe es noch nie gebraucht.

hi,
vermutlich kann man das auch immer umgehen. aber was mich eigentlich interessiert, warum man nicht mehrere eventsstrukturen verwenden soll. wo ist da das problem, oder welche fehler können auftreten?
mfg jeffrey

edit: was passiert, z.b. wenn mehrere ereignisse mit wertänderung abgefragt werde. diese änderungen aber gleichzeitig auftreten können, weil sie gleichzeitig aus der messung eingelesen werden. werden dann trotzdem alle abgearbeitet'?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2008, 15:03 (Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2008 15:04 von Achim.)
Beitrag #8

Achim Offline
*****
*****


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Übergeordnete Funktion
' schrieb:edit: was passiert, z.b. wenn mehrere ereignisse mit wertänderung abgefragt werde. diese änderungen aber gleichzeitig auftreten können, weil sie gleichzeitig aus der messung eingelesen werden. werden dann trotzdem alle abgearbeitet'?

Irgendwann hängt sich in so einem Fall dein Programm auf, weil es einfach nicht weiß, wie es weitergehen soll...oder weil "gegensätzliche" Befehle abgearbeitet werden...oder weil eine Struktur auf das Ergebnis der anderen wartet...oder...

Prinzipiell kann man so viele Eventstrukturen in einem VI verwenden wie man will...man darf sich dann bloß nicht über unerwartetes Verhalten wundern!

Man kann IMMER ALLE Events in einem VI mit einer einzigen Eventstruktur abhandeln...eine zweite (dritte, vierte..) ist einfach unnötig, fehlerträchtig und zeugt von wenig Übersicht des Programmierers über seine SW...'nuff said!

A.

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2008, 15:06 (Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2008 15:07 von jg.)
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Übergeordnete Funktion
Steht irgendwo in der LV-Hilfe bei den Guidelines zur Event-Structure:

Sinngemäß: Don't use more than one Event-Structure in one loop.

Erfahrung zeigt: Man handelt sich in der Regel irgendwo ein Lockup des FP oder Ähnliches ein, da 2 Event-Strukturen gleichzeitig irgendwo auf ein Event warten. Und wie Eugen auch schon sagt, brauchen tut man es eigentlich nicht!

Es gibt auch immer mal wieder Ärger, wenn man 2 Event-Structures in einem VI (aber in 2 Loops) verwenden will.

Deshalb die generelle Empfehlung, um sich unnötigen Ärger zur ersparen: 1 Event-Structure pro VI (und man hat Ruhe).

MfG, Jens

EDIT: @Achim: Na, da sind wir ja mal wieder einer MeinungHehe

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
04.02.2008, 13:32
Beitrag #10

joe1234 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 136
Registriert seit: Sep 2007

2010
2007
kA


Deutschland
Übergeordnete Funktion
Hallo Jungs,
so ich habe nun einiges am Programm geändert und es sieht nun folgendermaßen aus:

LV8.5
   

Wie soll ich nun weiter vorgehen???

Gruß Joe
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
  Übergeordnete Abfrage (Not-Aus Funktion) 206racer 10 14.434 06.08.2008 12:25
Letzter Beitrag: 206racer

Gehe zu: