7i96 Joint Following Error
- BigJohnT
- Topic Author
- Offline
- Administrator
Less
More
- Posts: 7330
- Thank you received: 1177
23 Aug 2018 11:23 #116481
by BigJohnT
7i96 Joint Following Error was created by BigJohnT
I'm trying to finish up my configuration tool but I keep getting a joint following error when I jog an axis. The sample configuration is attached. I'm running master uspace 0b443d. Latency test servo thread 52,000.
JT
JT
Please Log in or Create an account to join the conversation.
- PCW
- Away
- Moderator
Less
More
- Posts: 17904
- Thank you received: 4774
23 Aug 2018 16:46 #116494
by PCW
Replied by PCW on topic 7i96 Joint Following Error
As we discussed on IRC I suspect your host has poor enough Ethernet latency that some packets are timing out. At the sample configs high speeds (1200 IPM = 20 IPS) a missed packet will result in LinuxCNC using stale position feedback data from the stepgen (and 1 ms stale data would result in a 20 mill following error at 20 IPS)
Its possible to work around this error by "short-circuiting" the commanded stepgen data to the feedback data if a packet error occurs. As long as the errors are infrequent, very little actual position error is cause by a missed packet
Here is a hal file that implements this scheme:
You can also work around the issue by just setting the following error limit to > maxvel*servothread_period
but this has 2 bad side effects: 1. you need to set large following errors so you may miss real problems, and 2.
The PID loop "sees" the bogus stale position data and does a bogus correction, causing a real glitch in the
stepgen position tracking
Its possible to work around this error by "short-circuiting" the commanded stepgen data to the feedback data if a packet error occurs. As long as the errors are infrequent, very little actual position error is cause by a missed packet
Here is a hal file that implements this scheme:
You can also work around the issue by just setting the following error limit to > maxvel*servothread_period
but this has 2 bad side effects: 1. you need to set large following errors so you may miss real problems, and 2.
The PID loop "sees" the bogus stale position data and does a bogus correction, causing a real glitch in the
stepgen position tracking
Please Log in or Create an account to join the conversation.
- BigJohnT
- Topic Author
- Offline
- Administrator
Less
More
- Posts: 7330
- Thank you received: 1177
23 Aug 2018 18:31 #116499
by BigJohnT
Replied by BigJohnT on topic 7i96 Joint Following Error
Thanks so much for your help.
JT
JT
Please Log in or Create an account to join the conversation.
- BigJohnT
- Topic Author
- Offline
- Administrator
Less
More
- Posts: 7330
- Thank you received: 1177
23 Aug 2018 20:34 #116502
by BigJohnT
Replied by BigJohnT on topic 7i96 Joint Following Error
Kinda glad I had a slow pc to test on. I added a couple of tabs to the 7i96 Configuration Tool so you can get the CPU info, NIC info and the tmax. Then added the calculations to show if the packet time is faster than the threshold. What would be a good percentage for packet time to threshold time?
JT
JT
Please Log in or Create an account to join the conversation.
- PCW
- Away
- Moderator
Less
More
- Posts: 17904
- Thank you received: 4774
23 Aug 2018 23:17 - 23 Aug 2018 23:24 #116511
by PCW
Replied by PCW on topic 7i96 Joint Following Error
Its a bit subtle because you can make a working system that occasionally drops packets whether from excessive latency or EMI.
In my experience with Preempt-RT, Large Ethernet latencies happen infrequently so its possible to set the threshold to say 1/2 of the max number and only have very occasionally dropped packets, if you add the fix for timed out packets, you will like never notice the dropped packets at all.
If on the other had you never want to have a timed out packet, I would set the timeout to say 70% and make sure the latency is never more the say 35% when tested for an hour or so
In any case its great to have the actual Ethernet timing numbers available in the utility
You might want to indicate that the .79 and .70 numbers are in units of servo thread period
(and perhaps show them as 79 and 70 %) and perhaps suggest increasing the thread period if the number is more than
50% of the total servo thread time
In my experience with Preempt-RT, Large Ethernet latencies happen infrequently so its possible to set the threshold to say 1/2 of the max number and only have very occasionally dropped packets, if you add the fix for timed out packets, you will like never notice the dropped packets at all.
If on the other had you never want to have a timed out packet, I would set the timeout to say 70% and make sure the latency is never more the say 35% when tested for an hour or so
In any case its great to have the actual Ethernet timing numbers available in the utility
You might want to indicate that the .79 and .70 numbers are in units of servo thread period
(and perhaps show them as 79 and 70 %) and perhaps suggest increasing the thread period if the number is more than
50% of the total servo thread time
Last edit: 23 Aug 2018 23:24 by PCW.
The following user(s) said Thank You: BigJohnT
Please Log in or Create an account to join the conversation.
- zz912
- Away
- Platinum Member
Less
More
- Posts: 508
- Thank you received: 81
09 May 2020 19:37 #167166
by zz912
Replied by zz912 on topic 7i96 Joint Following Error
Attachments:
Please Log in or Create an account to join the conversation.
- PCW
- Away
- Moderator
Less
More
- Posts: 17904
- Thank you received: 4774
09 May 2020 19:45 - 09 May 2020 19:46 #167167
by PCW
Replied by PCW on topic 7i96 Joint Following Error
1. Have you disabled all power management in the BIOS?
(disable all turbo modes, speed-step options, cool-and-quiet, cstates >1 etc)
2. Have you run a standard latency test?
I suggest:
latency-histogram --nobase --sbinsize 1000
Run this for at least 10 minutes while opening windows, doing fie transfers,
watching you-tube videos etc and post the results here
(disable all turbo modes, speed-step options, cool-and-quiet, cstates >1 etc)
2. Have you run a standard latency test?
I suggest:
latency-histogram --nobase --sbinsize 1000
Run this for at least 10 minutes while opening windows, doing fie transfers,
watching you-tube videos etc and post the results here
Last edit: 09 May 2020 19:46 by PCW.
Please Log in or Create an account to join the conversation.
- zz912
- Away
- Platinum Member
Less
More
- Posts: 508
- Thank you received: 81
09 May 2020 20:44 #167174
by zz912
Replied by zz912 on topic 7i96 Joint Following Error
Attachments:
Please Log in or Create an account to join the conversation.
- PCW
- Away
- Moderator
Less
More
- Posts: 17904
- Thank you received: 4774
09 May 2020 20:57 - 09 May 2020 20:58 #167176
by PCW
Replied by PCW on topic 7i96 Joint Following Error
It may be that for whatever reason the Ethernet is slow on your system
( The configurator tmax value indicates that almost 0.9 ms of the total time available
has been consumed by overhead so there is no margin left)
Latency is always important though larger latency can be tolerated
when there is hardware to do things like step generation
It may be that you will need to slow the servo thread on your PC to avoid
real time errors (I would try 2 mS = 2000000)
( The configurator tmax value indicates that almost 0.9 ms of the total time available
has been consumed by overhead so there is no margin left)
Latency is always important though larger latency can be tolerated
when there is hardware to do things like step generation
It may be that you will need to slow the servo thread on your PC to avoid
real time errors (I would try 2 mS = 2000000)
Last edit: 09 May 2020 20:58 by PCW.
Please Log in or Create an account to join the conversation.
- zz912
- Away
- Platinum Member
Less
More
- Posts: 508
- Thank you received: 81
09 May 2020 21:21 #167177
by zz912
Replied by zz912 on topic 7i96 Joint Following Error
BIOS is problem for me. I dont understand this, so foto can be downloaded here: www.uschovna.cz/zasilka/YCZ8TCXT5ENUPIDJ-85U/ (it is big) STÁHNOUT VŠE JAKO ZIP = DOWNLOAD ALL LIKE ZIP
It is not better Packet Time is 3437844. (at SERVO_PERIOD = 1000000 I probably loaded it imperfectly)
It may be that you will need to slow the servo thread on your PC to avoid
real time errors (I would try 2 mS = 2000000)
It is not better Packet Time is 3437844. (at SERVO_PERIOD = 1000000 I probably loaded it imperfectly)
Please Log in or Create an account to join the conversation.
Moderators: PCW, jmelson
Time to create page: 0.187 seconds