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 

2 Ereignisse nacheinander auslösen



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!

11.03.2016, 10:50
Beitrag #1

jan_1 Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2015

2016
2014
DE


Deutschland
2 Ereignisse nacheinander auslösen
Moin zusammen,
eine Kleinigkeit habe ich noch:

Ich möchte durch einen Klick zwei Ereignisse auslösen. Es geht dabei um einen Schrittmotor mit integriertem Antrieb, bei dem ich zunächst die Endstufe ausschalte und dann nach kurzer Verzögerung ein Register des Antriebs beschreibe. Vorraussetzung für das erfolgreiche Schreiben ist, dass die Endstufe ausgeschaltet ist.

Jetzt habe ich ein Ereigniss erstellt und mir gedacht, dass ich da eine Sequenz reinpacke, bei der zunächst die Endstufe ausgeschaltet wird, in der nächsten Sequenz eine 2000ms Vergögerung ist und in der dritten Sequenz das Schreiben des Registers.
Nun habe ich aber festgestellt, dass die Endstufe erst nach der Verzögerung ausgeschaltet wird, so dass das Schreiben des Registers fehlschlägt. Es scheint wohl alles abgearbeitet zu werden, aber die tatsächliche Ausführung ist erst nach dem Abarbeiten der kompletten Sequenz (oder sehe ich da was falsch?).

Zwei Ereignisse durch einen Klick auszulösen, bei dem das erste direkt die Endstufe ausschaltet und das zweite nach kurzer Verzögerung das Register beschreibt, funktioniert auch nicht, weil man einer Wertänderung nur ein Ereigniss zuordnen kann.

Dann habe ich mir überlegt, im ersten Ereignis die Endstufe auszuschalten und dabei ein zweites Ereignis zu starten, bei dem dann das Register beschrieben wird. Leider kriege ich das auch nicht hin.

Kurzum: Ich möchte mit einem Klick zwei Befehle nacheinander mit einer Verzögerung ausführen und ich habe keine Ahnung wie. Smile

Ich hoffe, dass ihr mir helfen könnt.

Beste Grüße
Jan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.03.2016, 11:01 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2016 11:04 von Freddy.)
Beitrag #2

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: 2 Ereignisse nacheinander auslösen
Hallo Jan,
Bilder sind oft hilfreich er als Worte.

Normal kannst Du eine Sequenzstruktur verwenden
1. Befehl 1 abarbeiten
2. Timer
3. Befehl 2 abarbeiten
Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2016, 11:07 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2016 11:08 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2 Ereignisse nacheinander auslösen
Hallo Jan,

wenn man so etwas "sauber" lösen will, dann nimmt ein ein Konstrukt wie eine QueueDrivenStateMachine!
Du hast 3 States: "Endstufe schalten", "warten", "Register schreiben" - sowas kann man in einer Statemachine wunderbar hintereinander abarbeiten. Dein Event muss dann nur die 3 "Befehle" (aka States) in die Queue schreiben…

Quick & dirty: einfach eine Sequenz verwenden…

Zitat:Nun habe ich aber festgestellt, dass die Endstufe erst nach der Verzögerung ausgeschaltet wird, so dass das Schreiben des Registers fehlschlägt. Es scheint wohl alles abgearbeitet zu werden, aber die tatsächliche Ausführung ist erst nach dem Abarbeiten der kompletten Sequenz (oder sehe ich da was falsch?).
Wir wissen nicht, was du da siehst - wir sehen mangels VI überhaupt nichts…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2016, 11:07
Beitrag #4

jan_1 Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2015

2016
2014
DE


Deutschland
RE: 2 Ereignisse nacheinander auslösen
Genau das habe ich gemacht, aber Befehl 1 wird erst nach der Verzögerung ausgeführt. Anbei ein Bild davon.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2016, 11:12 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2016 11:14 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2 Ereignisse nacheinander auslösen
Hallo Jan,

Zitat:Genau das habe ich gemacht, aber Befehl 1 wird erst nach der Verzögerung ausgeführt.
FALSCH!
"Befehl 1" bzw. das "Setzen der lokalen Variable" wird VOR der Wartezeit ausgeführt!
Wie sich diese Änderung des Wertes auswirkt, ist aber im Bild nicht zu erkennen…

Vermutung: du greifst auf dieses Control irgendwo anders noch zu, aber aus irgendeinem Grund (THINK DATAFLOW!?) wird der eigentliche Ausgabebefehl noch nicht ausgeführt!?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2016, 11:24
Beitrag #6

jan_1 Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Jul 2015

2016
2014
DE


Deutschland
RE: 2 Ereignisse nacheinander auslösen
Also ich schalte die Endstufe ebenfalls mithilfe eines Ereignisses an und über "Quit" schalte ich sie aus, sie wird also nur beim Einschalten "berührt" und wenn ich auf Quit klicke. Sonst greife ich nirgends auf die Endstufe oder das Register, um das es geht, zu.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.03.2016, 11:27 (Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2016 11:49 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2 Ereignisse nacheinander auslösen
Hallo Jan,

Zitat:Also ich schalte die Endstufe ebenfalls mithilfe eines Ereignisses an und über "Quit" schalte ich sie aus, sie wird also nur beim Einschalten "berührt" und wenn ich auf Quit klicke. Sonst greife ich nirgends auf die Endstufe oder das Register, um das es geht, zu.
Leider ist dein Bild oben unvollständig, ich kann also nur vermuten, dass das Event "Quit:Wertänderung" gezeigt wird…
Alles was man dort sieht ist:
- lokale Variable auf FALSE setzen
- 2s warten
- Modbus-Register schreiben

Du willst aber haben:
- Endstufe abschalten
- warten
- Modbus-Register schreiben

Siehst du den Unterschied zwischen den beiden Aufzählungen?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2016, 11:30
Beitrag #8

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: 2 Ereignisse nacheinander auslösen
So funktioniert das nicht.
Mach es so wie GerdW beschrieben hat.
Zitat:wenn man so etwas "sauber" lösen will, dann nimmt ein ein Konstrukt wie eine QueueDrivenStateMachine!
Du hast 3 States: "Endstufe schalten", "warten", "Register schreiben" - sowas kann man in einer Statemachine wunderbar hintereinander abarbeiten. Dein Event muss dann nur die 3 "Befehle" (aka States) in die Queue schreiben…
Funktioniert und ist problemlos erweiterbar.

Es gibt auch Beispielprojekte.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2016, 14:34
Beitrag #9

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: 2 Ereignisse nacheinander auslösen
Dass das nicht anderes geht als mit der Wait-Funktion, kann ich mir nicht vorstellen.
Geht es wirklich nicht so:
1. Endstufe schalten.
2 in einer Schleife den Status des Motors abfragen.
3. Wenn der Status meldet: "Schaltbefehl ausgeführt", Schleife verlassen und weiter im Programm.

Anmerkung: Den Eigenschaftsknoten "Wert, signalisiernd" kennst Du doch hoffentlich? Damit kann man u.a. innerhalb eines Ereigniscases ein anderes Ereignis auslösen. Damit will ich aber nicht gegen die vorgeschlagene QSM als vermutlich beste Lösung argumentieren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2016, 15:33
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 2 Ereignisse nacheinander auslösen
Hallo,

Zitat:Anmerkung: Den Eigenschaftsknoten "Wert, signalisiernd" kennst Du doch hoffentlich? Damit kann man u.a. innerhalb eines Ereigniscases ein anderes Ereignis auslösen.
Dann aber immer "THINK DATAFLOW!" im Hinterkopf haben: der zweite Eventcase muss dann in einer anderen Eventstruktur in einer anderen Schleife abgearbeitet werden…

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
  Runtime Menü auslösen aus anderem VI GT123 4 3.463 11.09.2020 16:12
Letzter Beitrag: GT123
  Werte nacheinander in Array schreiben über ein Schieberegister BlackEagle 5 8.558 13.12.2019 13:40
Letzter Beitrag: GerdW
  Bedienelemente bündeln zum Auslösen eines Events Marcusius 12 9.308 03.09.2019 17:24
Letzter Beitrag: Marcusius
  Benutzer Event auslösen ? Niko1912 7 4.737 22.11.2018 16:35
Letzter Beitrag: GerdW
  Kopplung zweier Ereignisse TTT 4 4.529 25.07.2018 15:49
Letzter Beitrag: TTT
  Plotlegende programmatisch erstellen um Ereignisse zu erfassen mez15 10 7.656 01.03.2017 16:48
Letzter Beitrag: GerdW

Who read this thread?
1 User(s) read this thread:
CookieBrezel

Gehe zu: