-
Notifications
You must be signed in to change notification settings - Fork 691
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
soem with multiple drives #574
Comments
Well, you do not give me a lot of information to work with. If you don't understand #487 then do not bother to run servo slaves in a stable way. I can see from the wireshark traces your code does not really implement any of the important things mentioned there. Give your slaves some time to synchronize on the PDO transfers before changing the EtherCAT state. And do not fill the bus just to check if slaves have transitioned state. To answer your questions (at least a bit):
SOEM works perfectly with many slaves (my highest count is 1600 at the same time). You are the architect, SOEM is just providing the bricks and tools. |
Thank you @ArthurKetels for the fast response i have followed your suggestions and made some changes to my code and also read other posts about synchronization, found this post very helpfull These are the steps i am following
Now i am able to control the drives consistently, but not sure about the sleep time(how much i should give?), state transitions timings. Attaching the Wireshark capture with the ESI file |
Well, the Wireshark trace certainly looks better. But there are still timing issues with your PDO. It would be nice if you could post your code. At least then I can give a more informed response. |
As expected your code is a simple serialization of events. This will not work for servo drives (and is in general a bad idea for any EtherCAT master). Have a look at red_test.c for how to make a separate task for real-time PDO transfers. This way you can make the PDO transfers independent from the configuration. Also it is a straight forward way to define proper cycle time and phase. You have to decide what kind of timing your are thinking about, PDO cycle of 1ms, 2ms, 10ms? |
Yes, i have seen it and using the ecatthread thread. what else can i use to match the PDO cycle Can you say which events i have to monitor in wireshark log for analysing the PDO cycles (for any timing issues or any mismatches) |
Hi, k-jayanth |
Hi, @mage9353 i think serialization is ok but the PDO cycles has to be in cyclic loop for fixed timing |
Hi, @ArthurKetels |
I simply meant that PDO transfers are asynchronous from configuration code. Have a look at red_test.c. Also read the many posts about this subject here. (sometimes I feel like a parrot, repeating the same thing over and over). |
Yes, we need to improve the documentation and sample code to ease the burden. That said, red_test.c is a good example on the setup needed. |
Closed due to inactivity |
Hi everyone,
i am trying to control my 2 actuator simultaneously using SOEM, These are some issues i am facing
please suggest any other issues if i am missing or doing it wrong.
Attaching the Wireshark capture any help is appreciated
wireshark.zip
The text was updated successfully, but these errors were encountered: