CFBFP Posted January 26, 2015 Report Share Posted January 26, 2015 Hi I have to program 5 openCAN Bus Commands in the right order and fast after each other. The baudrate is already on 1000Mb/s but still i have the impression the commands are coming through very slow: it takes to long for 5 simple SDO commands. How is this possible? Maybe my method of programming is wrong. The openCAN commands I programmed in Unilogic software are working cause my servomotor controller is doing what I sent as instructions using the openCAN bus. How do I know when my first commands is sent so I can start to send already the next command? If i program SDO instructions one after each other without a software delay between the SDO commands it doesn't work anymore. My SDO commands are sent as follow: 1)send first command SDO openCAN 2)wait 50ms 3)send second command SDO openCAN 4)wait 50ms 5)send third command SDO openCAN 6)wait 50ms 7)... until all commands have been sent. The method above works but is much to slow for me. When I lower the timer 50ms, the commands are not coming through anymore cause the motor doesn't execute the actions what they were programmed for. Knowing i use 1000Mb/s on the openCAN bus, why do I need still delays between the instructions? Thank you in advance for your support Link to comment Share on other sites More sharing options...
Eyal Koren Posted January 28, 2015 Report Share Posted January 28, 2015 Hi CFBFP, Instead of using a constant delay between messages, you can use the SDO function in progress bit, found in the CanOpen general struct (see image). When this bit falls you can send the next message. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now