24.09.2010, 10:44
Beitrag #1
|
Gipler1977
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Jun 2009
2010
2009
en
06774
Deutschland
|
Aufruf Eventcase durch Globale Variable
Hallo,
ich möcht aus einem laufenden Programm mittels globaler variablen Boolsche Elemente in Eventcases in anderen laufenden vi´s auslösen.
Dieses klappt mittels Eigenschaftsknoten(SGL) auch aber dieser ausgelöste Event läuft dann premenent. Wie stoppe ich diesen oder wie kann ich diesen Eigenschaftsknoten wieder zurücksetzen?
Im Vorraus schonmal Danke für Eure Mühe.
|
|
|
24.09.2010, 11:20
(Dieser Beitrag wurde zuletzt bearbeitet: 24.09.2010 11:20 von schurzgasschweisser79.)
Beitrag #2
|
schurzgasschweisser79
LVF-Gelegenheitsschreiber
Beiträge: 86
Registriert seit: Apr 2010
8.6
2010
de
Deutschland
|
Aufruf Eventcase durch Globale Variable
Ich dachte immer, man sollte nur ein VI für Benutzereingaben mit einer Eventstruktur machen und diese Eventstruktur startet dann gegebenenfalls andere VIs. Naja, egal, ich hab keine Ahnung wie das geht, was du möchtest - habs ma versucht, aber ich weiß es net - Was willst du denn machen?
|
|
|
24.09.2010, 11:27
Beitrag #3
|
|
|
24.09.2010, 11:38
Beitrag #4
|
Gipler1977
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Jun 2009
2010
2009
en
06774
Deutschland
|
Aufruf Eventcase durch Globale Variable
Hallöchen,
ich habe mal am Ende und mal am Anfang der Ereignissequenz den Knoten zurückgestzt, die Globale zurückgesetzt..., hat leider alles nicht geholfen.
|
|
|
24.09.2010, 11:42
Beitrag #5
|
Gipler1977
LVF-Neueinsteiger
Beiträge: 3
Registriert seit: Jun 2009
2010
2009
en
06774
Deutschland
|
Aufruf Eventcase durch Globale Variable
Ich möchte Drei bestehende Programme zur Steuerung verschiedener Geräte mit einem "Oberprogramm" Boolsche Werte setzen, Messwerte auslesen und im "Oberprog." Zeitstempel-synchron miteinander "verrechnen".
|
|
|
24.09.2010, 11:46
Beitrag #6
|
SeBa
LVF-Guru
Beiträge: 2.025
Registriert seit: Oct 2008
09SP1 & 10 FDS
2008
DE
65xxx
Deutschland
|
Aufruf Eventcase durch Globale Variable
' schrieb:Eigenschaftsknoten können "beschrieben" werden. Somit musst nur ein false Boolean ranhänken.
Das ist doch garnicht das Problem...
Die Eventstruktur reagiert auf das ValueChange Event des Indicators/Controls, dem der Eigenschaftsknoten gehört.
Wert(SGL) löst genau das aus, was bei manueller Aktion auch passiert. Das registriert die ES. Wenn du bei jedem Schleifendurchlauf aus der glob. Variablen was in den Eigenschaftsknoten Wert(SGL) schreibst, löst du damit jedesmal das Event aus. Es scheint permanent zu laufen, tut es aber nicht. Du selbst stößt es bei jedem Schleifendurchlauf erneut an.
--> Grundkonzept überdenken. (Für mehr Hilfe musst du dann mal dein VI hochladen)
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
|
|
|
25.09.2010, 09:52
Beitrag #8
|
IchSelbst
LVF-Guru
Beiträge: 3.689
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Aufruf Eventcase durch Globale Variable
' schrieb:Wie kann ich denn Events in anderen VIs überhaupt auslösen?
Zwei Möglichkeiten fallen mir ein:
1. Queues
In dem einen VI eine Queue (oder auch einen Melder) beschreiben. In dem anderen VI warten, bis was in der Queue steht. Dann Queue auslesen und was arbeiten. Dieses Verfahren kann man auch als eventgesteuert ansehen. Beachte selbstverständlich, dass beide VIs auf die selbe Queue zugreifen.
2. Benutzerereignis
Kuck mal nach "Benutzerereignis". Hier wird eine Referenz erstellt, die die Ereignisquelle enthält. Diese Referenz wird (z.B.) von dem VI erstellt, das ein Event erzeugen will. Dann wird diese (Benutzerereignis-)Referenz an das VI weitergegeben, das das Event bearbeiten soll. Diese Referenz kann man mit Eventcases bearbeiten (guckst du Kontextmenü des Rahmens vom Ereigniscase: "Benutzerereignis anzeigen"). So kann man also in einem beliebigen VI eventgesteuert reagieren auf Ereignisse, die in einem anderen VI entstanden sind.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
25.09.2010, 11:06
Beitrag #9
|
schurzgasschweisser79
LVF-Gelegenheitsschreiber
Beiträge: 86
Registriert seit: Apr 2010
8.6
2010
de
Deutschland
|
Aufruf Eventcase durch Globale Variable
Hi ichselbst,
danke für deine Antwort
1. hatte ich einfach nicht als eventgesteuert angesehen
2. hatte ich vermutet, aber noch nie probiert
Wie auch immer: Das was der Gipler1977 will, geht doch dann gar nicht...
|
|
|
25.09.2010, 13:36
(Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2010 13:38 von IchSelbst.)
|
IchSelbst
LVF-Guru
Beiträge: 3.689
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Aufruf Eventcase durch Globale Variable
' schrieb:Das was der Gipler1977 will, geht doch dann gar nicht...
Das kann man so nicht sagen. Im Prinzip ist das, was er machen will, möglich. (Aber nicht mit GV, da gebe ich dir Recht.)
Wenn drei zu steuernde Geräte vorliegen, ist es schon schön, drei einzelne VIs zu verwenden. Das erzeugt aber automatisch Probleme bei der Synchronität. Im schlimmsten Falle muss man mit Synchronisier-Elementen (hier wohl Rendezvous) arbeiten. Das kann aber umständlich werden.
Einfacher könnte es sein, ein SubVI zu nehmen, das alle drei Geräte ausliest bzw. beschreibt. Dann bekommt man diese drei Geräte auch ohne entsprechende Elemente synchron. Seine drei VI samt gerätespezifischem FP kann er ohne weiteres beibehalten. Das SubVI könnte die von den Geräten gelesenen Daten per Melder/Queue an das entsprechende VI senden. Oder an eines, das alle Daten gleichzeitig haben will. Umgekehrt geht das natürlich auch. Jedes der drei VIs sendet Steuerinformationen zum SubVI.
Welcher der beiden Methoden (SubVI oder Rendezvous) einfacher ist, kommt darauf an wie die Schnittstellen zu den Geräten aussieht: Um RS232 mit AD und CAN zu synchronisieren, müsste man wohl Rendezvous nehmen.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
| |