CANopen Message Tutorials
CANopen - How to Read Drive Fault Codes
When a fault code occurs the drive will send out a CAN message with the COB-ID 081h which will contain the fault code in it's message.
All emergency messages will show the fault code value in the telegram which can then be matched against the fault code table to give the active fault code. The fault code table containing the fault code numbers can be found in the topic Troubleshooting - Fault Messages.
An example message when the drive trips is: 081 8 39 10 01 39 00 00 00 00.
Lets decode this message to find out what it means:
Part of Message | Description | Value in Hex (Decimal) | Drive Description |
|---|---|---|---|
081 | COB-ID | 0x81 (129) | Value is 80h + Drive Address in this case 80+1 = 81h |
8 | Length | 0x08 (8) | Message Length |
39 10 | Emergency Error Code | 0x1039 (0) | First 2 bytes (0 & 1) make up the EEC (Emergency Error Code) The first byte gives the type of error. In this case it is a generic error 1000h |
01 | CANopen Error Register | 0x01 (1) | CANopen Error Register |
39 00 00 00 00 | Fault Code | 0x39 (57) | Manufacture specific error code. The last 5 bytes is the part of the message that gives the error code. In this message the value is 39h which is 57 in decimal indicating the fault code is F-ty A full list of fault code numbers can be found in the topic Troubleshooting - Fault Messages |
This is the standard message format when using CANopen for all fault codes.
Note
When the drive trips the error message is only sent once.
CANopen - Mapping Parameters to Process Data Objects
Example 1 - Map One Drive Parameter to PDO2 Entry 1
Below is a step by step guide to map Parameter P1-01 to Tx PDO2 Entry 1.
Note
In this example it is assumed the drive is set to Address 1 (P2-07 = 1).
First switch the drive to Pre-operational State.
To do this send the Message:
00 2 80 00
Part of Message
Description
Value in Hex (Decimal)
Drive Description
00
COB-ID
0x00 (00)
COB-ID for NMT commands is always 0.
2
Length
0x02 (2)
Data length being sent is 2 bytes
80 00
Data
0x80 (128)
0x80 is the NMT command to put the drive in Pre-Operational State
Now the drive is in the correct state to be parameterised.
We need to disable PDO2 so it can be mapped to. Send the Message:
601 8 23 01 18 01 01 28 00 C0
Part of Message
Description
Value in Hex (Decimal)
Drive Description
601
COB-ID
0x00 (00)
COB-ID for Drive Address 1 (SDO Rx)
Will get a message back with COB-ID 581h (SDO Tx)
8
Length
0x02 (2)
Data length being sent is 8 bytes
23
Control Byte - Write Request
0x80 (128)
0x23h is the Control Byte write request for 4 bytes of data.
01 18
Object Address
0x1801 (6145)
Writes to Object Address 1801h
01
Object Address Sub Index
0x01 (1)
Sub Index for Object Address 1801h
So we are writing to 1801h Sub Index 1 (TX PDO2 COB-ID)
01 28 00 C0
Data
0xC0000281
The data written is 281 (280h + Drive Address) & C0.