Driving motor via CANopen

2 years 3 months ago - 2 years 3 months ago #29533499 by mhmtkvs

Hi,
I'm working on controlling motor drive via CANopen. I'm using STM32F4xx. I send the messages which are RPDO mapping and velocity commands.I run the motor by application but I can not see any change when I program the microprocessor.. Configuration is attached.
Do you have any advice ?

Thanks.
Attachments:

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

2 years 3 months ago #29533501 by Gabriel_Isko
Replied by Gabriel_Isko on topic Driving motor via CANopen
Can you clarify what you mean by no change when you program the microprocessor? I'm not sure if you are referring to our controllers or the STM32F4xx.

Keep in mind that changes in configuration settings in the Roborun+ software will not take place until you Save them to the controller.

We are getting a lot of requests for help regarding CAN implementation between our controllers and the STM32F4xx. Do you think you could let me know a little bit more about the application?

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

2 years 3 months ago #29533506 by mhmtkvs
Replied by mhmtkvs on topic Driving motor via CANopen
I'm driving motor with Roborun+ application. Operation mode is Closed Loop Speed. It is okay but I need to drive with microcontroller which is STM32F469II.
I try to drive servo motor via canopen.

When I send the RPDO messages, some parameters can not be sent. While I debug the code, I observe the error in some messages. The code that I used for sending and receiving the CANopen messages are working fine with another motor driver which is not Roboteq.

For RPDO mapping of "Target velocity 0x60FF" I used to following procedure :

write 0x80000400+NodeID to 0x1402 sub index 1; (Disable RPDO Mapping)
write 0x00000000 to 0x1602 sub index 0; (Clear Mapping)
write 0x60FF0020 to 0x1602 sub index 1; (Target Velocity Mapping)
write 0x000000FE to 0x1602 sub index 2; (Transmission Event Driven)
write 0x00000001 to 0x1602 sub index 0; (Set one object is mapped)
write 0x00000400+NodeID to 0x1402 sub index 1; (Enable RPDO)

1) Is this mapping procedure valid?
2) Are there any document that show the SDO error (abort) messages? SDO error messages starts with 0x80 and there is a error code that follows. But I could not found any document explaining the error code.
3) For the speed control of motor, which operational do you recommend? Closed Loop Speed or Closed Loop Speed Position?

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

2 years 3 months ago #29533509 by niko
Replied by niko on topic Driving motor via CANopen
1) Yes with a beta firmware though. Please refer to This email address is being protected from spambots. You need JavaScript enabled to view it. in order to be provided with one.
2) This is part of the CANOpen standard.
3) The differrence of the two is that in Closed loop Speed the feedback is the speed. In closed loop speed position the feedback is the position. The latter makes closed loop speed position more effective at low RPM.

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

Moderators: tonysantoni
Time to create page: 0.281 seconds