Retrofit Aciera F35 CNC, Axis don't stand still

More
12 Dec 2020 18:32 #191762 by Rx13bTT
Hello everybody. I’m new here.

I need help with basic setup.

At first a bit of introducing of my project.
I have bought at the beginning of the year an old Aciera F35 CNC to make it work with LinuxCNC.
I'm be a good car mechanic but I have no experience with CNC.
Before I started I was thinking it would be possible for me to set it up, but now it shows me my limits.

Over the last months I setup the Hardware stuff.
I have install 3 Granite Devices Argon drives with new Rotary Encoder (5000) on the Servos.
The original glass scales are connected over a SIN/COS signal converter to my Mesa 7i95. The goal is to have a dual closed loop system. After some small wiring correction it looks like everything is right.

The Argon Drives are tested and tuned like it is written in the manual. I can move the axis without problems.

Over the last weeks I tried hard to get LinuxCNC work correct. I read a lot of posts and of course the LinuxCNC manual. Also have looked into some YouTube videos (thank Talla83)
to understand the hal and ini files.

My Problem:
The axis is swings back and forth. Mostly tested with the x-axis. HAL and INI is may not right for the other axis.
As I started with tuning the axis the swinging distance is rising more and more every time it change the direction till the follow error was too big.
I spend a lot of time in the PID controller tuning. My temporarily values looks like they are very high. I need lot of I and D for stop the swing up.
Now the follow error is a much smaller but still no standstill after the jog.

Please, can someone give me some advices?
I have no more idea how I can fix my problem.

Thanks in advance
Reto

File Attachment:

File Name: AcieraF35_...2-12.ini
File Size:4 KB

File Attachment:

File Name: AcieraF35_...2-12.hal
File Size:15 KB
Attachments:

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

More
12 Dec 2020 19:12 #191767 by tommylight
Did you tune the Argon drives as follows:
-torque mode
then
-velocity mode
and finally
-position mode.
You have to go through all of them to get them running properly, but first make sure the number of poles is correct, then start tuning.
Finally, only after having the above fixed, start the LinuxCNC tuning, this should be fairly easy if the above is OK.

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

More
13 Dec 2020 09:31 #191833 by Rx13bTT
Thanks tommylight.

I think the Argon Drives are well tuned. I double checked it.
At first I use the torque mode to tune and after that the velocity mode tune. I have followed the instructions from Granite Devices and EUSurplus
I don't go truth the position mode tune because I think I want go with the velocity control mode.
Right decision?

You can't know it, but my Servos are brushed DC. They are original fitted on that machine (BBC/CEM FDE T4C4B3 200V/12.8A/~2.5kw).
So no pole count necessary.
Or am I wrong?

I can do any moves out of the Granity Software. In Velocity mode and also in position mode. The axis moves nice and stops at the exact point. No overshot or swinging.

So I think my problem is in LinuxCNC.

I use step/dir from the Mesa 7i95 to the Argon Drives.
How can I do a correct setup of the step/dir time parameters in the ini?

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

More
13 Dec 2020 10:27 #191840 by tommylight
Using Mesa 7i95 requires the drives to be in Position mode, Velocity mode will work with 7i77.
With the drives in position mode, disconnect the glass scales physically or in hal, the machine should work properly like any stepper system.
Only then connect the glass scales and tune the system, it should be fairly easy just use some reasonable values for acceleration.
It is imperative that you get the machine working as a stepper system before using the second feedback system as that will show if the drives are tuned to a usable level.
Another thing i recalled, do have another PC connected and monitoring the ARGON drives/software, they do have a tendency to show as properly tuned but when stationary the current going to motors is very high, in the range of 6 to 9A, and that is not good at all. Stationary the current should be in the 1A range until you move them by hand, at that point they should draw more current but should go back to low current once they are not being forced to move.
This might not be an issue in your case since you are using DC motors, it was a huge issue when i was using them with 3 phase brushless Yaskawa motors.
And there is also the issue of Argon using RS485 for communication at a fairly fast rate, so when the drives would be enabled by the control PC, the comms would fail due to the interference caused by the drives themselves, and that made for some lengthy monitoring and tuning sessions.
The following user(s) said Thank You: Rx13bTT

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

More
13 Dec 2020 13:20 #191856 by PCW
FF1 should be exactly 1.000 if the encoder and step /dir scales are correct
You should not need any I or D for initial tuning
The following user(s) said Thank You: Rx13bTT

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

More
13 Dec 2020 15:17 #191867 by chris@cnc
Hi,
your PID and F Parameter in ini are real strange. To compare, i use Delta B2 Servodrive on Z-Axis and tune from linuxcnc near zero. Because the Delta Servodrive Software are much better in tuning and adjust some more parameter. I think in your case same situation.
Second looks your encoder section in hal also very strange. X and Y axis are confused for me. I add my hal encodersection to.
Try this Paramter for your card and it should be working.

My ini

[JOINT_3]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 200.0
MAX_ACCELERATION = 400
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 230
STEPGEN_MAXACCEL = 500
P = 5
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
ENCODER_SCALE = -400
# these are in nanoseconds
DIRSETUP = 1000
DIRHOLD = 1000
STEPLEN = 1000
STEPSPACE = 1000
STEP_SCALE = 800
MIN_LIMIT = -400.0
MAX_LIMIT = 1.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 5.000000
HOME_LATCH_VEL = 1.00000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_SEQUENCE = -1


My hal
# ---Encoder feedback signals/setup---

setp hm2_7i76e.0.encoder.00.counter-mode 0
setp hm2_7i76e.0.encoder.00.filter 1
setp hm2_7i76e.0.encoder.00.index-invert 0
setp hm2_7i76e.0.encoder.00.index-mask 0
setp hm2_7i76e.0.encoder.00.index-mask-invert 0
setp hm2_7i76e.0.encoder.00.scale [JOINT_3]ENCODER_SCALE

net z-pos-fb <= hm2_7i76e.0.encoder.00.position
net z-vel-fb <= hm2_7i76e.0.encoder.00.velocity
net z-pos-fb => joint.3.motor-pos-fb
net z-index-enable joint.3.index-enable <=> hm2_7i76e.0.encoder.00.index-enable
net z-pos-rawcounts <= hm2_7i76e.0.encoder.00.rawcounts
The following user(s) said Thank You: Rx13bTT

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

More
13 Dec 2020 16:30 #191872 by Rx13bTT
A big step forward, thank you tommylight

I tested only for short but it looks promising.
My workshop is a bit cold at the moment.

I opened the loop with changed the position feedback in hal to stepgen.00.feedback-fb. Also changed the step_scale to -4000 to have it in the right scale. It is now possible to make jog without any problem. The positioning at the end of the jog is good and no swinging. Naturally I need to retune the Argon and LinuCNC. The servo does not sound smooth.

I will trie to reconnect the glass scales later.

Did I need the fb/cmd_deriv signal in my hal?



Do I understand it right, step/dir is only for position control (stepper system) and the velocity control is only with analog signal useable? Is it a advantage for me to have it at the end in velocity mode? Should I change to a analog card like Mesa 7i77?
I have reading that velocity control is the best way to do a dual closed loop system.

Thanks for the additional information about the Argon Drives.
At stationary the current is around 0.5A.

Thanks PCW for the notice.

Thanks chris@cnc. I will compare it.

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

More
13 Dec 2020 17:59 #191879 by tommylight
-Tune the drives on their own,
-Make a new stepper config using pncconf, set the scales and accelerations and velocities to what you would roughly need,
-Do some fine tuning if required
After having that working properly and motors running smoothly and stopping on a dime, then do another stepper config with pncconf but this time with encoder feedback. The values should now be the same as the ones in the previous config.
If i remember correctly, pncconf will make a fully functioning stepper with encoder config but will need one line for each joint/axis removed. Been quite some time since i did that, so might not be needed now, either way LinuxCNC will throw an error pinpointing the exact line that has to be removed.
As for analogue vs step/dir, personally i prefer the analogue, but in your case the best solution is as you have it, one loop closed in the drive and the other in LinuxCNC. This is also the easiest to tune and set up.
Do not change the card.
0.5A stationary is very nice, but do check if that is the case after some short moves and after forcing the motor to move by hand.

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

More
13 Dec 2020 19:11 #191889 by PCW
Also, if you look closely at your plot, there is almost a 100 millisecond
delay from the commanded motion to the encoder feedback, indicating
actual motion. I suspect that this is some delay or filtering enabled
in the drive setup. You will not be successful with tuning if the drive
does not respond _much_ faster that this to external commands.

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

More
10 Jan 2021 13:30 #194723 by Rx13bTT
Now I made my first chips :)
Thanks a lot, guys!
It was a tuning problem.
Now it is mostly fine. I needed to add some more deadband like 0.001mm and more. It is, I think, needed by the 0.005 mm resolution of the glass scales is not fine enough. Specially the Y-Axis moves in a micron-range at still.
I added my last hal and ini.
Attachments:

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

Time to create page: 0.134 seconds
Powered by Kunena Forum