Vectrac CNC Knee mill refit from Fanuc 0M to Camsoft

Jim,


This is an open letter to you. Sorry about the length. Take your time to respond.

I have unacceptable acceleration on my mill. Got to fix before putting it to work. other than this, I think its ready to go. As you well know, I've had a HORRIBLE time with DMM setup. I find the manual **** poor and flat out misleading at times for torque servo setup. (looks to be pretty good for pulse direction)

I want to go through each setting to find the problems. First, look at DMM settings.jpg for my X axis. I want to go through each one.

First, I got Main, speed and integral gain by running the DMM auto servo tune. I am real tempted to only set a main gain, with speed and integral at 0. Then tune in WSDK. I think we got two smart controls fighting each other. your opinion?

Torque filter constant is set at 100. Do not know why I set it this high and don't completely understand its use. Is it the about the same as galil PL? Where should it be set? Again, I am tempted to set it real low and then tune in Galil - two controls fighting.

I have max acceleration set at a very low value - 4. Real likely to be a problem. look at the snip from the manual on max accel. I find it totally confusing on what setting is right.

max speed is set at 60. Learned the HARD WAY, this is actually servo dead band. i am pretty sure 60 is correct.

Also learned the HARD WAY that OnPosrange is dead zone center value, and the setting of 65 should be correct.

Gear number documentation is confusing to me. Some sections imply it does not apply to torque servo. I know better, the machine will not run with a setting of 500 - BTDT. other sections say it max motor RPM at 10 volt input in analog modes, that is why I tried 500 RPM to give a max speed of 100 IPM on the machine. Know what this really does???

Line Number is currently set at 2048. this could be part of the accel problem as it just gives too many pulses per inch of 40960. then its up against the max accel parameter in Camsoft of 99999. I see minimum value in torque servo of 500. This would give 10000 pulses per inch. I plan to make this change.

SO, WHAT ELSE AM I MISSING???

I clipped every manual section of interest.
 

Attachments

  • DMM settings.JPG
    DMM settings.JPG
    94 KB · Views: 7
  • DMM gearing.JPG
    DMM gearing.JPG
    72.3 KB · Views: 8
  • DYN4 Servo Drive Firmware Release Notes Nov 22, 2017-1.pdf
    166.7 KB · Views: 0
  • line_number.JPG
    line_number.JPG
    63.8 KB · Views: 4
  • max accel speed.JPG
    max accel speed.JPG
    93.5 KB · Views: 4
  • MaxSpeed  OnPos GearNum.JPG
    MaxSpeed OnPos GearNum.JPG
    129.7 KB · Views: 4
  • P I D torque settings.JPG
    P I D torque settings.JPG
    204 KB · Views: 4
Karl, you are making me get out of my chair and actually go out to the machine and get the numbers I'm using. :grin: I'll do that later.

It looks like you have an updated manual. The descriptions are a bit less confusing than the one I have, also looks like the DMMDRV software has been updated from my version. Maybe Michael took my advice and worked on the descriptions in the manual. I'll download the latest versions.

I had to bump up the KP value in the Galil to ~100 to get the acceleration up, and I'm pretty sure I have the acceleration set to > 1,000,000.

After running the DMM auto tune, then I tuned the Galil. I have yet to figure out how to take all of the control away from the DMM and give it 100% to the Galil. I need to get another DMM servo in here to play with.

Here is a Galil routine that I use for tuning, I have never used the WSDK
#TEST
'PUT START UP STUFF HERE. ENABLE, SPEED, ETC.
WT (as needed)
#A
IPX=100000 'ENOUGH PULSES TO MOVE THE TABLE 4 OR 5 INCHES
WT 1000 'WAIT 1 SECOND
IPX=-100000 'MOVE THE TABLE BACK TO THE START POSITION
WT 1000 'WAIT 1 SECOND
JP#A 'LOOP

While this is running I am manually changing the KP, KD, SP, AC, and DC parameters, from the terminal screen. Note: the DC parameter can only be changed while WAITING. Once I'm happy, then I just note the parameter values and put them into my parameter file.


I'll get the actual numbers after I've had enough coffee. o_O
 
OK, here are the numbers for my lathe, we are almost comparing apples and oranges here. DMM 1.8KW servos on the X and Z axis. My lead screws are metric so the pulses/inch is 25400, 10mm lead maybe? I can't get to them without removing covers and that is a big job. I am using the internal DMM encoder output, so Line Num = 2000, should be 8000 pulses per revolution. I don't have linear scales on this machine.

The mass of the X axis (cross slide) is maybe around 500KG and the Z axis is the X axis plus the carriage so maybe around 800 - 1000 KG total moving mass. These numbers are just an educated guess, but there is a lot of iron in there. The whole machine weighs around 4600 KG. (10,200 lbs)

These numbers give good performance without beating up the machine. The Z will hit 400 IPM in about 1.5 inches on a rapid move. I have it limited to 400 IPM, it will go faster. I only have about 9 inches of Z travel.

I have never had to set the KP and KD this high before. But it settles to +/- 1 encoder pulse.
ACX=1355840
DCX=1355840
KPX=60
KIX=0
KDX=160

ACZ=1016560
DCZ=1016560
KPZ=55
KIZ=0
KDZ=180

and the screen shot for the X axis, I didn't grab the Z But based on what you said above, my Max Speed could be set wrong. I

1570313364623.png

I'll be happy to try to answer any questions. I really need to set up a test bench for the DMM servos so I can really understand how to set them up. They are the most difficult servos to set up that I have ever worked with, and I have hung Galil cards on a lot of different servos. But they are inexpensive and seem to work very well. Just going to have to buy another 1.8KW setup I guess.
 
OK, lets break the big problem into smaller steps. first verify what are the best settings for the DMM servo setup.

Below is all the info I can find on Max acceleration. The jist is it provides a soft start, something I do NOT want. But i do not see how to set it. Does this text mean anything to you?

<EDIT> on third+ reading I see max accel is in the denominator so a larger value will give quicker response??


next is torque filter. We both have it at 100. If I understand correctly, consideration should be to go even higher - 127. Do you agree?

Your lathe has far less steps per inch and 10X the acceleration. I am up against the Camsoft upper accel limit and cannot go higher. So, I am pretty sure i should go to the min setting on line number. I read 500 SOMEPLACE, cannot find it again. Agree?

I am thinking make these changes then run DMM servo tune.
 

Attachments

  • max accel in speed servo mode.JPG
    max accel in speed servo mode.JPG
    131 KB · Views: 2
  • Max acceleration.JPG
    Max acceleration.JPG
    61.9 KB · Views: 2
  • torque filter info.JPG
    torque filter info.JPG
    76.3 KB · Views: 5
Last edited:
OK, lets break the big problem into smaller steps. first verify what are the best settings for the DMM servo setup.

Below is all the info I can find on Max acceleration. The jist is it provides a soft start, something I do NOT want. But i do not see how to set it. Does this text mean anything to you?

<EDIT> on third+ reading I see max accel is in the denominator so a larger value will give quicker response??
next is torque filter. We both have it at 100. If I understand correctly, consideration should be to go even higher - 127. Do you agree?

I read it as 1 is the fastest acceleration, but it could be 127. I guess I would try both. Note that mine is set to 12. When using the Galil you would want the acceleration setting on the drive to be set as near to 0 (instant response) as possible, that way the Galil handles the accel/decel curve and the drive just does what it's told to do.

It is also possible that the Torque Filter Constant is fighting with the KP and KD values in the Galil, maybe this is why the values have to be set so high.

Your lathe has far less steps per inch and 10X the acceleration. I am up against the Camsoft upper accel limit and cannot go higher. So, I am pretty sure i should go to the min setting on line number. I read 500 SOMEPLACE, cannot find it again. Agree?

I am thinking make these changes then run DMM servo tune.

Yes, the minimum line setting is 500, that is equal to 2000 encoder pulses/rev. Setting to 500 should increase both speed and acceleration by about factor of about 4 over the 2048 that you currently have set. This is assuming you are using the DMM encoder output as the Galil encoder input.

What is the actual acceleration set in the Galil? Is it maybe different than the CamSoft setting, like a multiplier in there? Read this with ACX=? from the Galil terminal. Is there a way to read the initialization string sent to the Galil from CamSoft and look at the actual values being sent?

Maybe auto tuning the DMM is not the proper thing to do, and the values should all be set to 1 or 127? I'll play with this tomorrow, I can turn my live tool drive without danger, it can free run and has low mass. As you suggested above, it could be a battle between an intelligent controller and an intelligent drive. We just need to dumb down the drive to give all control to the controller.
 
Ok, I will hold off on any trials. See what you can learn. I totally agree, need to turn the DMM into a dumb servo amp.

Camsoft reports that AC and DC is 99328 vs the 99999 set. that's a rounding thing Galil does.

I will spend my time today making Camsoft output position to a file every 100 ms. Then look at the data in excel to measure position, velocity, and acceleration vs time. Then changes can be measured.

Is there a way to report Galil following error? I could add that to the above. That would be VERY INFORMATIVE.

I am thinking of adding galil TT to the report with a eye on playing with Galil FA to boost acceleration. have you ever done this?
 
_TEX gives you the position error. As long as the following error is not excessive, some is needed to keep the system stable. A following error of 0 would not make for a very stable system.

I've never used the FA command, not sure how that works.
 
OK, it pays to be an anal engineer. I collected time in milliseconds, RP,TP, and TT for a ten inch move in G0.

My conclusion is the machine is doing EXACTLY what I'm telling it to do. Just not what I want it to do. :)

The text is the actual data. Velocity is 1000*(RP1-RP0)/(T1-T0). Acceleration is (V1-V0)/(T1-T0) where the 1 means current number and the 0 means the previous reading.

Acceleration is peaking at 100,000 vs Camsoft max of 99,999
max velocity is set at 100,000 right now
TT never goes over 2 volt. These could accel WAY WAY faster

Please look the data over. Any comments or anything else I should look at?
 

Attachments

  • move data.txt
    1.5 KB · Views: 2
  • Velocity.JPG
    Velocity.JPG
    30.4 KB · Views: 3
  • Acceleration.JPG
    Acceleration.JPG
    32.1 KB · Views: 3
  • TP - RP.JPG
    TP - RP.JPG
    31.1 KB · Views: 4
  • TT.JPG
    TT.JPG
    33.7 KB · Views: 6
Is that accel limitation hard coded into CamSoft? Is there a parameter file that can be changed? I can't imagine limiting the Galil to 99,999 on accel. Makes no sense. That is way on the low end of the range, the default setting from Galil is 256K. I normally run stuff in the >250K range. Maybe time for a deep dive into the CamSoft documentation.
 
I went out and played with my lathe a bit. Changing any of the DMM parameters seem to have no effect on anything, I went full range on both the Torque Filter, and Max Acceleration.

It is difficult to do too much because of the way the system is configured, and I can't connect with Galil Tools while my program is running. I'm going to write a module for my software that will allow me to have terminal control like the Galil Tools software. That way I can do everything from my software.

I really need a test bench.
 
Back
Top