How good is Ethercat motion control?
- Hakan
- Offline
- Platinum Member
-
Less
More
- Posts: 1261
- Thank you received: 441
22 Jan 2026 22:21 - 22 Jan 2026 22:33 #341738
by Hakan
Replied by Hakan on topic How good is Ethercat motion control?
After a quick look it seems the deasda driver includes a layer that kind of resembles the cia402 driver.
The drive itself is cia402.
deasda gives a large set of hal pins, with "generic" and cia402 one needs to puzzle that together self.
These drivers don't do very much more than translate between pdos and hal names, there is no real processing.
Some logic is in there, but there is no performance reason to select one or the other.
The drive itself is cia402.
deasda gives a large set of hal pins, with "generic" and cia402 one needs to puzzle that together self.
These drivers don't do very much more than translate between pdos and hal names, there is no real processing.
Some logic is in there, but there is no performance reason to select one or the other.
Last edit: 22 Jan 2026 22:33 by Hakan.
Please Log in or Create an account to join the conversation.
- Gogonfa
- Offline
- New Member
-
Less
More
- Posts: 18
- Thank you received: 6
23 Jan 2026 10:20 #341750
by Gogonfa
Replied by Gogonfa on topic How good is Ethercat motion control?
Thanks, Rod, for your fast answer.
I have a general question regarding following error (FERROR) when controlling servo drives via EtherCAT.
Is there a generally expected/inevitable following error caused by the EtherCAT cycle time (latency/jitter), even in a properly configured system?
Or would a noticeable following error usually indicate a configuration/implementation issue?
For reference: my servos are tuned and run with a very small following error of about 20 encoder counts in the Delta software (24-bit encoder, so basically negligible).
However, in LinuxCNC the reported following error increases with speed and can reach about 1–2 mm.
What would be a typical/acceptable following error range in a properly configured EtherCAT servo system? Any ideas?
I have a general question regarding following error (FERROR) when controlling servo drives via EtherCAT.
Is there a generally expected/inevitable following error caused by the EtherCAT cycle time (latency/jitter), even in a properly configured system?
Or would a noticeable following error usually indicate a configuration/implementation issue?
For reference: my servos are tuned and run with a very small following error of about 20 encoder counts in the Delta software (24-bit encoder, so basically negligible).
However, in LinuxCNC the reported following error increases with speed and can reach about 1–2 mm.
What would be a typical/acceptable following error range in a properly configured EtherCAT servo system? Any ideas?
Please Log in or Create an account to join the conversation.
- Gogonfa
- Offline
- New Member
-
Less
More
- Posts: 18
- Thank you received: 6
23 Jan 2026 10:22 #341751
by Gogonfa
Replied by Gogonfa on topic How good is Ethercat motion control?
Thanks for the clarification, Hakan
Please Log in or Create an account to join the conversation.
- Hakan
- Offline
- Platinum Member
-
Less
More
- Posts: 1261
- Thank you received: 441
23 Jan 2026 21:41 #341798
by Hakan
Replied by Hakan on topic How good is Ethercat motion control?
You hit the weak point in linuxcnc Ethercat.
Position feedback from a drive is always two servo cycles behind.
Following error due to this is at least axis speed x 2 x servo cycle time.
You can easily verify this.
Position feedback from a drive is always two servo cycles behind.
Following error due to this is at least axis speed x 2 x servo cycle time.
You can easily verify this.
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
- tommylight
-
- Away
- Moderator
-
Less
More
- Posts: 21382
- Thank you received: 7291
23 Jan 2026 21:51 #341802
by tommylight
Not a deal breaker, but nice to know.
Replied by tommylight on topic How good is Ethercat motion control?
Thank you pointing this out, somehow everyone keeps skipping this.Position feedback from a drive is always two servo cycles behind.
Not a deal breaker, but nice to know.
Please Log in or Create an account to join the conversation.
- Gogonfa
- Offline
- New Member
-
Less
More
- Posts: 18
- Thank you received: 6
23 Jan 2026 22:37 #341805
by Gogonfa
Replied by Gogonfa on topic How good is Ethercat motion control?
Hi Hakan,
If LinuxCNC always receives the position feedback ~2 servo cycles late, can I simply “ignore” this by increasing the following-error limits (FERROR / MIN_FERROR), or does this latency actually affect the LinuxCNC motion planner/trajectory execution?
In other words:
Does LinuxCNC only use the feedback for monitoring/fault detection (so the part accuracy is still fine as long as the drive itself tracks well and has near-zero internal following error)?
Or does LinuxCNC actively “react” to the delayed feedback (e.g. by slowing down, modifying the commanded motion, degrading contour accuracy), meaning I cannot machine precise parts even if the servo drive is perfectly tuned?
So the decisive question for me is:
Can I still mill accurate parts with this inherent 2-cycle EtherCAT feedback lag, as long as the servo drive is properly tuned and its internal following error stays low — or does the lag directly reduce machining accuracy?
Thanks a lot for clarifying this.
If LinuxCNC always receives the position feedback ~2 servo cycles late, can I simply “ignore” this by increasing the following-error limits (FERROR / MIN_FERROR), or does this latency actually affect the LinuxCNC motion planner/trajectory execution?
In other words:
Does LinuxCNC only use the feedback for monitoring/fault detection (so the part accuracy is still fine as long as the drive itself tracks well and has near-zero internal following error)?
Or does LinuxCNC actively “react” to the delayed feedback (e.g. by slowing down, modifying the commanded motion, degrading contour accuracy), meaning I cannot machine precise parts even if the servo drive is perfectly tuned?
So the decisive question for me is:
Can I still mill accurate parts with this inherent 2-cycle EtherCAT feedback lag, as long as the servo drive is properly tuned and its internal following error stays low — or does the lag directly reduce machining accuracy?
Thanks a lot for clarifying this.
Please Log in or Create an account to join the conversation.
- ihavenofish
- Offline
- Platinum Member
-
Less
More
- Posts: 988
- Thank you received: 281
24 Jan 2026 01:15 #341808
by ihavenofish
In position mode it has no impact, the drive is closing the loop. The feedback is just for "knowledge". So you set f error in linuxcnc to something reasonable (about 2mm on my machine cause its impossible to move that far in 2ms). Set the drives f error to something smaller if you need to.
Replied by ihavenofish on topic How good is Ethercat motion control?
Hi Hakan,
If LinuxCNC always receives the position feedback ~2 servo cycles late, can I simply “ignore” this by increasing the following-error limits (FERROR / MIN_FERROR), or does this latency actually affect the LinuxCNC motion planner/trajectory execution?
In other words:
Does LinuxCNC only use the feedback for monitoring/fault detection (so the part accuracy is still fine as long as the drive itself tracks well and has near-zero internal following error)?
Or does LinuxCNC actively “react” to the delayed feedback (e.g. by slowing down, modifying the commanded motion, degrading contour accuracy), meaning I cannot machine precise parts even if the servo drive is perfectly tuned?
So the decisive question for me is:
Can I still mill accurate parts with this inherent 2-cycle EtherCAT feedback lag, as long as the servo drive is properly tuned and its internal following error stays low — or does the lag directly reduce machining accuracy?
Thanks a lot for clarifying this.
In position mode it has no impact, the drive is closing the loop. The feedback is just for "knowledge". So you set f error in linuxcnc to something reasonable (about 2mm on my machine cause its impossible to move that far in 2ms). Set the drives f error to something smaller if you need to.
Please Log in or Create an account to join the conversation.
- nhof
- Offline
- New Member
-
Less
More
- Posts: 3
- Thank you received: 0
24 Jan 2026 03:57 #341824
by nhof
Replied by nhof on topic How good is Ethercat motion control?
For the CSP and similar modes generally the target position is fed directly from the joint pos-cmd output, so it does not go through a PID control to account for error like you might see in a velocity control loop with positional feedback.
Please Log in or Create an account to join the conversation.
- rodw
-
- Offline
- Platinum Member
-
Less
More
- Posts: 11744
- Thank you received: 3973
24 Jan 2026 06:14 #341827
by rodw
Replied by rodw on topic How good is Ethercat motion control?
Not sure how this can be. The servo thread fires every 1 Ms (1000 usec), If you do a trace, It might take 200 usec to execute, then it sleeps for the remaining 800 usec) until it fires gain. The Ethercat thread and the Linuxcnc servo thread are synchronized. We read from lcec at the beginning of the servo thread execution, do our stuff, pids and position adustments etc then write write the result back to lcec then sleep as normal for the remaining 800 usec. How does it lag 2000 usec behind?You hit the weak point in linuxcnc Ethercat.
Position feedback from a drive is always two servo cycles behind.
Following error due to this is at least axis speed x 2 x servo cycle time.
You can easily verify this.
Please Log in or Create an account to join the conversation.
- ihavenofish
- Offline
- Platinum Member
-
Less
More
- Posts: 988
- Thank you received: 281
24 Jan 2026 07:10 #341830
by ihavenofish
I thought it was 1 frame behind. but it definitely is behind. People trying the lichunan drives were having this issue when trying to use velocity command.
The WHY is above my pay grade.
Replied by ihavenofish on topic How good is Ethercat motion control?
You hit the weak point in linuxcnc Ethercat.
Position feedback from a drive is always two servo cycles behind.
Following error due to this is at least axis speed x 2 x servo cycle time.
You can easily verify this.
Not sure how this can be. The servo thread fires every 1 Ms (1000 usec), If you do a trace, It might take 200 usec to execute, then it sleeps for the remaining 800 usec) until it fires gain. The Ethercat thread and the Linuxcnc servo thread are synchronized. We read from lcec at the beginning of the servo thread execution, do our stuff, pids and position adustments etc then write write the result back to lcec then sleep as normal for the remaining 800 usec. How does it lag 2000 usec behind?
I thought it was 1 frame behind. but it definitely is behind. People trying the lichunan drives were having this issue when trying to use velocity command.
The WHY is above my pay grade.
The following user(s) said Thank You: rodw
Please Log in or Create an account to join the conversation.
Time to create page: 0.113 seconds