Page 1 of 1

Servo tuning question/problems

Posted: Tue Sep 29, 2020 1:26 am
by xdmattz

I've been working on an old Bridgeport VMC (Discovery 308) for about 2 years now, I've got a KFLOP interfaced with a board that I made that essentially looks like a Kanalog with a Konnect - I got one of your Kanalog boards and reverse engineered the serial scheme because the Kanalog board didn't have enough IO or the kind of connectors that were already on all my machine wiring. (And I'm a hardware designer by day so it seemed like fun) But that isn't what my question is about.

This old machine has a Siemens Simodrive 611 Analog Servo drive system. and I've been trying to tune the axis lately. The X and Y axis have been no problem. I was able to tune them right up, generate the Bode plots, make step changes to verify the control loop error. All looks great. The Z-Axis on the other hand is giving me fits. This particular VMC has no counter balance on the head, so the entire weight is supported by the Z-Axis servo motor. When the motor drive is not engaged, there is a brake on the top of the lead screw (24V energized to release). I originally got the all axis running over a year ago and could jog around with the MPG. But then I decided to take everything apart to sandblast and paint. I replaced all the lube system hoses and cleaned everything fairly well. I think this cleaning caused the Z Axis to have less drag,now that all the oilers work properly, and I started to have some problems with the Z axis at startup. I think I was releasing the brake before the control had time to settle and it would "jump" a bit as the head started to fall and quite often the motor drive would either over current, or hit a drive limit, (I'm inferring this from the error LED on the drive) and the drive would turn off. At this point the Z-Axis would fall all the way down. Not very good. I figured out the timing for releasing the brake so now it doesn't over current on startup, but part of what I added to my C program is a monitor of the Axis, so if the Z-axis is disabled (usually by a following error) the brake is re-engaged so the head only falls about 1/4" instead of all the way down. This is the function call, it is in a loop that gets called about every 5ms.

void CheckZFault(void)
// Z_Axis has been disabled...
ClearBit(Z_BRAKE); // turn the Z Axis brake back on - so the head doesn't fall down.

So now I'm trying to get back to tuning the axis, and even though I can jog the Z-Axis up and down with my MPG, And it moves pretty nicely, when I try to do any of the Axis tuning on the Z-Axis, I'm getting a current limit on my axis drive again. I tried all sorts of velocity/acceleration combinations and nothing seems to work. I even swapped out the Z-Axis control module with the A-Axis module - (and learned all about Siemens Parameter Cards - and which dip switch reverses the motor direction). So It occurred to me this evening as I was scratching my head, Is it possible that your Step response and Bode response tests disable and re-enable the axis when they execute? That might explain what I'm seeing.

This is a lot of explanation for a simple question, but I've been trying to figure this out for over a week now,just a few hours each evening, so I've got a lot of pent up frustration,

On another note, I've been trying to make my own "version" of KMotionCNC by following your code but trying to write it in C# WPF. I've got some questions about that too, but I'll wait until I've got the all of the axis running smoothly first.

You can see how well the Z axis works with the MPG here:

Thanks for your time!