Skip to main content

CAN Communication Function

The CAN interface on this device supports the CANopen SDO data transfer protocol. SDO is mainly used to transmit low‑priority objects between devices. This data transfer is similar to MODBUS, i.e. after the master station sends a request, the slave station shall return a data response: Client→Server / Server→Client. This is the basic structure of an SDO. The CAN bus uses termination resistors. A 120Ω termination resistor must be placed between CAN_H and CAN_L at each of the two end nodes of the bus to suppress signal reflections and improve communication stability. Intermediate nodes on the bus should not have termination resistors, as doing so would lower the equivalent bus impedance and compromise communication reliability.

Basic SDO Structure
Byte0Byte1-2Byte3Byte4-7
SDO Command SpecifierObject IndexObject SubIndexUp to 4‑byte Data

The 2‑byte Object Index and the up‑to‑4‑byte data are transmitted in little‑endian (low‑order byte first, high‑order byte last).
For example, for an object index of 0x606C, Byte1 = 0x6C, Byte2 = 0x60.

Read Parameters

IdentifierDLCData
01234567
Transmit SDO Message0x600+Node_ID8Transmit Command CodeObject IndexObject SubIndex00
Receive SDO Message0x580+Node_ID8Receive Command CodeObject IndexObject SubIndexUp to 4‑byte Data
  • Transmit Command Code: Always 0x40
  • Receive Command Code: 0x4F‑ 1‑byte data received; 0x4B‑ 2‑byte data received; 0x43‑ 4‑byte data received
  • Example: Read the actual position of motor #1 (0x606300) via SDO
    IdentifierCommand CodeObject IndexObject SubIndexUp to 4‑byte Data
    Transmitted Message0x6010x400x630x600x000x000x000x000x00
    Received Message0x5810x430x630x600x000xD90x050x000x00
    Actual Position = 0x05D9 (HEX) = 1497 (DEC) DDSM350-CTCAN Communication Example

Modify Parameters

IdentifierDLCData
01234567
Transmit SDO Message0x600+Node_ID8Transmit Command CodeObject IndexObject SubIndexUp to 4‑byte Data
Receive SDO Message0x580+Node_ID8Receive Command CodeObject IndexObject SubIndexUp to 4‑byte Data
  • Transmit Command Code: 0x2F‑ 1‑byte transmit data; 0x2B‑ 2‑byte transmit data; 0x23‑ 4‑byte transmit data
  • Receive Command Code: 0x60‑ Message transmitted successfully; 0x80‑ Message transmission failed
  • Example: Control the axis of motor #1 (0x604000) via SDO. First write 0x06 to power‑off and release the motor shaft, then write 0x0F to power‑on and lock the motor shaft.
    IdentifierCommand CodeObject IndexObject SubIndexUp to 4‑byte Data
    1st Transmitted Message0x6010x2B0x400x600x000x060x000x000x00
    1st Received Message0x5810x600x400x600x000x060x000x000x00
    2nd Transmitted Message0x6010x2B0x400x600x000x0F0x000x000x00
    2nd Received Message0x5810x600x400x600x000x0F0x000x000x00
    DDSM350-CTCAN Communication Example

PDO Function

The drive provides a simplified built‑in PDO function and requires no configuration from the CAN master station.

PDO1 Message Format
IdentifierDLCData
01234567
0x180+Node_ID8Mapped to Object 0x60F919 (Actual Speed, 0.001 rpm)Mapped to Object 0x606300 (Actual Position)

CAN Communication Examples

Example 1: Read motor actual current Iq
Refer to "Table F1‑3 Measured Data" in the Common‑use Object List. The object address for "Actual Current Iq" is 0x607800, which is a 16‑bit signed number.
Assume the motor actual current is 1 Arms. Conversion formula: [DEC] = [Arms] * 1.414 * 2048 / 15. 1 Arms = 193 (DEC) = 0xC1 (HEX)

IdentifierCommand CodeObject IndexObject SubIndexUp to 4‑byte Data
Host‑Sent Message0x6010x400x780x600x000x000x000x000x00
Drive Response Message0x5810x4B0x780x600x000xC10x000x000x00

Example 2: Write Target Speed (High‑resolution speed command)
Refer to "Table F1‑2 Operating Modes & Control" in the Common‑use Object List. The object address for "Target Speed" is 0x60FF00, which is a 32‑bit signed number.
Set the speed command to 150 rpm. Conversion formula U[y,x]: [DEC] = ([rpm] * 512 * [Feedback Resolution]) / 1875
Where [Feedback Resolution] = 4096. [DEC] = (150 * 512 * 4096) / 1875 = 167772 → Hex = 0x28F5C

IdentifierCommand CodeObject IndexObject SubIndexUp to 4‑byte Data
Host‑Sent Message0x6010x230xFF0x600x000x5C0x8F0x020x00
Drive Response Message0x5810x600xFF0x600x000x5C0x8F0x020x00

Example 3: CAN‑PDO Communication Example

  • Enable PDO
    Refer to "Table F1‑5 Communication Parameters" in the Common‑use Object List. The object address for "Enable PDO" is 0x470001, which is an 8‑bit unsigned number.
    IdentifierCommand CodeObject IndexObject SubIndexUp to 4‑byte Data
    Host‑Sent Message0x6010x2F0x000x470x010x010x000x000x00
    Drive Response Message0x5810x600x000x470x010x010x000x000x00

‑ The slave drive will actively report actual speed and actual position
If the motor actual speed = 10 rpm (Hex: 0x2710), and actual position = 1000 DEC (Hex: 0x3E8)
The drive transmits messages periodically (default interval: 10 ms).

IdentifierCommand CodeObject IndexObject SubIndexUp to 4‑byte Data
Drive‑Initiated Message0x1810x100x270x000x000xE80x030x000x00