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 

Event - Automatisch



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!

13.12.2009, 14:37
Beitrag #1

Arno_Nym Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Feb 2009

2010 SP1
2008
EN

01277
Deutschland
Event - Automatisch
Hallo,

ich habe ein kleines Problem mit der Event Struktur. Oder einfach nur ein Verständisproblem.

Wenn ich einen Button habe und da draufdrücke, wird ein Event erzeugt. Wenn der True Fall durch eine Berechnung oder mit einem Signal erzeugt wird, funktioniert es nicht.

Der Grund für das Programm ist: Wenn z.B. beim Signal einlesen eine Grenze überschritten wurde soll er genau 1 hochzählen. Egal wie lange die Überschreitung dauert. DAs mit dem größeren Wert ist kein AKt. Aber egal was ich anstelle, wenn ich eine Tru schleife nehme zählt er solange durch wie das True anliegt. Ein Event zählt auch zweimal bei Wertänderung, 0->1 und 1->0. Gibt das irgendein Trick dabei.

Sorry wenn etwas unverständlich formuliert ist, Hänge irgendwie heute :-)

Danke für eure Hilfe

Arno


Angehängte Datei(en) Thumbnail(s)
   

It's not a Bug. It's a Feature.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2009, 15:24 (Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2009 15:27 von IchSelbst.)
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Event - Automatisch
' schrieb:Wenn ich einen Button habe und da draufdrücke, wird ein Event erzeugt. Wenn der True Fall durch eine Berechnung oder mit einem Signal erzeugt wird, funktioniert es nicht.
Wenn du den Event programmatisch auslösen willst, so musst du das Property "Wert (signalisierend)" beschreiben.

Zitat:Ein Event zählt auch zweimal bei Wertänderung, 0->1 und 1->0. Gibt das irgendein Trick dabei.
Ja.
Links an den Parametern am Event kann man sich den "Neuer Wert" und "Alter Wert" holen. Wenn also neuer Wert gleich TRUE und ungleich Alter, dann ...

Hinweis:
Die Vorgehensweise mit dem Benutzerereignis musst du nur dann machen, wenn sich Event-Programm (also die Ereignisstruktur) und Event-Quelle (also z.B. das Boolsche Element) in unterschiedlichen VIs befinden. Wenn sich beide im selben VI befinden, erstellt du einfach einen Element-abhängigen Eventcase.

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
13.12.2009, 16:34
Beitrag #3

Arno_Nym Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Feb 2009

2010 SP1
2008
EN

01277
Deutschland
Event - Automatisch
Hallo,

danke für deine schnelle Hilfe.

Teil 1 funzt supi. Also Event löst jetzt aus. Aber leider ist alter Wert = neuer Wert. Muss ich da noch irgendwas beachten?

Mit den Referenzen arbeite ich deswegen, weil es später in ein kleines Vi soll und das will ich dann im anderen Programmen mitbenutzen :-)

Thx Arno

It's not a Bug. It's a Feature.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2009, 18:08
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Event - Automatisch
' schrieb:Wenn z.B. beim Signal einlesen eine Grenze überschritten wurde soll er genau 1 hochzählen. Egal wie lange die Überschreitung dauert.
Für dieses Verhalten ist mir kein fertiger Baustein bekannt. Aber:
Kann man ganz leicht selber machen. Dort wo das Signal überprüft wird, baust du eine Struktur ein, die immer dann ein True erzeugt bei einer Flanke von False => True. Im Event-Case inkrementierst du nur dann, wenn im Boolschen Element der Wert true übergeben wird.
Die Struktur selbst ist auch ganz einfach: Boolscher Wert in einem Schieberegister einer While-Schleife. Alter und neuer Wert werden per - und hier muss ich jetzt raten - Implikation (siehe boolsche Palette) verbunden. Das Ergebnis ist die gewünschte Flanke.

(Bild folgt. Bin gerade am Standortwechsel.)

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
13.12.2009, 18:21
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Event - Automatisch
' schrieb:Mit den Referenzen arbeite ich deswegen, weil es später in ein kleines Vi soll und das will ich dann im anderen Programmen mitbenutzen :-)
Das wird ja immer komplizierter. Erst Events verwenden, obwohl die eigentlich primär für Bedienereignisse konizipert sind, und dann noch das Event in ein Sub-VI verlegen. Könnte es vielleicht sein, daß Du nur nicht weißt, wie man positive Flanken ganz einfach in einer Schleife ohne Event-Schnickschnack zählen kann?
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2009, 19:29
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Event - Automatisch
' schrieb:wie man positive Flanken ganz einfach in einer Schleife ohne Event-Schnickschnack zählen kann?
Vielleicht will er ja doch in dem anderen VI zählen. Allerdings wäre das Zählen eher doch dort sinnvoll, wo das zu zählende Ereignis stattfindet. Den Zählerwert würde ich dann per Melder veröffentlichen.

Hier das Muster mit Implikation.

Hinweis:
Mit Inverter ist die Logik positiv, damit denkt es sich einfacher. Ohne Inverter geht's auch, halt mit negativer Logik.


Angehängte Datei(en) Thumbnail(s)
   

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
Anzeige
13.12.2009, 21:13
Beitrag #7

Arno_Nym Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Feb 2009

2010 SP1
2008
EN

01277
Deutschland
Event - Automatisch
@Lucki

Dein vi Funzt supi, aber leider Zählt es weiter wenn länger Zeit ein Highpegel anliegt und ich brauch, egal wie lange es anliegt, nur einen Zählimpuls pro Highpegel. Aber sonst genial einfach.

@IchSelbst
Also bei implikation sehe ich nicht Richtig durch :-)
Habe damit bissel gespielt, aber das scheint zu hoch für mich :-)

Weil die Frage aufkam warum ich ein Event verwenden möchte. Wenn das vi mal länger braucht, könnten ja Highpegel übersehen werden. Bei einem Event wird da halt ne Pause gemacht und das erstmal abgearbeitet.

Ausserdem komme ich aus der Textprogrammierung und da wird das halt meistens per Interupt oder so gemacht.

Deswegen stell ich in LabVIEW viele blöde Fragen :-)

thx Arno

Mal ein PS zum Schluß: Gibts schon LV9? Is das noch ne Beta oder schon käuflich erwerbbar? Weil wir auf Arbeit ne Updatevertrag haben, aber noch mit 8.6 spielen dürfen :-)

It's not a Bug. It's a Feature.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.12.2009, 21:38
Beitrag #8

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Event - Automatisch
' schrieb:Habe damit bissel gespielt, aber das scheint zu hoch für mich
Bau's nach.
Drückst du den Button von False auf True erscheint für 250ms nach Implikation ein True. Bei allen anderen Zuständen - also True, False (das sind statische Zustände, die ewig dauern können) und bei False=>True (das ist eine Flanke, die 250ms dauert) erscheint false.

Zitat:Wenn das vi mal länger braucht, könnten ja Highpegel übersehen werden. Bei einem Event wird da halt ne Pause gemacht und das erstmal abgearbeitet.
LV arbeitet nach dem Verfahren des Datenflusses. Und beachte: Der Event verursacht nirgends eine Pause! Der läuft parallel! Ist also nicht mit eventgesteuert einer textbasierten OOP zu vergleichen!

Zitat:Gibts schon LV9?
Da gibt es schon das Update f2!

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
13.12.2009, 21:46 (Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2009 21:46 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
Event - Automatisch
' schrieb:Mal ein PS zum Schluß: Gibts schon LV9? Is das noch ne Beta oder schon käuflich erwerbbar? Weil wir auf Arbeit ne Updatevertrag haben, aber noch mit 8.6 spielen dürfen :-)
In Ergänzung zu IchSelbst:
LabVIEWLv09_img2(ja, es heißt jetzt LV 2009) gibt es seit August (seit der NI-Week in Austin).

http://www.ni.com/LabVIEW/

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
14.12.2009, 09:21 (Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2009 09:21 von Lucki.)
Beitrag #10

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Event - Automatisch
' schrieb:aber leider Zählt es weiter wenn länger Zeit ein Highpegel anliegt und ich brauch, egal wie lange es anliegt, nur einen Zählimpuls pro Highpegel.
Das ist schlichtweg falsch: gezählt wird nur bei einer Änderung des Pegels, und zwar bei Anderung von false nach true.
Zitat:Weil die Frage aufkam warum ich ein Event verwenden möchte. Wenn das vi mal länger braucht, könnten ja Highpegel übersehen werden. Bei einem Event wird da halt ne Pause gemacht und das erstmal abgearbeitet.
Damit das nicht passiert, maß natürlich die Wartezeit in der Schleife kleiner sein als die kürzeste Pegeldauer des Signals. Praktisch heißt das, daß die Pegeldauern größer als 1ms sein müssen, um überhaupt messen zu können. Sind sie kleiner, dann wird aber auch bei Auwertung mit Events die Grenze der Möglichkeiten schnell erreicht sein. Die Lösung ist dann: den Counter der Messkarte zur Flankenzählung zu verwenden. Damit geht es bis in den MHz-Bereich hinein.
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
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 8.256 23.10.2017 09:08
Letzter Beitrag: Ksanto
  Bei Event Boolean ändern und bei erneutem Event resetten Shieva 4 5.353 07.07.2015 09:43
Letzter Beitrag: Lucki
  Event struktur: event triggern mit digital input Brainbug 11 10.336 26.03.2015 17:51
Letzter Beitrag: Lucki
  Event Struktur - periodisches Event erzeugen OwlTownAlf 3 5.798 15.03.2013 15:54
Letzter Beitrag: OwlTownAlf
  Event B automatisch starten lassen, nachdem Event A eingetreten ist ? schurzgasschweisser79 15 21.446 28.06.2010 19:49
Letzter Beitrag: schurzgasschweisser79
  Event durch ein anderes Event triggern Novgorod 7 8.860 31.08.2009 13:25
Letzter Beitrag: Novgorod

Gehe zu: