Stepper-Encoder an einem Stepper via Parallelport nachrüsten

More
13 Sep 2023 09:02 #280612 by Jensner
OK, vielen Dank für diese Infos.
Das zeigt einmal mehr dass ich leider viel zu wenig Ahnung von LinuxCNC habe.
Aber Gott sei Dank gibt es ja dieses tolle Forum mit all den kompetenten Leuten.

Ich werde das umgehend umsetzen! 
Vielen Dank und viele Grüße
Jens

Please Log in or Create an account to join the conversation.

More
13 Sep 2023 17:21 #280650 by Jensner

Datenblatt vom Stepper sagt "For reliable response, pulse width should be longer than 2.5 μs for 200 kHz MAX input frequency.", das ist mit 2000ns = 2,0µs zu knapp. Ich würde mindestens 5000 als reset-time nehmen.

Ich habe nun alle o.g. Einstellungen entsprechend vorgenommen. jedoch ohne Erfolg (mit dem neuen Closed Loop Stepper)
Jedoch ist mir bei der Referrenzfahrt (Z-Endschalter handisch betätigt) aufgefallen, dass bei dieser der CL Stepper völlig normal reagierte.
Anschließend, beim manuellen Verfahren hat er wieder wie vorher (falsch) reagiert.
Es muss also irgendwie mit der Acceleration zu tun haben.
Jedoch habe ich diesen Wert bei der Z-Achse nun mal auf 100 eingestellt und das Problem ist noch immer vorhanden.

Ferner habe ich nun auch 2 x den Latency test durchgeführt.
Währenddessen dann Youtube-Videos angesehen, Fenster verschoben und das sieht für mich jetzt mal gar nicht so schlecht aus.
Es sei denn, ich habe al wieder etwas übersehen...
 


 
Attachments:

Please Log in or Create an account to join the conversation.

More
13 Sep 2023 17:30 #280653 by Jensner

ich würde die Zeilen
addf parport.0.write base-thread
addf parport.0.reset base-thread
addf parport.1.write base-thread
addf parport.1.reset base-thread

so anordnen

[code]addf parport.0.write base-thread
addf parport.1.write base-thread
addf parport.0.reset base-thread
addf parport.1.reset base-thread


und testweise die reset-time hinaufschrauben, z.B. auf 10000.
[/code]

Natürlich auch diese Einstellungen..

Please Log in or Create an account to join the conversation.

More
13 Sep 2023 20:43 - 13 Sep 2023 20:49 #280674 by chris@cnc
Am Rechner scheint es nicht zu liegen. Das sieht gut aus.
Fällt mir nur noch die Velocity und Acceleration auf.
die Max Werte sind auf den Einzelnen Achsen deutlich unter der Basis von [TRAJ] [Display]
Diese Werte würde ich so ausprobieren. Ich weiß nicht was die Stepper können aber sollten die Werte zu hoch sein kannst du es ja in der Display oder TRAJ Section auf 100 oder weniger begrenzen und nicht im Joint. Ich glaube es ist nicht gut wenn der motion planer deutlich schneller unterwegs ist als die Achse. Andersrum ist der motion planer begrenzt bekommt die achse auch nicht schneller ihre pulse.


[DISPLAY]
DEFAULT_LINEAR_VELOCITY = 500.00 -> 200
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 5000.00 -> 200

[TRAJ]
DEFAULT_LINEAR_VELOCITY = 500 -> 200
MAX_LINEAR_VELOCITY = 5000.00 ->200

[AXIS_X]
MAX_VELOCITY = 47.8830645161 -> 200
MAX_ACCELERATION = 50.0 ->200

[JOINT_0]
MAX_VELOCITY = 47.8830645161 ->200
MAX_ACCELERATION = 50.0 -> 200
STEPGEN_MAXACCEL = 62.5 -> 250


setp parport.0.reset-time 5000

setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
Last edit: 13 Sep 2023 20:49 by chris@cnc.

Please Log in or Create an account to join the conversation.

More
14 Sep 2023 08:04 - 14 Sep 2023 08:33 #280709 by Jensner

Am Rechner scheint es nicht zu liegen. Das sieht gut aus.
Fällt mir nur noch die Velocity und Acceleration auf.
die Max Werte sind auf den Einzelnen Achsen deutlich unter der Basis von [TRAJ] [Display]
Diese Werte würde ich so ausprobieren. Ich weiß nicht was die Stepper können aber sollten die Werte zu hoch sein kannst du es ja in der Display oder TRAJ Section auf 100 oder weniger begrenzen und nicht im Joint. Ich glaube es ist nicht gut wenn der motion planer deutlich schneller unterwegs ist als die Achse. Andersrum ist der motion planer begrenzt bekommt die achse auch nicht schneller ihre pulse.


[DISPLAY]
DEFAULT_LINEAR_VELOCITY = 500.00 -> 200
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 5000.00 -> 200

[TRAJ]
DEFAULT_LINEAR_VELOCITY = 500 -> 200
MAX_LINEAR_VELOCITY = 5000.00 ->200

[AXIS_X]
MAX_VELOCITY = 47.8830645161 -> 200
MAX_ACCELERATION = 50.0 ->200

[JOINT_0]
MAX_VELOCITY = 47.8830645161 ->200
MAX_ACCELERATION = 50.0 -> 200
STEPGEN_MAXACCEL = 62.5 -> 250


setp parport.0.reset-time 5000

setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
 
 

hallo,

ich habe jetzt diese Werte mal testweise eingestellt.
Hier bekomme ich auf allen 3 Achsen  nahezu sofort einen "error - Motor [X] Positionsfehler" ([X) steht für 0, 1 oder 2)
Sind denn hier die Beschelunigungswerte nicht viel zu hoch?
Wenn ich das richtig interprätiere, fahren die Stepper doch mit diesen Werten schlagartig von 0 auf 200?



Gruß Jens
 
Last edit: 14 Sep 2023 08:33 by Jensner.

Please Log in or Create an account to join the conversation.

More
14 Sep 2023 08:11 - 14 Sep 2023 08:11 #280710 by Jensner
Kurzer Zusatz.
Auch mit verringerter Acceleration (50) beschleunigt die jeweilige Achse kurz und läuft dann ebenfalls nach ca. einer Sekunde in die o.g. Fehlermeldung.

Gruß Jens
Last edit: 14 Sep 2023 08:11 by Jensner.

Please Log in or Create an account to join the conversation.

More
14 Sep 2023 09:26 #280719 by rmu
Die Beschleunigungen und Geschwindigkeiten von den stepgens müssen ein wenig über den Werten der Achsen liegen, empfohlen werden glaub ich 10%. Ansonsten läuft man in diese Positions-Fehler, da die Motoren der Achse nicht folgen können wenn die stepgen-Werte kleiner sind.

Please Log in or Create an account to join the conversation.

More
14 Sep 2023 14:59 #280747 by Jensner
Hallo,

ich habe heute mal ausgibig getestet.
Erkenntnisse
1: Ich haber viel zu wenig Ahnung von LinuxCNC ;o)
2. Die Probleme mit dem Closed Loop Stepper gibt es immer nur im Eilgang (Manuelles Verfahren)
Sobald mit G1-Befehlen mit moderater Geschwindigkeit gearbeitet wird, funktioniert der CL Stepper ganz normal
3. Auch beim CL Stepper verändert sich der Nullpunkt im Laufe des Programmes,
(Andere Parallelportkarte, anderes Breakout-Board)
Deutlich zu beobachten war dieses Verhalten sobald ein G0 - Z... Befehl (Eilgang) im Code stand!
(Leider kann ich diese Befehle in  Fusion 360 nicht vollständig unterdrücken)

Logisches Schlussfolgerung
das Problem hat, wie viele von Euch auch mehrfach vermutet hattet, offensichtlich weder etwas mit dem Stepper der Z-Achse, noch mit der Lewetz-Steuerung zu tun.
Da ich nun auch auf beiden Parallelport-Karten mit unterschiedlichen Steuerungen und Motoren das gleiche Problem hatte, bleibt nur noch ein Problem mit dem Rechner selbst oder, was naheliegender ist, hier gibt es wohl ein Problem bei den Parametern in der ini.

Gut, dass ich den Closed Loop Stepper nur in einer kleinen Test-Verkabelung angeschlossen und nicht meine komplette Z-Achse umgebaut hatte. Somit kann ich mich nun mit vorhandener Steuerungs- und Antriebs-Hardware weiter durcharbeiten.

Die Frage wäre nun, wo ich hier anfangen soll..
Was für mich leider noch immer nicht logisch ist, warum nur die Z-Achse und nicht alle...

Gruß Jens

Please Log in or Create an account to join the conversation.

More
14 Sep 2023 15:10 #280748 by Jensner
Nächster Schritt.
Ich hatte mit vor ein paar Wochen einen Optiplex GX980 mit Onboard-Parallelport zugelegt und auch schon LinuxCNC installiert.
Der wird jetzt testweise angeschlossen und dann schaue ich mal ob das Problem evtl. weg ist.

... Es bleibt spannend.

Gruß Jens
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

More
14 Sep 2023 19:08 #280766 by chris@cnc
Ich glaube nicht das es an dem Rechner liegt. Es ist mehr das zusammenspiel der Parameter
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000
MAX_VELOCITY = 100.0
MAX_ACCELERATION = 100.0
SCALE = 320.0
Ich habe mal etwas im Simulator mit den Prametern gespielt. Und mit einer Acceleration von 50 beobachte ich auch im Simulator ein nachlaufen. 
Je höher dein Scale ist umsomehr Pulse muss stepgen auch über die Parallele Schnittstelle an den Stepper bringen. Diese kommt aber schnell an die Leistungsgrenze. Ich konnte auch sofort der Fehler "Positionsfehler" ([X)" bobachten. Verringere ich z.b. den Scale auf 100 funktioniert es auch mit einem Velocity und Acceleration von 100 oder 200. Zweiter Test war den BASE_PERIOD = 100000  auf z.B. 50000 zu verringern. Damit trat der Fehler "Positionsfehler" ([X)"  auch nicht mehr auf.
Leider habe ich überhaupt keine Praktische Erfahrung mit den Steppern und kann keine Tuning Empfehlung geben. Nur würden Servos an einer Parallelen Schnittstelle keinen Sinn machen, da du so kastrieren musst dass der Vorteil einem Stepper gegenüber wider verloren geht.
Ich denke wir sollten irgendwie diese Werte sauber einstellen und dann die Beschleunigung und Eilgang  25% unter  Alarmgrenze einstellen.
Mit welchen Parametern ist diese Steuerung früher gelaufen?
Leider kann ich diese Werte auch nicht wirklich berechnen.
Im Handbuch steht das beschrieben. Und den "TRAJ_PERIOD = 100000" habe ich noch gar nicht gesehen?
linuxcnc.org/docs/stable/html/config/ini...html#_emcmot_section
Mein Vorschlag wäre
BASE_PERIOD = 50000
SERVO_PERIOD = 1000000
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 50.0
SCALE = 320.0

setp parport.0.reset-time 5000

setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000

Funktioniert es mit den Werten?

Please Log in or Create an account to join the conversation.

Time to create page: 0.338 seconds
Powered by Kunena Forum