What is the fastest possible servo thread rate and how would one achieve that?

More
30 May 2021 18:25 #210710 by Henk
As the title suggests, how fast servo thread can be run with a typical mesa ethernet board connected? In my case a 7i76e.I'm running v 2.9.

The reason I'm asking is that I think I can improve my wire edm performance if I can run a faster thread. The thread needs to do floating point calcs because it senses the gap voltage (mesa THC 300) and manages the motion accordingly with adaptive feed.

If you look at the Baxedm channel on YouTube, he uses Dynomotion's Kflop. According to their website, servo positions are scanned every 90 microseconds.

I think in my case the PC I'm using is the limiting factor. What specs do I need on the PC to achieve a much faster servo thread rate?

Thanks
Henk

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

More
30 May 2021 18:37 #210714 by andypugh
PCW reports running a 4kHz servo thread.

What is your current servo thread latency?

Also consider the ethernet round-trip time. It is possible that a PCI card solution might be better.

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

More
30 May 2021 18:42 #210716 by Henk
Thanks Andy,
I have not checked the latency but I do know that I get real-time errors when I go higher than a 2 khz rate.

Are there other PC related things I can check before I ditch the 7i76e and install a 5i25 and 7i76…

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

More
30 May 2021 20:57 #210739 by andypugh
Are you running a base thread? You probably shouldn't.

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

More
31 May 2021 04:44 - 31 May 2021 04:45 #210771 by Henk
No base thread.

Ping times are in the order of 125 us.

I wonder if it would be possible to have the 7i76e FPGA manage the lower level adaptive feed according to the gap voltage which is available on one of the encoder counters

With wire edm pulse width in the order of 1 to 20us, there is quite a lot that can go wrong in 1ms....
Last edit: 31 May 2021 04:45 by Henk.

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

More
31 May 2021 07:42 #210777 by andypugh

I wonder if it would be possible to have the 7i76e FPGA manage the lower level adaptive feed according to the gap voltage which is available on one of the encoder counters


Encoder velocity is calculated in the servo thread, and position updates to HAL are sent in the servo thread. You can't really bypass it.

With wire edm pulse width in the order of 1 to 20us, there is quite a lot that can go wrong in 1ms....


What is the time constant of your mechanical components? motor inertia and inductance play their part too.

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

More
01 Jun 2021 02:40 #210845 by Henk
Yes, have not considered the mechanics and acceleration etc, but what i can say is that i have some faith in the original Sodick design of this part.

There is no backlash, extremely accurate ballscrews and linear rails and to Yaskawa DC drives with step/dir interface.

Acceleration is set at 750mm/s/s. no encoder feedback apart from between the motor and the drive, so its hard to say what actually happens when it suddenly reverses.

There is encoder output from the drive, but this is 12v signals. Im not sure how i can get this to ttl level, maybe a line driver ic?

Henk

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

More
01 Jun 2021 08:28 #210866 by andypugh

Acceleration is set at 750mm/s/s.


A simplistic calculation:

s = ut + 1/2 a t^2 (from school)

If the wire is currently not moving, how far can it be moved in 1 servo period at 750mm/s/s?

0.5 * 0.75m * 1e-3^2 = 375nm. / 0.4um

What is your step scale? how many steps in 0.4um? The difference between 1kHz and 10kHz is in how fast the step rate can be changed. If it is step-or-no-step per period then I guess it might be better to make the decision faster. But everything else (including arc voltage sampling) has to speed up too.

Consider it from the point of view of what the controller does. Every thread period it sets a step-rate and the FPGA holds that rate constant until the next thread cycle. It would be helpful to know what that step rate typically is, and from the calculation above, how much it can change in one cycle.

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

Time to create page: 0.080 seconds
Powered by Kunena Forum