Retrofit Gloria Europa 2/40 machining centre
Since the loop is closed on the driver I tried pure stepper configuration, this is an excerpt.
setp hm2_5i25.0.stepgen.00.control-type 0
net x-pos-cmd <= axis.0.motor-pos-cmd
net x-pos-cmd => hm2_5i25.0.stepgen.00.position-cmd
net x-pos-fb => axis.0.motor-pos-fb
net x-pos-fb <= hm2_5i25.0.stepgen.00.position-fb
Then I tried the setup with the feedback encoder without PID, I know that this setup does not give good results, I tried it out of curiosity.
setp hm2_5i25.0.stepgen.00.control-type 0
net x-pos-cmd <= axis.0.motor-pos-cmd
net x-pos-cmd => hm2_5i25.0.stepgen.00.position-cmd
net x-pos-fb => axis.0.motor-pos-fb
net x-pos-fb <= hm2_5i25.0.encoder.00.position
The final configuration should be the most correct, PID with encoder and velocity control type.
setp hm2_5i25.0.stepgen.00.control-type 1
net x-pos-cmd <= axis.0.motor-pos-cmd
net x-pos-cmd => pid.x.command
net x-vel-cmd <= axis.0.joint-vel-cmd
net x-vel-cmd => pid.x.command-deriv
net x-pos-fb => pid.x.feedback
net x-pos-fb <= hm2_5i25.0.encoder.00.position
net x-pos-fb => axis.0.motor-pos-fb
net x-output => pid.x.output
net x-output <= hm2_5i25.0.stepgen.00.velocity-cmd
the accelerations. The value then drops during the movements but only at low speed.
At high speed PID is not able to correct the error quickly enough so that it remains high (not below 4/5).
These are the acceleration, maximum speed and PID parameters:
MAX_VELOCITY = 500.0
MAX_ACCELERATION = 2000.0
STEPGEN_MAXVEL = 625.00
STEPGEN_MAXACCEL = 2500.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
I searched the forums to find configurations similar to my driver, but I could not find anything.
Maybe I have not looked properly. If anyone has any advice I would be happy.
Please Log in or Create an account to join the conversation.
if so are the INPUT_SCALE and OUTPUT_SCALE identical as well?
edit:
if they are not identical , the INPUT_SCALE and OUTPUT_SCALE parameters must be scaled to match
Please Log in or Create an account to join the conversation.
- 10mm pitch ball screw
- steps for rev: 10000
- encoder counts for rev: 2500
So if I'm not wrong, we have:
10000/10 = 1000 step for mm
2500*4/10 = 1000 pulse per mm
but in my ini file i don't have INPUT_SCALE and OUTPUT_SCALE parameters, i have
ENCODER_SCALE = 4000.0
STEP_SCALE = 1000.0
But now I see that the ENCODER_SCALE is wrong, I have to put 1000.0 in this parameter right? I must have been out of my mind.
Which configuration is best to use of the three I tested? The one with encoder, PID and StepGen in velocity mode seems to me the best, can you confirm that?
Thank you.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
We ran some tests with centesimal gauges, machine movements are correct as final coordinates, but the ferror value
remains very high (> 10) at the beginning and during the high-speed movement, then to zero at the end of the movement.
I do not know what else I could do, maybe changing the PID parameters can improve but I'm not sure of being able to
correct such a high error.
Another problem is related to a small oscillation axis, it is a swing of 0.001 / 0.002mm therefore very small. The problem
is solved by setting DEADBAND = 0.000125. It is a correct solution or is it better to lower the P gain (actually I have P=1000)?
Please Log in or Create an account to join the conversation.
the ferror value
remains very high (> 10) at the beginning and during the high-speed movement, then to zero at the end of the movement.
Is that 10mm? That does seem high, even for rapid movements.
However, if the position doesn't over-shoot it might be something you can live with, as the machine will not engage the work during a rapid move.
Please Log in or Create an account to join the conversation.
This sounds like a setup error of some kind
Also a halscope plot of the commanded and actual position during a move would help diagnose the issue
Please Log in or Create an account to join the conversation.
Is that 10mm? That does seem high, even for rapid movements.
I think 10 is 10mm, the value is taken from halshow, and in any case I had to put FERROR = 10 in INI file
to avoid error message on jogging.
However, if the position doesn't over-shoot it might be something you can live with, as the machine will not engage the work during a rapid move.
Position doesn't over-shot, the big problem is to find the max speed for working movements which ensures a low enough
FERROR value, the 10mm ferror occurs at max speed (30mt/s) but the error is directly proportional to the speed so at 4/5mt/s
I get errors > 1/1.5 mm, at 1,5/2mt/s the error is > 0.5/1mm and so on.
These values all seem very high compared to default FERROR and MIN_FERROR values in INI file (0.01 and 0.001),
so I'm not sure what is the maximum safe speed for machining.
Still do not know what else to do, I will try to play with the PID values and then I will do some interpolation tests to verify the actual error.
Thank you for your time.
Please Log in or Create an account to join the conversation.
Can you post your complete HAL and INI files?
This sounds like a setup error of some kind
Also a halscope plot of the commanded and actual position during a move would help diagnose the issue
Hi PCW, thanks for your help.
I'm off to work until Monday, when I will be back I will send the configuration files and plots of halshow
I hope you see what I can not see
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.