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 

Labview NXT "Schleifen" Problem



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!

26.10.2015, 23:43
Beitrag #1

neXt.ru Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2015

2013-2014
-
DE_EN

32XXX
Deutschland
Labview NXT "Schleifen" Problem
Hallo mein Name ist Alex,

und ich versuche schon seit geraumer Zeit einen "Ball suchenden Robotor" zu Programmieren. Ich habe etliche Bücher, Tutorials und Videos durchgearbeitet....sogar die Englischen, leider werde ich einfach nicht schlau daraus, warum mein Programm nicht so will, wie ich es gerne hätte.

Ich habe die Datei als anhang hochgeladen, diese wurde mit Labview 2013 erstellt. Ich habe bereits alles mit "while-Schleifen", "Case-Schleifen" und den "Flags" versucht. Aber leider läuft entweder der Motor dauerhaft ohne Pause, oder der ultraschallsensor löst erst garnicht aus, oder die Werte werden erst garnicht aus der "Schleife" an die folgenden "Stufen" herausgegeben.

Ich hab es von "Hand geschafft, das das Programme so halb wegs läuft allerdings, sind meine "Schleifen" nur aneinander gereihte Programme des vorherigen, was ja nicht Sinn der Sache sein sollte und alles nur unübersichtlich macht.

Ziel ist es: Das der Robotor in einem abgegrenztem Bereich (Schwarzer Klebeband auf Boden 2x2 m) umher fährt und einen Blauen/Roten Ball sucht, sich daher um die Eigene Achse dreht und stück für stück weiter fährt, bis er einen Ball findet. Sobald der Ball gefunden wurde, soll er einer Grünen Linie Folgen und an der "Endzone" anhalten und den Ball abladen.

Ich weiß die Struktur ist grausig, bin wie gesagt noch am Anfang und arbeite noch dadran, ich erhoffe mir wirklich Hilfe in Form von Tip´s und Tricks, wie ich das und dieserreichen kann, also ich erwarte nicht das mir das jemand Programmiert....will es selber schaffen

Laut der Anleitung in Labview, habe ich das mit den "Flags" irgendwie so verstanden, das ich die "Ereignisse übertragen" kann und so dann zum beispiel das Drehen beende und gleichzeitig, einen Befehl an XY sende.

vielen dank schon mal für die Hilfe


Angehängte Datei(en) Thumbnail(s)
   

13.0 .vi  Test1.vi (Größe: 30,28 KB / Downloads: 244)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2015, 06:55 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2015 06:57 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Labview NXT "Schleifen" Problem
Hallo Alex,

Zitat:Ich habe bereits alles mit "while-Schleifen", "Case-Schleifen" und den "Flags" versucht.
Nichts davon ist in deinem VI/Bild zu sehen - wie sollen wir es dann beurteilen?

Zitat:Ich weiß die Struktur ist grausig
Welche "Struktur"? Da ist überhaupt keine! Hmm
Momentan läuft dein VI genau einmal ab: im besten Fall steht dein Roboter hinterher, in allen anderen Fällen fährt er unkontrolliert weiter!
Soll das so sein?

Tipp(s):
Schau dir an, was eine Statemachine ist. LabVIEW bringt auch Beispielprojekte mit, da ist ein fertiges Beispielprojekt zur Statemachine dabei!
Erstelle dir (auf einem Blatt Papier!) ein Programmschema, in dem du die verschiedenen States entwirfst und die Bedingungen für Statewechsel notierst. (Sowas nennt sich PAP=Programmablaufplan. Einfach bei Wikipedia nachlesen!)
Wenn du das gemacht hast, implementierst du diese Statemachine in LabVIEW…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2015, 17:22
Beitrag #3

neXt.ru Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2015

2013-2014
-
DE_EN

32XXX
Deutschland
RE: Labview NXT "Schleifen" Problem
Hallo GerdW,

erstmal vielen dank für den Tip, lese mich mittlerweile ganz fleißig in dieses Kapitel ein.

Zitat:Schau dir an, was eine Statemachine ist. LabVIEW bringt auch Beispielprojekte mit, da ist ein fertiges Beispielprojekt zur Statemachine dabei!
Erstelle dir (auf einem Blatt Papier!) ein Programmschema, in dem du die verschiedenen States entwirfst und die Bedingungen für Statewechsel notierst. (Sowas nennt sich PAP=Programmablaufplan. Einfach bei Wikipedia nachlesen!)
Wenn du das gemacht hast, implementierst du diese Statemachine in LabVIEW…

Ich hab das mal mit DIA versucht und mich an den Beispielen im Internet gehalten, ist es so in Ordnung?

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2015, 17:49
Beitrag #4

neXt.ru Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2015

2013-2014
-
DE_EN

32XXX
Deutschland
RE: Labview NXT "Schleifen" Problem
So habe mir jetzt alle Webcast´s und Videos zu dem Thema Statemachine angesehen, ich kann jetzt die Cafe Maschine Programmieren Tongue
Allerdings weiß ich überhaupt nicht, wie ich das mit dem LEGO NXT Sensoren machen soll, kann mir vielleicht jemand zeigen wie ich da vorgehen könnte ?

Ich möchte das, dass Drehen auch durch den Sensor beendet werden kann, ansonsten soll es die 3600° Durchlaufen. Und wenn der sensor ausgelöst hat, soll dieser nen Stück vorfahren, anhand der Entfernung der Erfassung des Ultraschallsensor. Ich weiß einfach nciht mehr weiter und sitze schon seit Tagen da dran.....

Mein Problem ist das wenn ich den Sensor in ner seperaten Schleife habe, er die Werte nicht rausgibt und wenn der Motor zum Drehen drinne ist, dann erfasse ich zwar die Werte, aber er bewegt sich nicht.

Ich hab das ganze Paket mal angehängt, wäre echt dankbar wenn mir mal jemand den Richtigen weg weist...


Angehängte Datei(en)
13.0 .rar  Statemachine.rar (Größe: 191,07 KB / Downloads: 217)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2015, 18:17 (Dieser Beitrag wurde zuletzt bearbeitet: 28.10.2015 18:20 von Trinitatis.)
Beitrag #5

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Labview NXT "Schleifen" Problem
Hallo Alex,

eins mal vorneweg:
Es ist hier nicht so gern gesehen, dass user per PM um Hilfe gebeten werden. Wenn jemand in deinem thread war, ohne zu antworten, dann wird das Gründe haben. Die reichen von Zeitmangel bis zu Unvermögen. So ziemlich alle Fragesteller suchen nach Antworten.

Nun zu deinem eigentlichen Problem.
Da mir sämtliche deiner LEGOA - VIs fehlen, weiß ich auch nicht was da so los ist. Was dein Main-VI angeht, solltest du dich schonmal um eine ordentliche Leitungsführung bemühen (gerade für Anfänger das A+O). Im Case drehen starten beschreibst du beispielsweise nicht dein Clusterelement mit dem "aussagekräftigen" Namen Numerisch, wie du vielleicht glaubst.

Im Case fahre x cm vor multiplizierst du diesen Wert dann mit 0 und übergibst ihn deinem SubVI (kommt mir auch sinnfrei vor). Zudem wird dort dein State-SR nicht mehr beschrieben bzw. mit seinem Standard.

Die Schleife, die sofort gestoppt wird und auch keine FGV enthält ist wahrscheinlich nur zu Debugzwecken da?!


Außerdem gehört die NotAus-Steuerung mit der Eventstruktur parallel zum Rest. Du must ja sonst erstmal in diesen State kommen, um dein NotAus zu registrieren.

Prinzipiell bist du mit der StateMachine schonmal auf dem richtigen Weg. Debugge das ganze, indem du nach jedem State einen Haltepunkt anläufst, um zu sehen, ob der State richtig abgearbeitet wird bzw. das macht, was du erwartest. So kannst du dich Stück für Stück vortasten.



Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2015, 18:45 (Dieser Beitrag wurde zuletzt bearbeitet: 28.10.2015 18:47 von neXt.ru.)
Beitrag #6

neXt.ru Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2015

2013-2014
-
DE_EN

32XXX
Deutschland
RE: Labview NXT "Schleifen" Problem
Zitat:Es ist hier nicht so gern gesehen, dass user per PM um Hilfe gebeten werden

Tut mir leid, dachte das damit gmeint ist, die frage in der PM zu verfassen.

Zitat:Im Case drehen starten beschreibst du beispielsweise nicht dein Clusterelement mit dem "aussagekräftigen" Namen Numerisch, wie du vielleicht glaubst.

Das habe ich jetzt nicht ganz verstanden, also keine Wörter als Namen bei der Typdefinition ? Hab mich an das Video vom Webcast gehalten, da wurden die einzelnen Cases ebenfalls mit Namen versehen.

Zitat:Im Case fahre x cm vor multiplizierst du diesen Wert dann mit 0

Da sollte eigentlich der Faktor "31" hin und es sollte mit dem Wert den der Ultraschallsensor ausgibt Multipliziert werden. Hab es nur nicht geschafft die Werte zu übertragen.

Zitat:Die Schleife, die sofort gestoppt wird und auch keine FGV enthält ist wahrscheinlich nur zu Debugzwecken da?!

Da sollte eigentlich noch mehr dahinter kommen, wollte erstmal wenigstens 4 Schritte schaffen.

Zitat:Außerdem gehört die NotAus-Steuerung mit der Eventstruktur parallel zum Rest. Du must ja sonst erstmal in diesen State kommen, um dein NotAus zu registrieren.

Also du meinst seperat neben meine Case Schleife, in der While Schleife ? Toll dachte das ich wenigstens das hinbekommen habe, da die Knöpfe auch brav ausgelöst haben und in dem Video diese auch so ähnlich angeordnet wurden.


Das Projekt mit Labview, sind meine ersten geh....äh kriechversuche und ich tue mich daher wohl sehr schwer damit. Wie sollte ich weiter vorgehen, um das Programm besser zu verstehen ?
Wie gesagt, habe bereits sämtliche Videos, Webcasts und meine Bücher durch, ich verstehe zwar alles was dort erklärt wird, sobald ich es allerdings auf mein Problem übertragen soll, ist es mit dem verstehen vorbei.


Danke für die Antworten, versuche es mal weiter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2015, 19:28
Beitrag #7

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Labview NXT "Schleifen" Problem
(28.10.2015 18:45 )neXt.ru schrieb:  
Zitat:Im Case drehen starten beschreibst du beispielsweise nicht dein Clusterelement mit dem "aussagekräftigen" Namen Numerisch, wie du vielleicht glaubst.

Das habe ich jetzt nicht ganz verstanden, also keine Wörter als Namen bei der Typdefinition ? Hab mich an das Video vom Webcast gehalten, da wurden die einzelnen Cases ebenfalls mit Namen versehen.

Zitat:Im Case fahre x cm vor multiplizierst du diesen Wert dann mit 0

Da sollte eigentlich der Faktor "31" hin und es sollte mit dem Wert den der Ultraschallsensor ausgibt Multipliziert werden. Hab es nur nicht geschafft die Werte zu übertragen.

Wörter sind kein Problem. Aber das Wort "Numerisch" in deinem Cluster wird dich in nicht allzu ferner Zukunft zum Kratzen am Kopf bewegen.
Außerdem beschreibst du das Clusterelement "Numerisch" nicht, da du nicht den Ausgang der Funktion Bundle by Name sondern deren Eingang verwendest. Deshalb kommt der vermeintlich beschriebene Wert auch nicht im nächsten State an.

Ja, und dein Notaus gehört in eine Parallelschleife, Da die Eventabarbeitung für das Notaus ja nicht erfolgen kann, wenn du in einem anderen State steckst. Das Notaus würde ich erstmal außen vor lassen.


Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2015, 20:20 (Dieser Beitrag wurde zuletzt bearbeitet: 28.10.2015 20:27 von neXt.ru.)
Beitrag #8

neXt.ru Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2015

2013-2014
-
DE_EN

32XXX
Deutschland
RE: Labview NXT "Schleifen" Problem
Jetzt bitte nicht lachen, sitze wohl schon zu lange da dran...

Zitat:Aber das Wort "Numerisch" in deinem Cluster wird dich in nicht allzu ferner Zukunft zum Kratzen am Kopf bewegen

Aber du meinst jetzt damit, ich soll die Typdefinition eher in "cm", "entfernung" oder "abstand" ändern ? Damit das mehr Sinn ergibt und ich mich nicht in ein paar tagen frage, was zum Kuck-Kuck war nochmal Numerisch ?

Zitat:Außerdem beschreibst du das Clusterelement "Numerisch" nicht, da du nicht den Ausgang der Funktion Bundle by Name sondern deren Eingang verwendest. Deshalb kommt der vermeintlich beschriebene Wert auch nicht im nächsten State an.

Bahn

Ich hab es mal anders rum versucht, jetzt geht es schon mal rein....aber am anderen ende kann ich es nicht verbinden......

Ist es anfangs immer so schwer, oder bin ich einfach nicht fürs programmieren geschaffen ?

nochmals danke :-)

Ach wo finde ich dieses Symbol, wenn ich ein ganz neues VI beginne, hab schon alles abgesucht und kopiere mir das immer aus der statemaschine Vorlage?

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2015, 20:50
Beitrag #9

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Labview NXT "Schleifen" Problem
Ja, es geht um das Wort Numerisch im Cluster - das kann ja nun alles sein. Also vergib einen sinnvollen Namen!
Einen Cluster beschreibt man wie im angehängten Beispiel.

Das Symbol, das du meinst, ist ein schieberegister. Das erstellt man mitder rechten Maus auf der Whileschleife. Mit diesem Schieberegister gibst du Berechnungsergebnisse eines Schleifendurchlaufes an die nächste Iteration weiter.

Gruß, Marko


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2015, 21:00 (Dieser Beitrag wurde zuletzt bearbeitet: 28.10.2015 21:09 von neXt.ru.)
Beitrag #10

neXt.ru Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Oct 2015

2013-2014
-
DE_EN

32XXX
Deutschland
RE: Labview NXT "Schleifen" Problem
Besten danke, werde ich gleich mal umsetzen :-)

Nein ich meine den Kasten, das die Pfeile Schieberegister sind, das weiß ich. Ich bekomme es nur nicht hin, das Cluster Element genau so hinzubekommen. Wenn ich es auf dem Array, Matrix & Cluster Menü erstelle, dann sieht das ganz anders aus, als dort auf dem Bild. Nehme mal an, das ich dann mal wieder ganz falsch bin...

Ach man, wird ne lange Nacht....

Wenn ich von Hand eine While und Case Schleife erstelle und Enum mit schieberegister, dann kann sehe ich das nicht in den Cases. Was mache ich falsch, wollte nicht immer nach der Statemachine Vorlage nehmen. Also dieses "Cases hinzufügen fehlt"

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: