Moin PhilippS,
ich bin bis zur Nachbehandlung etwas @home und habe meine Ungereimtheiten mit den beiden TXT40 beseitigen können. Nachdem ich beide Controller auf Werkseinstellung + Update auf aktuelle FW gebracht habe, passiert die Motorfunktion nun wie gewünscht/erwartet.
Grundsätzliche Funktion:
"setze Motor mit Geschwindigkeit und Schrittweite" wird nach Aufruf auf dem für die Motore zuständigen Co-Proz ausgeführt und wird unabhängig zum aufrufenden Programm ausgeführt. Der ausgewählte Motor wird gestartet, dreht mit vorgegebener Geschwindigkeit und wird durch die Motor-Routine auf dem Co-Proz zum vorgegebenen Schritt angehalten.
Das aufrufende Programm läuft dabei weiter. Dabei muss man beachten, dass eine neue Motorfunktion, die auf diesen Motor wirkt, die bisherige Funktion abbricht und die neue Funktion startet, so kann man z.B. den Motor vor erreichen der Schrittweite abschalten. Man muss aber durch die Programmierung verhindern, dass genau diese Motorfunktion nicht vor erreichen der Schrittweite zyklisch aufgerufen wird, denn sie würde mit jedem Aufruf den Schrittzähler wieder bei "0" starten und nie die Schrittweite erreichen - also den Motor endlos, bzw. bis zum PGM-Ende, drehen lassen.
Dieses zu realisieren gehört zur komplexen Programmierkunst, die einfachste Version ist die programmunterbrechende Wartezeit, die länger dauert wie der Motor benötigt, um die Schrittweite zu erreichen (andere Vorgehensweisen sollte in einem anderen Thema betrachtet werden).
Nimm bitte für deinen Versuch folgendes PGM:

- ft-Motorbefehl_V1.jpg (28.7 KiB) 14213 mal betrachtet
- mit PGM-Start wird der Motor gestartet
- nahezu gleichzeitig startet die Wartezeit (in den grosszügigen 20 Sekunden schafft der Encodermotor die Schritte)
- nach den 20 Sekunden wird der Wert des Encoders in der Konsole (unterer Bildschirmrand) ausgegeben (Dazu muss RPC den Controller mit Motor natürlich online steuern)
- das PGM wird mit einem "Glockenton" beendet
Weil du erklärst, dass der Motor in deinem und auch in einem ft-Programm "nicht" stoppt, ist zu vermuten dass zum PGM-Ende eine "0" zur Anzeige kommt, weil der Encoder-Zähler nicht richtig arbeitet, oder ein Verdrahtungsproblem vorliegt, so wie Vleeuwen das zuvor schon aufgezeigt hat.
Prüfen kannst du das recht einfach über den "Schnittstellentest" (rechts oben, das zweite Icon links von "Controller verbinden").
- In diesem Fenster den Slider für Motor 1 nach rechts schieben, der Motor dreht entsprechend Sliderstellung, die Drehrichtung ist egal, der Encoderzähler zählt immer nur vorwärts. Unten rechts solltest du nun sehen, das der benutzte Zähleingang seinen Wert inkrementiert. Die Motor-Nummer ist zwingend mit der Zähler-Nummer verknüpft.
- Wenn ein anderer Zähler arbeitet dann hast du die falschen Buchsen erwischt, wenn kein Zähler arbeitet, dann ist der Encoder vielleicht eine Buchse zu hoch (auf M4) gesteckt.
- Hast du die richtigen Buchsen benutzt, dazu prüfe die Drähte: roter Draht des Encoderkabels mit 9V-Buchse, grüner Draht mit Masse-Buchse (das "T", das auf dem Kopf steht, linke Buchsenspalte unter den Motor-Buchsen), schwarzer Draht mit C1-Buchse (rechte Spalte unter den Motor-Buchse).
- Wenn das alles OK ist, dann gibt es noch eine gut versteckte Fehlemöglichkeit, das sind die aktuellen Schneidklemmenstecker. Die Litzendrähtchen der Encoderkabel werden durch die Schneidklemmen stark eingekerbt und reissen an diesen Stellen gerne im Stecker ab (besonders wenn man zum Steckerziehen am Draht zieht und nicht am Stecker selbst). Die Draht-Isolierung ist dann noch fest geklemmt, aber die elektrische Verbindung zwischen Draht und Stecker ist unterbrochen. Am besten hilft dazu ein Messgerät, um die Unterbrechung zu messen, wenn du sowas ncht hast, dann den Stecker öffnen und mit einer starken Lupe betrachten, ob man eine Unterbrechung erkennen kann.
- Typischerweise sind immer mind. 2 Encodermotore im Baukasten enthalten, also auch 2 Encoder-Kabel, vielleicht mal die Kabel tauschen.
Ich hoffe, das war nicht zu ausführlich und hilft dir weiter, ansonsten gerne weiter fragen, wenn was unklar ist.
Viel Erfolg.