IHSV57 Servos mit Stepgen PID und Glasmassstab

More
22 Mar 2022 19:26 #238028 by thomas61
Hallo zusammen,
ich bin  neu in diesem Forum und hoffe, dass mir jemand bei meinem Problem weiterhelfen kann:

Ich habe eine alte Fräse auf CNC umgebaut
- Kugelumlaufspindeln an jeder Achse,
- pneumatische Unterstützung für die Z-Achse ( wiegt ca. 200kg )
- Glasmasstäbe je Achse ( 200 Striche / mm )
- IHSV57 Servos
- linuxcnc 2.8
- 6i25 mit eigenem Bitfile
- eigene BOB
- Motor Inverter mit RS485
- Silverdragon auf Touchscreen 1280 X 1024 angepasst
- und wohl noch einige Dinge mehr

Mein Problem:

die Servos haben einen internen PID-Regler, werden durch Takt und Richtung - wie ein Schrittmotor- angesteuert,
der interne Sensor hat hardwareseitig 1000 Strich / Umdrehung
ich nutze diese Auflösung ( DIP-Schalter ) -> 1000 Pulse pro Umdrehung
durch Übersetzung ( Zahnriemen ) und Spindelsteigung ( 5mm ) komme ich auf 0,001 mm pro Puls
den Internen Regler habe ich für meine Maschine optimiert

die Spindeln haben ein Umkehrspiel von ca 0.02 mm

betreibe ich die Servos nur via die Stepgeneratoren, positionieren die Achsen augenblicklick - jedoch +- Umkehrspiel
programmiere ich BACKLASH , positionieren sie auch sehr präzise, jedoch habe ich im DRO eine Anzeige +- Umkehrspiel,
auch beim Zeroing der Achsen wird immer der Backlash im DRO angezeigt - niemals 0.000.

betreibe ich die Servos zusätzlich über den PID-Regler mit Glasmassstab als Rückkopplung arbeien die PID des Motors und
von Linuxcnc in den letzten 1/10 mm gegeneinander - die Motoren pendeln um den Soll-Wert für teilweise eine Sekunde,
bei programmierten BACKLASH verfährt die Achse sogar um den BACKLASH-Wert weiter

Wie kann ich die Servos im ClosedLoop ohne PID betreiben
Oder kann ich den PID Regler so einstellen, dass er nur die Korrektur der Schritt-Signal-Anzahl vornimmt ?


Um es möglicherweise für Forumteilnehmer zu erklären, die keine Erfahrungen mit den IHSV-Servos haben:

Man stelle sich eine Maschine vor, die mit Schrittmotoren besückt ist, bei der es keine Schrittverluste gibt, die jede
Position in der gewünschten Geschwindigkeit erreicht, dedoch via Messystem alle mechanischen Fehler ausbügeln kann.

Sollte die von mir gewünschte Konstellation nicht möglich sein, wäre ich für Tipps dankbar, wie man Stepgen für
derartige Einsatzfälle anpassen kann ( welche Sourcefiles sind hierbei zu beachten )

Vielen Dank für Eure Antworten !!!
 

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

More
13 Apr 2022 10:37 #240130 by tommylight
Step/dir control ist position control.
Fuhr die closed loop im LinuxCNC mit glassmass.... muss die stepgen im velocity mode sein und die glass.... als feedback zu nutzen.
Es gibt ein paar beispiele im forum, aber bin im mobil und kan nicht das finden zur zeit.

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

More
13 Apr 2022 17:23 #240165 by thomas61
Hallo tommylight,
first of all, i thank you for your reply,
but is there a way to get steppers working in velocity-mode without PID control,
i can't find a pin to connect the x-vel-fb to joint.0.motor.???

in the attachments you can find my .hal and .ini,
for axis x, i set the config to velocity control ( for testing), but i got a following error.
axis Y and Z are in position control, it works with BACKLASH, but with this configuration the DRO is offsetted by a fraction of the BACKLASH and Homing never results in 0.000

What to do ?
 
 
Attachments:

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

More
13 Apr 2022 19:56 #240179 by tommylight
In your config only axis A has PID settings in it, X does not so it will not work in velocity mode.
In general:
-step/dir controlled servos are steppers as far as LinuxCNC is concerned, as such can be driven with or without PID, PID is better
-velocity control does not work without PID,
-closing the loop in LinuxCNC does not work without PID
-step/dir control in velocity mode with encoder feedback requires PID tuning, so not as simple as "wire and run"
--
With that out of the way, PncConf does a great job of making a usable config for step/dir with encoder feedback for sure, there was only one line that had to be change in hal for each joint/axis back when i used it so not sure what.
Make a new config, test it as is, se if it works, then we can change the feedback to encoder/scales and move on with tuning.
--
Found the config, it is for a Mesa 7i92, and there is a single line in the hal file to be omitted for each axis/joint. Also noticed there was not much tuning done, so the above might need a double check.
Attachments:

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

More
27 Apr 2022 21:40 - 28 Apr 2022 11:45 #241405 by strahlensauger
I also have ihsv57 Servos and connected linear scales to x and y axis, a 7i76e and attached a 7i85.I tried your example, but each time I comment out the line

#net x-pos-fb     <= [HMOT](CARD0).stepgen.00.position-fb

I get positon errors immediately.

I have 5µm Glasscales, so I set
ENCODER_SCALE = 200
I hope that is correct.
I'm not getting closer, help would be appreciated.
Attachments:
Last edit: 28 Apr 2022 11:45 by strahlensauger.

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

More
03 May 2022 15:55 - 03 May 2022 15:58 #241926 by strahlensauger
@thomas61
Bist du mit den ihsv57 und Glasmaßstäben weitergekommen? 
Ich komme hier gar nicht so richtig weiter, ich vermute, dass die PID von den Steppern  und die PID von Linuxcnc 
gegeneinander arbeiten. Ich weiss aber auch nicht, ob man die PID der servos deaktivieren kann, das wäre vielleicht am einfachsten....


Did you get any further? I am still struggling configuring the servos, PID from Linuxcnc and PID from steppers might interfere. Deactivating the PID in the steppers might be an easy way to succeed...
Last edit: 03 May 2022 15:58 by strahlensauger.

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

More
03 May 2022 16:56 - 03 May 2022 16:59 #241934 by chris@cnc
Hallo,
ich möchte lösen...
Bei Thomas ist die ini unvollständig. Wie Tommy schon sagte, hat nur die A-Achse PID Parameter. Das heißt alle anderen Achsen werden überhaupt nicht geregelt. Zweitens ist die Zeile "net x-output     <= [HMOT](CARD0).encoder.00.count" merkwürdig.
Bei mir  "net x-output     <= hm2_7i76e.0.stepgen.00.velocity-cmd". 
Ohne Scales und bei  "SERVO_PERIOD = 1000000" ist "PID = 1000" und FF1 = 1 eine gute Wahl.  Der Rest 0 für den Anfang.
Mit Scales wird es schwieriger. Es hängt sehr davon ab wie gut der interne Regelkreis vom Servo ist. Bei den kleinen JMC's habe ich bei mir PID = 60.
5µm  Scale = ENCODER_SCALE = 200 ist richtig
Um die Scales und Step_scale vom Motor zu überprüfen Zeile
"net x-pos-fb               <=  [HMOT](CARD0).encoder.00.position" ausklammern und 
und das feedback vom Stepgen einschalten "net x-pos-fb     <= [HMOT](CARD0).stepgen.00.position-fb".
Dann in Halshow command position , feedback position und encoder position vergleichen. Wenn alles passt laufen sie parallel.


 
 
Last edit: 03 May 2022 16:59 by chris@cnc.
The following user(s) said Thank You: strahlensauger

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

More
03 May 2022 20:29 - 03 May 2022 20:38 #241939 by strahlensauger
Danke erstmal für die Antwort.

immer wenn ich
#net x-pos-fb      [HMOT](CARD0).stepgen.00.position-fb
auskommentiere und das Feedback an den Glasmaßstab übergebe
net x-pos-fb               <=  [HMOT](CARD0).encoder.00.position
bekomme ich sofort Positionsfehler.
Die Differenz zwischen den scales und dem pid.x.command liegen bei 0.005 mm
pid.x.command 27.5025
pid.x.feedback 27.5025
hm2_7i76e.0.encoder.00.position 27.495

Woher diese Differenz kommt ist mir allerdings unklar, da die Differenz auftritt,
unabhängig ob vorher ein homing durchgeführt wurde oder nicht.
Mein Problem ist, dass ich die PID Werte kaum ausprobieren kann, da alles sofort steht.

Mit einer neuen Datei mit  pncconf kann ich beim Achsen tunen den P Wert verstellen, allerdings
oszilliert das System bei fast jedem Wert.

Ich bin ein wenig ratlos, vermutlich benutzen wohl nicht allzu viele die ihsv57 mit Glasmaßstäben,
denn man findet dazu recht wenig.
 
Attachments:
Last edit: 03 May 2022 20:38 by strahlensauger.

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

More
03 May 2022 20:48 #241940 by PCW
Mit Encoder-Feedback werden Sie wahrscheinlich haben müssen
ein ziemlich niedriger P-Term (abhängig von den Verzögerungen im Antrieb)

Ich würde mit 5 oder 10 anfangen
The following user(s) said Thank You: strahlensauger

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

More
03 May 2022 21:21 #241945 by strahlensauger
Even with P=1 the system is oscillating. When I try to use the scope in pncconfig in tune axis it doesn't show any signals...

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

Time to create page: 0.200 seconds
Powered by Kunena Forum