Unterprogramm funktionniert nur einmal

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Max Z.
Beiträge: 53
Registriert: 01 Jan 2012, 12:36

Unterprogramm funktionniert nur einmal

Beitrag von Max Z. » 07 Apr 2012, 12:41

Hallo, ich habe mein Programm in Unterprogramme eingeteilt, und ein Unterprogramm wiederholt sich mehrmals. Doch wenn es zum zweiten Mal ablaufen soll, bleibt es immer an der gleichen Stelle hängen. An dieser Stelle steht: "Drehe M3; V8 nach rechts" => "Warte auf Taster I3=1" => "Stoppe M3. Wenn ich das Programm ablaufen lasse, passiert auf einmal nichts mehr. Wenn ich dann schaue, wo er "hängt" zeigt er an, dass er auf den Taster I3 wartet. Doch der Befehl "Drehe M3; V8 nach rechts", (der eindeutig davor steht) wurde nicht ausgeführt. Dieses Problem habe ich sowohl im Online-Modus, als auch wenn es auf den Controller gedownloadet ist. Das verwunderlichste aber ist, dass wenn das Unterprogramm zum ersten Mal abgerufen wird, alles einwandfrei funktionniert. Ich habe auch getestet op der Motor villeicht blokiert ist, das ist nicht der Fall. Auch habe ich sofort als er "stehen blieb" mit der "Test-Funktion" probiert, ob sich der Motor zu diesem Zeitpunkt überhaupt drehen lässt. Ja, das war der Fall. Es liegt also nicht an der Konstruktion.
Vielen Dank!

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: Unterprogramm funktionniert nur einmal

Beitrag von hamlet » 07 Apr 2012, 14:14

Hi Max,
Ohne Dein Progamm ist eine vernünftige Fehleranalyse schwierg bis unmöglich. Kannst Du es irgendwie zugänglich machen?
Nur so eine Idee:
Hast Du evtl. irgendwo im Programm die erweiterte Motorteuerung aktiviert (Synchron bzw. Distanz)? Falls diese noch aktiv ist, d.h. nicht explizit beendet wurde, bevor du in das Unterprogramm springst, könnte das zu dem beobachteten Verhalten führen.
Siehe auch in der Hilfe:
11.6.1 Encodermotor (Level 1)
... Wenn du Motoren mit diesem Element startest, musst du sie auch mit diesem Element stoppen, bevor du wieder gewöhnliche Motorsteuerelemente verwenden kannst. ...
11.6.2 Erweiterte Motorsteuerung im Level 3
... Wenn man den Motor anschließend wieder mit normalen Motorbefehlen steuern möchte, muss man zunächst den Distanz- und den Syncronbefehl wieder aufheben, indem man einen Distanz- und einen Synchronbefehl mit Wert 0 schickt. Vorher muss man dem Motor aber einen Stopp Befehl schicken. Der Distanz- und der Synchronbefehl stoppen den Motor nur solange die Befehle aktiv sind. Wenn man die Befehle aufhebt, ohne den Motor vorher zu stoppen, läuft der Motor wieder los. ...
Beste Grüße,
Helmut

Max Z.
Beiträge: 53
Registriert: 01 Jan 2012, 12:36

Re: Unterprogramm funktionniert nur einmal

Beitrag von Max Z. » 07 Apr 2012, 14:32

Volltreffer! Das stimmt, ich habe einen derartigen Befehl verwendet! Herzlichen Dank!
PS: Wie würde ich das Programm denn hier zugänglich machen?

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: Unterprogramm funktionniert nur einmal

Beitrag von hamlet » 07 Apr 2012, 14:50

Das freut mich!
Tja, leider kann man den Postings keine Dateien anhängen. Ich lade meine Dateien einfach in meinen Webspace und füge meinem Beitrag dann den entsprechenden Link zu. Die meisten Internetprovider bieten den Service einer persönlichen Website.
Beste Grüße,
Helmut

Antworten