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 

Aufruf Eventcase durch Globale Variable



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!

24.09.2010, 10:44
Beitrag #1

Gipler1977 Offline
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.09.2010, 11:20 (Dieser Beitrag wurde zuletzt bearbeitet: 24.09.2010 11:20 von schurzgasschweisser79.)
Beitrag #2

schurzgasschweisser79 Offline
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öchtestBig Grin- habs ma versucht, aber ich weiß es netSmile - Was willst du denn machen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2010, 11:27
Beitrag #3

Martin Heller Offline
LVF-Stammgast
***


Beiträge: 250
Registriert seit: Feb 2010

2011 SP1
2008
EN

5232
Schweiz
Aufruf Eventcase durch Globale Variable
' schrieb:Wie stoppe ich diesen oder wie kann ich diesen Eigenschaftsknoten wieder zurücksetzen?


Eigenschaftsknoten können "beschrieben" werden. Somit musst nur ein false Boolean ranhänken.


lg Martin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2010, 11:38
Beitrag #4

Gipler1977 Offline
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2010, 11:42
Beitrag #5

Gipler1977 Offline
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".
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2010, 11:46
Beitrag #6

SeBa Offline
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!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.09.2010, 23:10
Beitrag #7

schurzgasschweisser79 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 86
Registriert seit: Apr 2010

8.6
2010
de


Deutschland
Aufruf Eventcase durch Globale Variable
Ich hätte hier mal eine grundsätzliche Frage:

Wie kann ich denn Events in anderen VIs überhaupt auslösen?
Also ich drücke im haupt.vi ein Control und im neben.vi soll dann eine Eventstruktur ablaufen:

Ich kann doch dieses Event in meinem neben.vi gar nicht als solches definieren, weil neben.vi die Controls von haupt.vi nicht kennt.
Die Lösung mit der globalen Variable funktioniert meines Erachtens auch nicht:
Wenn ich eine globale Variable in meinem neben.vi einbaue, taucht diese bei den Eventdefinitionen auch nicht auf. Ich kann also den Inhalt der globalen Variable nicht auf "Wertänderung" von dem Eventmanager prüfen lassen.

Die einzige Möglichkeit mit globalen Variablen und Events zu arbeiten wäre, den Wert der gloablen Variablen in einem weiteren parallelen loop in neben.vi immer abzufragen und nur dann wenn eine Änderung auftritt, das Event auslösen zu lassen. Aber das ist doch totaler Quatsch. Dann brauch ich keine Eventstruktur mehr, sondern bin wieder beim Polling und kann da auch bleiben...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.09.2010, 09:52
Beitrag #8

IchSelbst Offline
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).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.09.2010, 11:06
Beitrag #9

schurzgasschweisser79 Offline
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 angesehenWink
2. hatte ich vermutet, aber noch nie probiert

Wie auch immer: Das was der Gipler1977 will, geht doch dann gar nicht...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.09.2010, 13:36 (Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2010 13:38 von IchSelbst.)
Beitrag #10

IchSelbst Offline
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).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Globale Variablen davidmaier66 9 8.831 14.06.2016 11:53
Letzter Beitrag: rolfk
  EventCase blockiert FP - aber welcher? Soean 14 12.202 24.05.2012 12:19
Letzter Beitrag: Soean
  Funktionale Globale Varibale lambda89 3 7.880 21.09.2011 08:23
Letzter Beitrag: A.Berndsen
  Datenkapselung - Globale Variablen LabFool 1 3.709 21.05.2010 13:57
Letzter Beitrag: chrissyPu

Gehe zu: