Hallo zusammen,
ich versuche meinen KY-023 Joystick (x-/y-Achsen analog, Knopf digital) auf meine Motorensteuerung umzusetzen. Der Joystick funktioniert und lässt sich auch in dem zugehörigen Unterroutine "X-Achse Joystick" ansprechen, sodass ich die Joystick-Ausschläge auf den zugehörigen Encoder-Motor in Drehimpulse umsetzen kann.
Das Programm zur Steuerung des Joysticks ist so aufgebaut:
1. Setze den Encoder-Motor auf eine bestimmte Anfangsposition im UP "VSG Position Z" <-- OK
2. Schalte Joystick-Steuerung ein in UP "Check Joystick" <-- OK
3. Setze den Motor durch den Joystick auf eine andere Postion <-- OK
4. Setze den Motor wieder auf die Anfangsstellung zurückgesetzt >-- NOK
Sobald das Unterprogramm "X-Achse Joystick" verlassen wird (Druck Joystick-Druckkopf), wird das danach aufgerufene UP "VSG Position Z" nicht ausgeführt. Der dazugehörende Encoder-Motor, der derselbe wie der in dem zuvor aufgerufenen UP ist, lässt sich auch über das Interface nicht mehr bedienen. Man sieht auch im Interface, dass ein Motorbefehl (drehen links) ausgeführt werden soll. Aber nichts tut sich. Es sieht so aus, dass nach der Ausführung des UP "X-Achse Joystick", der TXT Controller nicht mehr mit dem ausführenden Programm interagiert. Dieser Fehler ist reproduzierbar.
Hat jemand eine Idee, was in dem UP "X-Achse Joystick" falsch läuft, sodass die übergeordneten Programme nicht mehr ausgeführt werden? Bei Bedarf kann ich auch von den anderen beteiligten Unterprogrammen entsprechendes Material zur Verfügung stellen.
Grüße,
Joachim
Joystick (analog) Umsetzung auf Motorensteuerung
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Joystick (analog) Umsetzung auf Motorensteuerung
- Dateianhänge
-
- UP X-Achse Joystick.JPG (127.21 KiB) 2007 mal betrachtet
-
- HP Joystick x-Achse Umsetzung auf Motor.JPG (53.66 KiB) 2007 mal betrachtet
Re: Joystick (analog) Umsetzung auf Motorensteuerung
Hallo,
habe das Problem in der Zwischenzeit gefunden. Es war wie vermutet das falsche Beenden der Motoren im Unterprogramm.
Gruß
Joachim
habe das Problem in der Zwischenzeit gefunden. Es war wie vermutet das falsche Beenden der Motoren im Unterprogramm.
Gruß
Joachim
- PHabermehl
- Beiträge: 2436
- Registriert: 20 Dez 2014, 22:59
- Wohnort: Bad Hersfeld
Re: Joystick (analog) Umsetzung auf Motorensteuerung
Hallo Joachim,
schön, dass Du den Fehler gefunden hast.
Ich finde Deine Idee insgesamt sehr interessant. Würdest du das korrekte Programm hier nochmal einstellen, so dass die Lösung auch allgemein verfügbar ist? Vielleicht möchte das ja jemand nachmachen.
Danke und Gruß
Peter
schön, dass Du den Fehler gefunden hast.
Ich finde Deine Idee insgesamt sehr interessant. Würdest du das korrekte Programm hier nochmal einstellen, so dass die Lösung auch allgemein verfügbar ist? Vielleicht möchte das ja jemand nachmachen.
Danke und Gruß
Peter
Re: Joystick (analog) Umsetzung auf Motorensteuerung
Hallo Peter,
kann ich gerne machen. Allerdings ist das nur eine vereinfachte Komponente, die ich hier dargestellt habe, damit nicht mehr Informationen als notwendig zu vermitteln waren (frei nach Ockham eben). Ich war schon auf der richtigen Fährte mit dem Motor-Management. Ursprünglich bin ich aus der Unterroutine herausgesprungen, unabhängig wie der Motorenzustand war. Der TXT braucht wohl einen definitiven STOPP Befehl für die benutzten Motoren (in diesem Beispiel M3). Macht man das nicht, können diese Motoren nicht mehr in anderen Unterroutinen oder auch im Hauptprogramm angesprochen werden. Dabei habe ich leider das falsche Symbol benutzt (siehe erster Anhang). Im nächsten Anhang habe ich das richtige Symbol für das Stoppen des Motors benutzt und siehe da, alles ist wieder in Ordnung.
PS
Auch die vielen globalen Variablen sind eigentlich für das Funktionieren nicht notwendig. Ich baue in der Anfangsphase eben gerne Variablen ein, um mir so den Zustand der Routinen besser darstellen zu lassen. Später fliegen diese Variablen aus dem Programm raus. In diesem Fall sind nur die Variablen "Var_J1ximpulse" und "Var_J1D" für den Ablauf notwendig.
Grüße
Joachim
kann ich gerne machen. Allerdings ist das nur eine vereinfachte Komponente, die ich hier dargestellt habe, damit nicht mehr Informationen als notwendig zu vermitteln waren (frei nach Ockham eben). Ich war schon auf der richtigen Fährte mit dem Motor-Management. Ursprünglich bin ich aus der Unterroutine herausgesprungen, unabhängig wie der Motorenzustand war. Der TXT braucht wohl einen definitiven STOPP Befehl für die benutzten Motoren (in diesem Beispiel M3). Macht man das nicht, können diese Motoren nicht mehr in anderen Unterroutinen oder auch im Hauptprogramm angesprochen werden. Dabei habe ich leider das falsche Symbol benutzt (siehe erster Anhang). Im nächsten Anhang habe ich das richtige Symbol für das Stoppen des Motors benutzt und siehe da, alles ist wieder in Ordnung.
PS
Auch die vielen globalen Variablen sind eigentlich für das Funktionieren nicht notwendig. Ich baue in der Anfangsphase eben gerne Variablen ein, um mir so den Zustand der Routinen besser darstellen zu lassen. Später fliegen diese Variablen aus dem Programm raus. In diesem Fall sind nur die Variablen "Var_J1ximpulse" und "Var_J1D" für den Ablauf notwendig.
Grüße
Joachim
- Dateianhänge
-
- UP X-Achse Joystick (richtig).JPG (100.67 KiB) 1905 mal betrachtet