Using CANOpen to change the speed and torque of the motors.

1 year 2 months ago #29535953 by dc01
I am using a GLB2660 with 2 BLDCs. I want to use an arduino to change the speed of the motors using CANOpen. 
The first thing I am doing is setting the motors using the frame:
    dta_tx1[0] =0x23; // Command to write 4 bytes
    dta_tx1[1] =0x00; // object dictionary index of the data to be accessed - byte2+byte1 - 2000
    dta_tx1[2] =0x20; // object dictionary index of the data to be accessed - byte2+byte1 - 2000
    dta_tx1[3] =0x01; // Sub index
    dta_tx1[4] =0xFF; // Data written to be sent 
    dta_tx1[5] =0x00;
    dta_tx1[6] =0x00;
    dta_tx1[7] =0x00;
I have a few questions:
1. In the CAN frame above, how do I know what data to write in the data bytes 4-7. I got the FF from an example somewhere but I do not know how to get these values.
2. What object dictionary index can I use to set the speed or torque amps of the motors and what values would I have to give in the data bytes. Where do I find the range of the data values?
An example code would be very helpful.

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

8 months 2 days ago - 8 months 2 days ago #29536214 by andrew.thombra
Hi,

I have the same issue. I can control the motors using canOpen setMotor command and sending the correct frames. But when it comes to set speed command as per documentation, I cannot command the speed. The motors dont move at all when I am setting the speed between 0 and 1000. Could anyone help me with the right frames to send ? I believe it might be an error regarding the frame  i am sending but I cannot find any help regarding this.

Thanks in advance.
Edit:

To add to this, I am using HDC2460 which is CanOpen enabled. The current frame I am sending is [0x23,0x02,0x20,0x02,0xF4,0x01,0x00,0x00] which is a value of 500 and the motor does not move at all.

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

Moderators: tonysantoni
Time to create page: 0.081 seconds