pulse frequency of motors (axis)

xyloton

xyloton
Hello guys,

I got an urgent question about the MASSO G3 and the pulse frequency of motors (axis).
Is it true that Masso only supports till a maximum of 125 MHz?

The thing is, I am doing a retrofit of an EMCO MC90/T and I really like to use the Masso G3 controller. But this Emco should run again in a productive area, that s why the change from old Berger Lahr stepper motors to Delta servos with a maximum pulse of 500 MHz with differential line drivers.

I really appreciate your kind replays!
so long,
J rgen
 

zombieengineer

ZombieEngineer
@xyloton - Could you please provide further details of the model of servo motor you are considering?

500 MHz fails my reality check as CD-ROMs have a maximum data pulse rate of about 8 MHz (x50 speed) before the poly carbonate discs shatter (the somewhat useless trivia that I remember - other than once cleaning up the mess when a disc "violently disassembled in service").

A quick check of a random Delta servo motor has a 17 bit encoder (160,000 p/rev) and 3000 RPM (50 rev/sec). This results in 160,000 x 50 = 8,000,000 pulses/sec (8MHz). Increasing to 20 bit encoder should only take it up to around 50MHz (2^20 is slightly more than 1 million).

Where did you get the 500 MHz figure from?

EDIT - Had a look at the Delta ASDA-A3 manual, couple of key points:
  • Maximum pulse input rate of the Delta ASDA-A3 driver is 4 million pulses/sec using differential drive (150,000 pulses/second for TTL signals)
  • The driver has an "E-Gear" ratio parameter that needs to be configured. This is ratio between encoder pulses to CNC controller pulses - this can dramatically reduce the amount of pulses required.

Based on other engineering experience (gas turbine driven electric generators use a magnetic "tone ring" to observe changes in speed faster than once/revolution) - the extra encoder resolution is still used to better control acceleration / deceleration even though the CNC controller steps are more "course" (the example in the manual was a ratio divider of 5592:1 yielding 1 micrometer movement for 1 CNC controller pulse).
 

xyloton

xyloton
@zombieengineer
thx a lot for your reply.
Don t get me wrong - I am doing a retrofit for a productive CNC-machine and I just get confused about (meaningful?) speed.
I really appreciate your answer and ll think about every advice...

I attached the datasheet of the Delta Servos as well for some JMC Servo iHSV86 with 200 kHz.
As well Mach4 should dissolve up to 4 MHz (Mach3 2 MHz)

I ll check this E-gear thing....
Cheers!
 

Attachments

  • EXTRACT-Delta-ASDA-B2.pdf
    867.6 KB · Views: 31
  • DS_iHSV86en_200528.pdf
    1.2 MB · Views: 32

zombieengineer

ZombieEngineer
@xyloton - I understand what you are trying to do: maximize speed using a servo motor while maintaining accuracy.

The Delta ASDA-B2 also supports E-Gear (manual too large to upload). This is a very useful feature as you can set the number of steps per revolution for your axis.

I should have asked before: What is the advance per revolution for each axis? (mm/rev or inch/rev) Your maximum velocity is going to be 3000 RPM x Axis Advance (maximum speed for Delta servo motors is typically 3000 RPM). For a ball screw with 5mm/rev this will work out to be 15,000 mm/min.

The accuracy (resolution) of each axis is going to be a function of axis advance, maximum RPM and maximum pulse rate.
Minimum resolution = (Maximum RPM / 60) x (Axis Advance) / (Maximum pulse rate)​

Example: For a ball screw of 5mm/rev running at 3000 RPM with a maximum pulse rate of 150,000 pulses/second
Minimum resolution = (3000 / 60) x (5 mm/rev) / (150,000 pulses/second) = 0.00166 mm/pulse (approx 0.065 thousandth of an inch per pulse)​
 

xyloton

xyloton
Dear Peter,
thanks a lot for your reply.
Could you clear the point, why the rate is fixed at these numbers?

Thanks a lot in advance,
Cheers
J rgen
 

xyloton

xyloton
@zombieengineer
Thanks a lot for your examples - you are hiting the right numbers...
My case is the following:
its an EMCO MC90/T (with one milling head) and all axis are 15 mm ballscrew with 5mm/rev.

The absolute minimum resolution should be 0,1 mm (wood working) - smaller numbers are better - but 0,00x is kind of nonsense.

But the other way around, when masso is limited at 110 kHz per axis - like Peter answered - the usage of Delta Servos is force of circumstance with just of the much better PID-settings and real autotune?
Cause with the JMC Servos iHSV86-30-66-72 are a lots cheaper, fake autotune and finding PID-parameters for the system is like playing in the lottery - but no real other changes?
Do I getting this right?
 

Attachments

  • emc_mc90t.pdf
    468.4 KB · Views: 39

cncnutz

CNCnutz
Staff member
Hi J rgen

I don't know why that value was chosen.
My best guess is there has to be a limit.
Also it is 3 to 4 times what you will probably need on your machine in practical terms.

What do your calculations show you actually need?

I don't know where step values in the 500 Mhz range come from. An ethernet connection running a 100Mhz is still considered good in many industrial applications and it is only moving data.

Cheers Peter
 

zombieengineer

ZombieEngineer
Firstly - Could @masso-support please update the axis-calibration page to mention the maximum pulse rate?

@xyloton - PID tuning is something that is poorly explained / understood by people. I will write some more details later about how to tune PID controllers but there are design issues to sort out.

Given the information you have posted you have the following requirements in descending order:
  1. Reliability - Servos follow the CNC controller's commands
  2. Speed - Move as fast as possible
  3. Accuracy - Within the limits of pulse rate (CNC controller and servo driver) and maximum speed be as accurate as possible
  4. Price - Cheaper is better :)

Reliability

The servo motors / stepper motors should not miss any step command sent by the CNC controller. The Masso controller (as per Peter's previous posting) has a limit of 110k steps/second. I had a look at the datasheet for micro-controller and it does not appear to be CPU limited. It is probably due to the output protection circuits (stuff to prevent people accidentally zapping the Masso controller outputs) that is creating the speed limit. I would suggest aiming for 75k to 100k steps/sec.

Speed

Both the Delta and HSV86 servo motors have a rated speed of 3000 RPM (the HSV86 has a maximum speed of 4000 RPM but available torque would drop fairly quickly). Dividing 3000 RPM by 60 seconds gives 50 revs/second. Using the previous pulse rate range (75k to 100k steps/second) gives us a step resolution of 1500 to 2000 steps/revolution.

Accuracy

As each axis advances 5mm/revolution the previous step resolution (1500 to 2000 steps/revolution) results in an axis movement of between 0.0033 and 0.0025 mm/step. This is 3 to 4 times better than the requested accuracy (0.01 mm).

Price

The HSV86 servo motor is the most cost effective motor providing the accuracy, speed and pulse rate can be achieved. The HSV86 can be configured for 800, 1000, 1600, 2000, ... steps/revolution using DIP switches. There is at least four step resolutions you could use and achieve your requirements.
Steps/RevolutionMax speed @ 110k step/secPulse rate @ 3000 RPMAccuracy
8006875 RPM40,0000.006 mm
10005500 RPM50,0000.005 mm
16004125 RPM80,0000.003 mm
20003300 RPM100,0000.002 mm

I would personally choose the 1000 steps/revolution option.
 

zombieengineer

ZombieEngineer
@xyloton - My experience with PID tuning comes from large industrial chemical plants (think oil refineries).

95% of PID control loops have the Derivative option disabled. The only time you use derivative is when there is "dead time" in your control loop - the definition of dead time is the time between changing the output of the controller and observing the first response in the controlled variable (another term would be "time delay"). Servo motors should not have any dead time / time delay in the control loop, therefore there is no need for the derivative option.

The first thing I would do is consider how fast can the system achieve the desired set-point. For a fast system (such as a flow controller) you would reduce the gain and increase the integral action. For a slow system such as a tank you would increase the gain and reduce the integral action (a tank acts as an integrator).

If you have too much gain the output will swing back and forwards very, very quickly (with a servo motor it would probably buzz).

If you have too much integral action you get these long oscillations that refuse to die down (with a servo motor it would swing back and forth like a pendulum).
 

irakandjii

Irakandjii
Thank you this is the information I was looking for.
It is still unclear if running at the 110k limit imposes any stress on the controller.

Having the specified "maximum pulse rates" generally available in a spec sheet would be a major benefit to users for pre purchase analysis, I could have avoided significant grief.

For example my Controller documentation indicates the minimum PPR is 2000 with a default of 8000! Yikes


MASSO specifically mentions this controller in the documentation yet fails to mention the controller is limited to an maximum of
(110000/2000)*60 = 3300 RPM maximum, this is not necessarily a problem until one realizes that the gearing on the lathe headstock needs to be changed since it expects a 5000+RPM Motor AKA Sherline Lathes.


PS It turns out that that the documentation was in error and the PPR can be significantly lower, I have some experimentation to do.
 
Last edited:
Top