LabVIEWForum.de
Simple Event Struktur - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Simple Event Struktur (/Thread-Simple-Event-Struktur)

Seiten: 1 2 3 4


RE: Simple Event Struktur - berlinfatih - 03.06.2016 18:52

Hallo Gerd,
hier ist meine Lösungsvorschlag.
Erste Schritt war erstmal, das ich mit mein Ultraschalsensor Front eine Abstand erfasse, diese dann mit User Event auswerte, um mit eine Sollwert zu vergleichen.
Danach kann ich diese mit eine Bool je nach Abstand (Abstand ausreichend oder nicht ausreichend) die beiden Motoren ein/ausschalten.

Ich habe die Beispiele von Labview Bibliotheken angeschaut und verstanden (denke ich Big Grin).
Nun wird in meine Event Struktur nur das Case ("Abstand Front>> User Event") angesprochen --> dort ist auch meine Vergleicher drin. (siehe Bild)
(Also die Motoren bleiben bei ein Hindernis stehen, getestet, funktioniert auch soweit)

Aber wenn sich der Wert von "Abstand Front" ändert, komme ich nicht in den Case ("Abstand Front >> Value Change") .
Nun habe ich mir gedacht, das der Case ("Abstand Front >> Value Change") ja Überflüssig ist, da der Case ("Abstand Front>> User Event") ja immer angesprochen wird, egal ob sich der Wert ändert oder nicht.
Habe mir dann den Spaß erlaubt und den Vergleicher aus den Case ("Abstand Front>> User Event") gelöscht und in den Case ("Abstand Front>> Value Change ") eingefügt.
Dachte, da sich der Wert von "Abstand Front" ja ändere, müsste der Case auch angesprochen werden. Leider war es nicht so.

Nun meine Frage, welchen Vorteil ergibt sich wenn ich mit Value Change arbeite und nicht direkt User Event??

Kann ich mit diese Programmierweise, zu meine Ziel führen??
Ich möchte noch unter meine Roboter Infarot Sensoren anbringen und somit eine Linie abfahren.

Zusatzaufgabe: Ich habe noch 2 weitere Ultraschal Sensoren auf mein Roboter montiert (+45° rechts und -45° links). Damit möchte ich auch den Abstand erfassen und eventuell eine Hindernis ausweichen. Prio hat aber erstmal die Linien abfahren.'

Danke für deine Mühe
Hoffe, das ich jetzt mein Projekt und VI´s so gepackt habe, das du diese direkt öffnen kannst.


RE: Simple Event Struktur - GerdW - 03.06.2016 20:40

Hallo fatih,

Zitat:Ich habe die Beispiele von Labview Bibliotheken angeschaut und verstanden (denke ich).
Ok…

Zitat:Aber wenn sich der Wert von "Abstand Front" ändert, komme ich nicht in den Case ("Abstand Front >> Value Change") .
Hast du es wirklich verstanden?
Dann wüsstest du die Antwort auf diese Frage!

Wann werden "normale" Events (wie ValueChange) ausgelöst? Die Antwort steht in der LabVIEW-Hilfe!
(Antwort: bei User-Aktionen auf dem FP oder bei Nutzung der "Value signalling"-PropertyNode. Du nutzt keine der beiden Optionen - und sie würden, wie schon erläutert, auf dem myRIO nicht funktionieren!)


RE: Simple Event Struktur - berlinfatih - 04.06.2016 16:28

Hallo Gerd, danke für deine Antwort.

Verstehe... Danke nochmal für die Information. Ich muss nochmal mir die Grundlagen anschauen. Auch, was ich ansonsten beim programmieren mit der myrio zur beachten habe.

Meinst du, kann ich mit diese Programmierweise (also mit User-Event), die weiteren Programme wie Linienabfahren und Evt. Hindernisnausweichen verwirklichen??

Wenn du ansonsten an meine hochgeladene Programm nichts zur bemängeln hast, würde ich es als gelöst markieren.

Gruß
Fatih


RE: Simple Event Struktur - GerdW - 05.06.2016 19:11

Hallo fatih,

Zitat:Meinst du, kann ich mit diese Programmierweise (also mit User-Event), die weiteren Programme wie Linienabfahren und Evt. Hindernisnausweichen verwirklichen??
Ja, das kann man durchaus machen.
Auf einem RIO würde ich aber eine QMH und Statemachines verwenden - und auf Events eher verzichten…

Zitat:Wenn du ansonsten an meine hochgeladene Programm nichts zur bemängeln hast, würde ich es als gelöst markieren.
Da findet sich sicherlich noch das Eine oder Andere - aber wohl nichts speziell zur bisherigen Diskussion Big Grin


RE: Simple Event Struktur - berlinfatih - 06.06.2016 19:04

Hallo Gerd,
zur beiden Themen (QMH und Statemachines ) habe ich im Internet tutorial´s gefunden. Werde mich dann schlau machen.BoxBox
Ihr werdet dann wieder von mir hören, wenn ich wieder mal Problem habe und nicht weiterkommen sollte Big Grin


RE: Simple Event Struktur - GerdW - 06.06.2016 19:59

Hallo fatih,

Zitat:zur beiden Themen (QMH und Statemachines ) habe ich im Internet tutorial´s gefunden. Werde mich dann schlau machen.
Zu beiden Themen bringt LabVIEW Beispiel-Projekte mit…


RE: Simple Event Struktur - Freddy - 07.06.2016 07:39

hallo Gerd,
ich hab da noch eine Frage.
Event Schleifen in einer IF Anweisung?
Das Event ist zwar durch die If Anweisung manchmal an seiner Ausführung behindert. Das Auslösen eines Events merkt sich Windows und gibt sie auch zu einem späteren Zeitpunkt an die Event Schleife auch wenn ich es dann vielleicht nicht mehr will.
Oder wird der Auslöser irgend wo gelöscht?

Gruß
Freddy


RE: Simple Event Struktur - GerdW - 07.06.2016 08:54

Hallo Freddy,

Zitat:Event Schleifen in einer IF Anweisung?
Wie kommst du auf diese Anordnung? (Ich nehme an, du meinst eine "Case-Struktur".)

Zitat:Das Event ist zwar durch die If Anweisung manchmal an seiner Ausführung behindert.
Ja. Deshalb sollten Eventstrukturen generell nicht in irgendwelchen anderen (blockierenden) Strukturen versteckt werden…

Zitat:Das Auslösen eines Events merkt sich Windows und gibt sie auch zu einem späteren Zeitpunkt an die Event Schleife
Abgesehen, dass LabVIEW sich das Event merkt: THINK DATAFLOW!
Ein Event kommt in die (interne) Event-Queue der Event-Struktur, die dieses Event registriert hat. Sobald der DATAFLOW es zulässt, wird das Event abgearbeitet!

Zitat:auch wenn ich es dann vielleicht nicht mehr will.
Bang!
Siehe oben: Eventstrukturen NIE in blockierenden Strukturen verstecken!

Zitat:Oder wird der Auslöser irgend wo gelöscht?
Nein. Warum sollte er?
Das Event landet in der internen Event-Queue der zugehörigen Eventstruktur: der "Auslöser" hat keinen Zugriff darauf!
(Seit LabVIEW2015 hast du innerhalb der Eventstruktur begrenzten Zugriff auf die Eventqueue. Für deine Frage hier solltest du aber dein generelles Programmdesign überdenken (IMHO)!)


RE: Simple Event Struktur - Freddy - 07.06.2016 09:01

Hallo Gerd,
ich hatte mir das letzte Bild von berlinfatih angeschaut. Da ist in der IF Anweisung die Event Schleife.
Das hat mich irritiert. Daher meine Frage.
Danke für die Bestätigung.
Gruß
Freddy


RE: Simple Event Struktur - berlinfatih - 21.06.2016 18:29

Hallo Gerd,
habe Zwischenzeitig das Funktion Queue studiert und bin auf folgende geänderte Lösung ( Weg von Events in Richtung Queue) gekommen (siehe Anhang).
Bei der Programm werden sozusagen die Abstände, die von 3 Ultraschalsensor erfasst werden, ausgewertet um sozusagen die Motoren (Hinterräder) anzusteuern ( AN/AUS).

Programmteil Linie abfahren:
Hätte noch meine Problem mit der Linie abfahren, wollte fragen ob meine Denkweise über die Vorgehensweise soweit richtig ist:
Ich würde das Programmteil (siehe Anhang) so erweitern, das ich den teil wo der Roboter die Linie abfährt mit reinnehme.

Dabei bekomme ich von 3 CNY70 Sensoren Werte in BOOL. Je Nach welche der 3 Sensoren die Linie erfasst ( Durch die Abstände der Sensoren kann nur 1 Sensor die Linie erfassen) kann ich dann auswerten, das die Rechte Rad/ Linke Rad oder beide Räder angesteuert werden.

Mit der Funktion Queue kann ich Trotzdem auf, zu geringen Abstand reagieren, um den Roboter zum Stillstand zu bringen.

Liege ich soweit richtig??