LabVIEWForum.de
Auf Wunsch zusätzliche Sequenz erstellen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Auf Wunsch zusätzliche Sequenz erstellen (/Thread-Auf-Wunsch-zusaetzliche-Sequenz-erstellen)



Auf Wunsch zusätzliche Sequenz erstellen - Rayid - 28.09.2016 14:56

Hallo liebe Community,

es geht in diesem Beitrag um folgendes.

Ich will einen Motor steuern und Ihn immer eine gewissen Zeit lang nach Rechts oder links drehen lassen. Dies soll sich immer wiederholen.

D.h. der Motor soll z.B. 3 Sekundesn Rechts dann 3 Sekunden links dann wieder 2 Sekunden Rechts usw. drehen.

Dies habe ich schon hinbekommen. Der User kann im Moment pro Sequenz immer eine Drehzahl, eine Zeit solange sich der Motor drehen soll und eine Zeit die der Motor Pausieren soll bevor er anfängt die nächste Sequenz durchzulaufen, eingeben. Dies über einfach Numeric Control Eingabefelder. Mein Anliegen geht jetzt darum ob es möglich ist zusätzliche Sequenzen hinzuzfügen über Knopfdruck vom User des Programms.

D.h. das ich im Front Panel ein Push-Button habe (z.B. ein +), auf den der User klicken kann und dann zusätzlich eine Seuqenz hinzugefügt wird und 3 neue Eingabefelder entstehen in die er Drehzahl, Zeit und Pausenzeit eingeben kann und der Motor damit eine weitere Sequenz durchläuft. Diese Eingabefelder sollten natürlich am besten direkt unter den vorherigen platziert werden.

Über eure Hilfe bin ich schonmal sehr dankbar Big Grin

Grüße Rayid

P.S. benutze Version 2010 und sry wegen Rechtschreibung und Grammatik. Big Grin


RE: Auf Wunsch zusätzliche Sequenz erstellen - jg - 28.09.2016 15:00

Nein, das geht nicht! Es ist nicht möglich, in einem laufenden VI Controls zu erstellen.

Deine Aufgabenstellung "schreit" nach einer skalierbaren Lösung. Das bedeutet für mich, dass die Eingaben z.B. über ein Table-Control oder Arrays erfolgen, und abgearbeitet wird das Ganze dann in einer State-Machine, nicht in einer Sequenz.

Gruß, Jens


RE: Auf Wunsch zusätzliche Sequenz erstellen - Morpheus - 29.09.2016 06:41

(28.09.2016 15:00 )jg schrieb:  Deine Aufgabenstellung "schreit" nach einer skalierbaren Lösung. Das bedeutet für mich, dass die Eingaben z.B. über ein Table-Control oder Arrays erfolgen, und abgearbeitet wird das Ganze dann in einer State-Machine, nicht in einer Sequenz.
Hatte vor einigen Jahren eine ähnliche Aufgabenstellung. Habe dies, wie von Jens erwähnt, mit einer State-Machine und einer Tabelle gelöst.

Gruss
Chris


RE: Auf Wunsch zusätzliche Sequenz erstellen - Rayid - 29.09.2016 10:32

Danke erstmal für die schnellen Tipps !

Habe jetzt mal State maschine gegooglet aber kann es irgendwie nicht auf mein Problem übetrage wie ich es machen soll. Überall sind nur Beispiele mit dem Automaten der Geld zählt Bahn

Habt ihr vielleicht irgendwelche Tutorial, Beispiel VI, Tipps wie ich das genau machen soll?

Mein Motor soll ja nachdem ich auf Start gedrückt habe die verschieden Sequenzen automatisch ablaufen. Eine State maschine reagiert doch nur auf bestimmte eingaben (Wie z.B. der Geldeinwurf in den Automaten) und nimmt dann einen Status ein (z.B 5cent oder 10 cent)?


RE: Auf Wunsch zusätzliche Sequenz erstellen - GerdW - 29.09.2016 10:37

Hallo Rayid,

Zitat:Eine State maschine reagiert doch nur auf bestimmte eingaben
Korrekt.
Eine "bestimmte Eingabe" könnte aber auch sein: "eine vordefinierte Zeitspanne ist abgelaufen"…


RE: Auf Wunsch zusätzliche Sequenz erstellen - Rayid - 29.09.2016 11:32

So habe mal Versucht das mit einer for Schleife zu lösen. Problem hierbei ist die Zeit passt net. Wenn ich Numerisch eine Eingabe mache auf die 3 Parameter (Drehzahl, Zeit in der der Motor sich drehen soll, Pausenzeit) anstatt über Array funktioniert es einwandfrei und hält genau die delays ein.

Aber wenn ich die 3 Parameter über ein Array Rein hole dann geht es aufeinmal nicht mehr und das Program läuft bei einmaligem Start, also nicht kontinuierlicher Programmablauf, genau so lange wie alle Pausenzeiten addiert. Hoffe ihr könnt mir irgendwie weiter helfen. Glaube das das auch keine State Maschine ist xD aber es wäre aufjedenfall leichter zu skalieren weil ich um mehr Sequenzen einzufügen nur das Array im Front Panel vergrößern müsste.


RE: Auf Wunsch zusätzliche Sequenz erstellen - Morpheus - 29.09.2016 11:47

Hallo Rayid

Das erste Element in einem Array hat den Index 0.
So wie ich deinen Code interpretiere, bist du irrtümlicherweise von 1 ausgegangen.

Benutze die Debugging-Funktionen von LabVIEW um deinen Code zu analysieren.

Gruss
Chris


RE: Auf Wunsch zusätzliche Sequenz erstellen - GerdW - 29.09.2016 11:50

Hallo Rayid,

Zitat:Problem hierbei ist die Zeit passt net
Da passt eine ganze Menge nicht…
Hast du dein VI mal entwanzt?

- Warum muss man den seriellen Port andauernd neu initialisieren?
- Warum verwendest du kein AutoIndexing?
- Deine IndexArray-Funktionen passen nicht! Du weißt schon, dass das erste Arrayelement den Index 0 (NULL) hat? Wie in jeder vernünftigen Programmiersprache? Du weißt, wie IndexArray und die Autoindizierung arbeiten?
- Warum eine FeedbackNode nach dem ersten SerialPortInit?
- Warum eine FeedbackNode in der Case-Struktur?
[attachment=56719]

Du bist schon die ganzen Einsteigerkurse durchgegangen, die NI kostenlos anbietet?