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 registrieren



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!

18.10.2007, 13:58
Beitrag #1

Simsdibims Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: May 2007

8.5
2006
kA

83553
Deutschland
Event registrieren
Hallo,
ich müsste im Timeout meiner Sequenzstruktur so ca. in der Mitte prüfen, ob irgendein in der Evenstruktur definiertes Event stattgefunden hat.
Rein theoretisch könnte man einfach die gleiche Sequenzstruktur nehmen und im Timeout nochmal einfügen, jedoch wurde
schon öfters erwähnt, dass man das vermeiden sollte. Gibts irgendwelche Alternativen?
Gruß Simon
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.10.2007, 14:14
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Event registrieren
Ich blicke das nicht so ganz......
Ich würde, so wie ich es verstanden habe, sagen: "Lass doch das Timeout ganz weg und warte einfach auf das Event."
Ich weiß aber nicht, was Du genau meinst.
Kannst Du bitte mal Dein VI hochladen.

Gruß Markus

' schrieb:Hallo,
ich müsste im Timeout meiner Sequenzstruktur so ca. in der Mitte prüfen, ob irgendein in der Evenstruktur definiertes Event stattgefunden hat.
Rein theoretisch könnte man einfach die gleiche Sequenzstruktur nehmen und im Timeout nochmal einfügen, jedoch wurde
schon öfters erwähnt, dass man das vermeiden sollte. Gibts irgendwelche Alternativen?
Gruß Simon

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.10.2007, 14:33 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2007 12:41 von jg.)
Beitrag #3

Simsdibims Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: May 2007

8.5
2006
kA

83553
Deutschland
Event registrieren
Ich frage im Timeout einen Status eines Geräts ab. Schalter, die ein eigenes Event haben (wenn sie gedrückt werden)
werden über die Statusinfo auch upgedated. Da diese Abfrage relativ lange dauert (100 ms), kommt es vor, dass der Schalter bei
Betätigung kurz zurückspringt. (Beispiel: Programm ist bei der Statusabfrage --> Schalter wird gedrückt und springt auf ON --> Schalterstatus wird
abgefragt und sagt dass der Schalter OFF ist (da der Event zwar ausgelöst hat, aber das Kommando noch nicht Richtung Gerät abgeschickt wurde)
-->Statusinfo wird auf die lokale Variable gegeben und der Schalter springt auf OFF zurück--> Kommando wird jetzt gesetzt --> Schalterstatus wird abgefragt
--> Schalter jetzt endgültig auf ON)

Um diese Verhalten zu verhindern, müsste ich kurz vor dem Update des Schalters über die Variable abfragen, ob ein Event bis jetzt stattgefunden hat.
Dann darf der Schalterwert nicht aktualisiert werden...
Hoffe es war einigermaßen verständlich,
Gruß Simon

(VI LV 8.5)


Angehängte Datei(en)
Sonstige .vi  Single_TX.vi (Größe: 105,2 KB / Downloads: 196)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.10.2007, 13:51
Beitrag #4

Simsdibims Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 70
Registriert seit: May 2007

8.5
2006
kA

83553
Deutschland
Event registrieren
Hallo, habe das Problem gelöst...
Anfangs hatte ich zwei Eventstrukturen (Bild1), jedoch war das VI dann während der Laufzeit sehr langsam.
Habe es dann einfach mit lokalen Variablen gelöst. Wenn während der Statusabfrage ein Schalter betätigt wird, wird er in diesem Umlauf
nicht upgedated. Er springt erst in das Event, setzt das Kommando und aktualiert ihn im nächsten Timeoutdurchlauf.
Somit wird das springen des Schalters verhindert...
Danke für eure Antworten, Gruß Simon


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.09.2008, 10:10 (Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2008 18:53 von jg.)
Beitrag #5

Ice Lord Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 79
Registriert seit: Sep 2008

8.2, 8.5
2008
de

82256
Deutschland
Event registrieren
Hallo Leute,

ich habe folgendes Problem bzw mir fehlen die richtigen Ideen zur Realisierung mit LabVIEW.

Folgendes Problem, schaut euch den 2. Screenshot vom vorigen Beitrag an, dort sieht man eine Sequenzstruktur die 3 Abläufe hat.
1. "alte" variablen --> 2. neue variablen einlesen --> 3. vergleichen der beiden
das ganze ist natürlich in einer while Schleife damit es immer wieder erneuert wird.

Hab jetzt folgendes Problem. In der Mitte seht ihr doch ein haufen Booleanschalter (diese stellen die zustände von LEDs dar).
Jetzt möchte ich das mir ein Popup signalisiert wenn sich eine LED geändert hat (NUR wenn sie auf TURE gegangen ist).

Am Anfang hab ich des so realisiert das ich jede LED einzeln verdrahtet habe, aber da wird der Code viel zu unübersichtlich.
Habt ihr irgendeine Idee?

Jetzt versuch ich grad zwei Cluster miteinander zu vergleichen (angehängtes SubVI V8.5) und daraus den geänderten Wert herauszufinden und dann ein Popup auszugeben.
Des funktioniert auch so halbwegs, aber mir kommt des alles ein wenig spanisch vor, ich arbeite erst seit ca. 2 Wochen mit LabVIEW und deshalb nehme ich gerne viele Tipps/Kritik/Anregungen an!

Der Screenshot zeigt, das ich jetzt versuche den GANZEN Cluster zu nehmen, und ihn nicht erst aufteile.

   


Angehängte Datei(en)
Sonstige .vi  Compare_Clusters_Failure.vi (Größe: 51,13 KB / Downloads: 162)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.09.2008, 11:59
Beitrag #6

Ice Lord Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 79
Registriert seit: Sep 2008

8.2, 8.5
2008
de

82256
Deutschland
Event registrieren
Hi,

warum kann ich meine eigenen Beitrag nicht löschen bzw editieren?!

Ich würd jetzt gern ein neues Thema aufmachen weil ich eine neue Frage hab, aber ich will auch nicht das Forum zuspammen, deshalb schreib ich einfach mal hier rein...

Hab jetzt mein Problem auf die Message Popups reduziert, hab nämlich grad herausgefunden das ich mit ganzen Clusters auch vergleichen und negieren kann.
Bin jetzt auf dem Stand, das sich bei mir der Wert der geänderten LED auf TRUE ändert, und jetzt möchte ich nur noch das mir ein MessagePoPup anzeiget was sich geändert hab.
Mein Problem besteht darin das ich nicht weiß ob ich jetzt für jeden Fall einzeln ein Case aufmachen soll und dann irgendwie den String zusammenfügen, oder man irgendwie direkt den Text aus dem Cluster ziehen kann und in ein Popup einbinden.
Ich möchte nicht einzelne Popups, sondern EIN großes mit allen Änderungen anzeigen lassen.

Hab mal mein SubVi hochgeladen (V 8.5), soweit so gut, jedoch weiß ich keine einfache lösung mit den Popup!

Hoffe ihr könnt mir helfen, ihr könnt auch direkt mein VI bearbeiten wenn ihr wollt, oder zumindest denkansätze geben...

Danke vielmals!


Angehängte Datei(en)
Sonstige .vi  Compare_Cluster_Popup.vi (Größe: 19,25 KB / Downloads: 171)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.09.2008, 13:19 (Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2008 13:41 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
Event registrieren
' schrieb:Um diese Verhalten zu verhindern, müsste ich kurz vor dem Update des Schalters über die Variable abfragen, ob ein Event bis jetzt stattgefunden hat.
Das funktioniert alles nicht. Ein Event kann während derTimeout-Abarbeitung zwar eintreffen, aber verarbeitet werden kann es erst mit dem nächsten Schleifendurchlauf.
(Diese falschen Vorstellungen über die Funktionsweise der Eventruktur enstehen, wenn man denkt, es handelt ich bei der Eventbehandlung um eine Art Interrupt. Falsch: Bei einem Interrupt wird in der Regel das laufende Programm an beliebiger Stelle für die Interruptbehandlung unterbrochen. Beim Eintreifen eines Events wird das jedoch nur dann sofort abgearbeitet, wenn das Programm gerade auf den Timout der Eventstruktur wartet. Ansonsten erst, wenn der Code im timeout und außerhalb der Eventstruktur abgearbeitet ist und das nächste Warten auf einen Event beginnt.)
So würde es funktionieren: Im Timeout befndet sich eine Casestruktur mit den Cases 0 und 1. Bei jedem Schleifendurchlauf wird alternativ case 0,1,0,1.. abgearbeitet. Das d.h für die Abarbeitung des ursprünglichen Codes im Timeout werden jetzt 2 Schleifendurchläufe gebraucht. Damit hast Du genau das was Du wuillt: Mitten im ursprünglichen Code findet zusätzliche eine Ereignisbehandluing statt.
BTW: Der Begriff "Event registrieren" ist von LabVIEW ganz anderes belegt. Mach Dich da mal schlau. So wie Du das hier meinst ist das irreführend.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.09.2008, 13:38
Beitrag #8

Ice Lord Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 79
Registriert seit: Sep 2008

8.2, 8.5
2008
de

82256
Deutschland
Event registrieren
' schrieb:Das funktioniert alles nicht. Ein Event kann während derTimeout-Abarbeitung zwar eintreffen, aber verarbeitet werden kann es erst mit dem nächsten Schleifendurchlauf.

Des hat sich alles schon erledigt. Du hast ja vollkommen recht mit dem was du sagst, aber des ist alles nicht so zeitkritisch, deshalb kann es auch erst im nächsten Schleifendurchlauf verarbeitet werden.
Und zwei schleifen ineinander sind auch ein wenig irreführendSmile
Es geht einfach darum das bei jedem Schleifendurchlauf, die LEDs von einem Sender überprüft werden, und wenn dann halt mal eine angeht soll ein PopUp dies melden.
Am liebsten wäre mir ein Event bei value change (NUR von 0 auf 1) einer LED, aber des funktioniert leider nicht...

Hab es inzwischen auch schon anders gelöst.

Mir ist aufgefallen, sobald ich hier einen Beitrag schreibe hab ich ca. ne std später die Lösung selber gefunden, obwohl ich davor schon eine ewigkeit dran gehockt bin. Faszinierendes Phänomen!

Ich hab übrigens die Arbeit von simsdibims übernommen, deshalb kann es sein, das ihr das ein oder andere VI schonmal gesehn habt Wink

Danke
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.258 23.10.2017 09:08
Letzter Beitrag: Ksanto
  Bei Event Boolean ändern und bei erneutem Event resetten Shieva 4 5.359 07.07.2015 09:43
Letzter Beitrag: Lucki
  Event struktur: event triggern mit digital input Brainbug 11 10.360 26.03.2015 17:51
Letzter Beitrag: Lucki
  Benutzerereignis - Bezeichnung bei "Ereignisse registrieren" Hasenfuss 2 4.794 13.05.2013 12:06
Letzter Beitrag: GerdW
  Event Struktur - periodisches Event erzeugen OwlTownAlf 3 5.804 15.03.2013 15:54
Letzter Beitrag: OwlTownAlf
  Event B automatisch starten lassen, nachdem Event A eingetreten ist ? schurzgasschweisser79 15 21.451 28.06.2010 19:49
Letzter Beitrag: schurzgasschweisser79

Gehe zu: