CANopen DS 301 Implementation Guide
CANopen DS 301 Implementation Guide
CANopen DS 301
Implementation Guide
Important Notice
This guide is delivered subject to the following conditions and restrictions:
This guide contains proprietary information belonging to Elmo Motion Control Ltd.
Such information is supplied solely for the purpose of assisting users of SimplIQ
servo drives in implementing CANopen networking.
The text and graphics included in this manual are for the purpose of illustration and
reference only. The specifications on which they are based are subject to change
without notice.
Information in this document is subject to change without notice. Corporate and
individual names and data used in examples herein are fictitious unless otherwise
noted.
Doc. No. MAN-CAN301IG
Copyright © 2008
Elmo Motion Control Ltd.
All rights reserved.
Revision History:
Elmo Motion Control Ltd. Elmo Motion Control Inc. Elmo Motion Control GmbH
64 Gissin St., P.O. Box 463 1 Park Drive, Suite 12 Steinkirchring 1
Petach Tikva 49103 Westford, MA 01886 D-78056, Villingen-Schwenningen
Israel USA Germany
Tel: +972 (3) 929-2300 Tel: +1 (978) 399-0034 Tel: +49 (0) 7720-85 77 60
Fax: +972 (3) 929-2322 Fax: +1 (978) 399-0035 Fax: +49 (0) 7720-85 77 70
[email protected] [email protected] [email protected] www.elmomc.com
CANopen DS 301 Implementation Guide i
MAN-CAN301IG (Ver. 2.1)
Contents
Chapter 1: Introduction .......................................................................................................... 1-1
1.1 Relevant Documentation ............................................................................. 1-1
1.1.1 Elmo Documentation ........................................................................................ 1-1
1.1.2 CAN Documentation ........................................................................................ 1-2
1.2 Terms and Abbreviations............................................................................. 1-2
1.3 SimplIQ Communication ............................................................................... 1-3
Chapter 1: Introduction
This manual explains how to implement CANopen DS 301 communication with Elmo’s
SimplIQ DSP-based digital servo drives. It provides a description of SimplIQ drives and
the means of implementing communication based on the CiA CANopen protocols.
Most SimplIQ functionality is standard, according to CiA documents DS 301, version 4.01,
DSP 402 (proprietary) and the CiA OS interpreter. In this document, emphasis is placed
on manufacturer-specific behaviors, although it also repeats certain CiA standard
material, to enhance understanding and to complete certain descriptions. The manual
does not contain all relevant CiA information, indicating that many objects are
implemented, but are not documented herein. The user should therefore complement this
manual with the CiA documents outlined in the following section.
SimplIQ digital servo drives can simultaneously communicate using both CAN and RS-
232 communication lines, which are always open for communication. The communication
parameters are set using the PP command.
CANopen DS 301 Implementation Guide Introduction 1-4
MAN-CAN301IG (Ver. 2.1)
The following table compares the main features of both communication modes, as
implemented with Elmo SimplIQ digital servo drives:
To benefit from CAN communication and the CiA DS 301 CANopen standard, the user
must have a good understanding of the basic programming and timing issues of a
CANopen network.
CANopen DS 301 Implementation Guide CANopen Basics 2-1
MAN-CAN301IG (Ver. 2.1)
CAN communication is prioritized so that messages with higher priority are transmitted
first. The arbitration field determines the message priority: The lower the number in the
arbitration field, the higher the message priority. ID 0 gives the highest priority. The
SimplIQ drives support the CAN version 2.0A (11-bit) addressing method only, meaning
that it ignores messages of 29 bits. A setup parameter (PP[13] - Node ID) selects the CAN
object identification to be used.
The SimplIQ servo drives assume a single-master network arrangement, in which the
servo drives are the slaves and the machine controller or PLC is the master. Every servo
drive has a unique ID in the range [1…127]. The network master does not require an ID.
As a slave, the servo drive never sends an unrequested message, other than emergencies.
The drive responds only to messages addressed to its ID or to broadcast messages, which
have an ID of 0. All messages sent by a servo drive are marked with its own ID.
If two servo drives have been assigned the same ID, the CAN network may crash.
CANopen DS 301 Implementation Guide CANopen Basics 2-2
MAN-CAN301IG (Ver. 2.1)
Note: If several events occur during the inhibit time of a message, only the last
message will be transmitted when the inhibit time extinct. For example, if TPDO3 is
activated by digital input 1 and digital input 3 with an inhibit time of 10
milliseconds, then if a digital input 1 event emits TPDO3 at time 0, a digital input 3
event occurring 5 milliseconds later will not cause any TPDO3 transmission for the
next 5 millisecond. The TPDO3 transmission would be postponed, allowing other
messages to be transmitted, until the inhibit time is exhausted.
The DS 301 version 4.0 protocol allows the user to modify the inhibit time only for COBs
that are not valid (sub-index 1 of objects 0x1400 and 0x1800), while SimplIQ drives allow
the user to modify the inhibit time at any time, with pending messages being discarded
according to that time definition.
CiA DS 301 requires a set of mandatory objects for all CANopen devices. Other OD items
are predefined by CiA DS 301 to have fixed identifiers, if supported. The OD also
accommodates manufacturer-specific objects.
CANopen DS 301 Implementation Guide CANopen Basics 2-3
MAN-CAN301IG (Ver. 2.1)
The type of COB transmitted is indicated in the arbitration field of the message, and
thereby determines its priority. The relation between bits 8 to 11 of the arbitration field
(COB-ID) and the COB type is presented in the following table:
CANopen DS 301 Implementation Guide CANopen Basics 2-4
MAN-CAN301IG (Ver. 2.1)
Example:
The COB-ID of PDO1, when received by node #2, is binary 01000000010, which is
decimal 514, or 202 hexadecimal. The IDs of the servo drives are set in the range 1…127.
Note: Data Objects 0002 to 0004 are used as map able “dummy” entries.
The four device-specific data types used by SimplIQ digital servo drives are as follows:
MSB LSB
Time (UNSIGNED8) Velocity (SIGNED24) Position (SIGNED32)
For more information about the binary interpreter query, refer to Chapter 9.
For more information about the binary interpreter command, refer to Chapter 9.
Example:
The following is an 8-byte CAN message:
Bytes 0 - 1 0x1234
Bytes 2 - 3 0x5678
Bytes 4 - 7 0x9abcdef0
Byte Contents
0 0x34
1 0x12
2 0x78
3 0x56
4 0xf0
5 0xde
6 0xbc
7 0x9a
CANopen DS 301 Implementation Guide The Object Dictionary 3-1
MAN-CAN301IG (Ver. 2.1)
The following layout is used with the objects in the object dictionary:
The table that follows lists the objects supported by SimplIQ digital servo drives. Each
object is addressed by a 16-bit index. Some of the objects may include 8-bit sub-indices,
which are described in the object description. The object Name is that given by CiA or
Elmo according to object type. Access can be R (read only), W (write only) or R/W
(read/write). In the Can be Mapped column, N indicates that the object cannot be
mapped to a PDO, while Y indicates that the object can be mapped to a PDO or that it is
permanently mapped to a predefined PDO.
Name Index Description Access Mapped
CAN controller 0x1000 Device type and functionality. Constant R N
type value = 0x12D.
Error register 0x1001 Contains error information. R N
Manufacturer 0x1002 Returns status similar to SR command. R Y
status register
Pre-defined error 0x1003 Returns previous emergency history. R N
field Setting object 0x1003 sub-index 0 to 0
deletes error history.
COB-ID for 0x1005 32-bit Dword, pre-defined. R N
SYNC message
Communication 0x1006 Spacing, in μsec, between consecutive R/W N
cycle period SYNC signals. This parameter is included
for compatibility with the standard OD, but
it is ignored.
CANopen DS 301 Implementation Guide The Object Dictionary 3-2
MAN-CAN301IG (Ver. 2.1)
For example, if an SDO is used to change a PDO mapping, the SDO should be issued only
after the last session in which the PDO is completed, and the newly-mapped PDO should
not be used until the SDO mapping change is confirmed.
Notes:
In an SDO data exchange, each client message may be backed by one and only
one server message.
An SDO carries a toggle bit, which varies in every consecutive message of a
domain transfer, so that the loss of a single message can be tracked.
An SDO transfer can be terminated using the special “Abort domain transfer”
message.
An SDO message carries a maximum of seven bytes of data. One byte (the header
byte) is always dedicated to overhead data.
The length of an SDO message is always eight bytes, even if some of them are
unused. Unused data bytes are marked as such in the message header.
The maximum length of payload data in an expedited SDO is four bytes.
CANopen DS 301 Implementation Guide Service Data Objects (SDOs) 4-2
MAN-CAN301IG (Ver. 2.1)
Client to server:
0 1 4 8
7…5 4 3…2 1 0
css = 1 x n e s m d (data)
Server to client:
0 1 4 8
7…5 4…0
scs = 3 x m reserved
where:
css Client command specifier
1: Initiate download request
scs Server command specifier
3: Initiate download response
n Number of bytes in d that do not contain data. Only valid if
e = 1 and s = 1; otherwise it is 0. Bytes [8-n, 7] do not contain data.
e Transfer type
0: Normal transfer
1: Expedited transfer
s Size indicator
0: Data set size is not indicated
1: Data set size is indicated
m Multiplexor. Represents index/sub-index of data to be transferred by
SDO.
d Data
e = 0, s = 0: d is reserved for future use.
e = 0, s = 1: d contains number of bytes to be downloaded.
Byte 4 contains LSB and byte 7 contains MSB.
e = 1, s = 1: d contains data of length 4-n to be downloaded. The encoding
depends on the type of data referenced by index and sub-index.
e = 1, s = 0: d contains an unspecified number of bytes to be downloaded.
x Not used; always 0.
reserved Reserved for future use; always 0.
CANopen DS 301 Implementation Guide Service Data Objects (SDOs) 4-3
MAN-CAN301IG (Ver. 2.1)
Client to server:
0 1 8
7…5 4 3…1 0
css = 0 t n c seg-data (segment data)
Server to client:
0 1 8
7…5 4 3…0
scs = 1 t x reserved
where:
css Client command specifier
0: Download segment request
scs Server command specifier
1: Download segment response
seg-data Maximum seven bytes of segment data downloaded. Encoding depends
on type of data referenced by index and sub-index.
n Number of bytes in seg-data that do not contain segment data. Bytes
[8-n, 7] do not contain segment data. n = 0 if no segment size is indicated.
c Whether or not there are still more segments to be downloaded:
0: More segments to be downloaded
1: No more segments to be downloaded
t Toggle bit, which alternates for each subsequent segment to be
downloaded. First segment has toggle-bit set to 0. Toggle bit is equal for
request and response message.
x Not used; always 0.
reserved Reserved for future use; always 0.
CANopen DS 301 Implementation Guide Service Data Objects (SDOs) 4-4
MAN-CAN301IG (Ver. 2.1)
Client to server:
0 1 4 8
7…5 4…0
css = 2 x m reserved
Server to client:
0 1 4 8
7…5 4 3…2 1 0
scs = 2 x n e s m reserved
where:
css Client command specifier
2: Initiate upload request
scs Server command specifier
2: Initiate upload response
n Number of bytes in d that do not contain data. Only valid if
e = 1 and s = 1; otherwise it is 0. Bytes [8-n, 7] do not contain segment
data.
e Transfer type
0: Normal transfer
1: Expedited transfer
s Size indicator
0: Data set size is not indicated
1: Data set size is indicated
m Multiplexor. Represents index/sub-index of data to be transferred by
SDO.
d Data
e = 0, s = 0: d is reserved for future use.
e = 0, s = 1: d contains the number of bytes to be uploaded.
Byte 4 contains LSB and byte 7 contains MSB.
e = 1, s = 1: d contains data of length 4-n to be downloaded. The encoding
depends on the type of data referenced by index and sub-index.
e = 1, s = 0: d contains an unspecified number of bytes to be uploaded.
x Not used; always 0.
reserved Reserved for future use; always 0.
CANopen DS 301 Implementation Guide Service Data Objects (SDOs) 4-5
MAN-CAN301IG (Ver. 2.1)
Client to server:
0 1 8
7…5 4 3…0
css = 3 t x reserved
Server to client:
0 1 8
7…5 4 3…1 0
scs = 0 t n c seg-data
where:
css Client command specifier
3: Upload segment request
scs Server command specifier
0: Upload segment response
t Toggle bit, which alternates for each subsequent segment to be uploaded.
First segment has toggle-bit set to 0. Toggle bit is equal for request and
response message.
c Whether or not there are still more segments to be uploaded:
0: More segments to be uploaded
1: No more segments to be uploaded
seg-data Maximum seven bytes of segment data uploaded. Encoding depends on
type of data referenced by index and sub-index.
n Number of bytes in seg-data that do not contain segment data. Bytes
[8-n, 7] do not contain segment data. n = 0 if no segment size is indicated.
x Not used; always 0.
reserved Reserved for future use; always 0.
CANopen DS 301 Implementation Guide Service Data Objects (SDOs) 4-6
MAN-CAN301IG (Ver. 2.1)
where:
cs Command specifier
4: Abort transfer request
x Not used; always 0.
m Multiplexor. Represents index/sub-index of SDO.
d Four-byte abort code giving reason for abort, encoded as Unsigned32
value.
When the abort code is 0800 0000h, the actual error can be retrieved using the EC
command.
An Elmo slave that receives a corrupted message always terminates the SDO sequence
with an “Abort domain transfer” message, structured as follows:
CANopen DS 301 Implementation Guide Service Data Objects (SDOs) 4-9
MAN-CAN301IG (Ver. 2.1)
Byte Description
0 0x80
1–2 Index
3 Sub-index
4 Additional code
5 Error code
6–7 Error class
Table 4-4: Abort Domain Transfer Message Structure
Fields 4 to 7 are described fully under “Abort SDO Transfer Protocol” in this manual.
CANopen DS 301 Implementation Guide Process Data Objects (PDOs) 5-1
MAN-CAN301IG (Ver. 2.1)
RPDO1-4 can be freely mapped. The only constraints are that only one of the 0x2001
– 0x2004 objects can be mapped to an RPDO at a time, and that none of these objects
can be mapped to more than one RPDO simultaneously.
Data of RPDOs is queued and it is passed for interpretation and execution at the
next available background loop (Idle Loop) and according to the transmission type.
At most one copy of each mapped RPDO can be stored for synchronous execution. If
same RPDO arrives before next SYNC, it overwrites the previous with no
notification.
CANopen DS 301 Implementation Guide Process Data Objects (PDOs) 5-2
MAN-CAN301IG (Ver. 2.1)
Objects can receive data from SDO and RPDO on the same time. User must be aware
that the result of such case cannot be predicted. The final value of the object maybe
either the SDO or the RPDO data.
Error Cases
There might be several objects mapped into the same RPDO. The EMCY message
identifies the objects that failed. A failure is consider when the received data could not be
interpreted or executed. Refer to the “RPDO error handling” section in this manual.
In some cases Elmo’s error code is produced. The emergency may contain this error code.
Sub-index 0 Unsigned8 1
Sub-index 1 Pt-type 0x20020040
The PDO mapping may be set using a single expedited SDO, which will be:
Only a subset of the objects in the object dictionary can be mapped to a PDO, which can
either receive (RPDO) or transmit (TPDO). The mapping of an RPDO enables reception of
commands and variables — for example, efficient transmission of high-speed online
motion commands to the drive — whereas the mapping of a TPDO enables the drive to
send a predefined message in response to an event.
The RPDO transmission type is 1. The received message is buffered but actually
transmitted for execution at the next SYNC message. Only one RPDO can be buffered for
synchronous trigger. If another RPDO arrives before the SYNC, it overrides the previous
RPDO without any notification. This method enables the simultaneous synchronization
of executing commands in several drives. When a SYNC arrives, the buffered message is
performed in the next available background cycle (Idle loop). Elmo fast reference objects
(0x2001-0x2004) are executed immediately after reception regardless of transmission
type.
With TPDOs, the message is transmitted according to transmission type value, which can
range from 1 to 240, where 1 indicates on each single SYNC, 2 means every second SYNC
message, and so on.
Note: Objects can receive data from SDOs and RPDOs simultaneously. Be aware
that when this occurs, the results are unpredictable. The final value of the object
may be either the SDO or the RPDO data.
CANopen DS 301 Implementation Guide Process Data Objects (PDOs) 5-5
MAN-CAN301IG (Ver. 2.1)
When the device-specific protocol is used, the transmission type is 255 and the
asynchronous behavior is defined in the object description.
When the Elmo manufacture-specific object is used, each sub-index of object 0x2F20
defines trigger events for a single TPDO. The settings for the object go into effect only if
the TPDO communication parameters are set to transmission type 254, and if the TPDO is
correctly mapped. The Elmo drive treats transmission type 254 and transmission type 255
alike.
Several objects may be mapped into the same RPDO. The EMCY message identifies the
objects that failed. A failure occurs when the received data cannot be interpreted or
executed.
In some cases, the Elmo error code is produced and may be included in the EMCY
message.
In case of an RPDO:
The failed RPDO emergency can be masked by clearing bit 8 in object 0x2F21.
Step Explanation
Set 0 to 0x1A00(0) Stop all emissions of TPDO1.
Set 0x60640020 to Program the position value (object 0x6064) to first 4 bytes of
0x1A00(1) the PDO.
Set 0x2F110010 to Program object 0x2F11 for next 2 bytes (PVT head pointer).
0x1A00(2)
Set 0x2F120010 to Program object 0x2F12 for next 2 bytes (PVT tail pointer).
0x1A00(3)
Set 1 to 0x1800(2) Set transmission type in PDO communication parameters to
“Transmit every SYNC.” Other PDO communication
parameters are not programmable.
Set 3 to 0x1A00(0) Activate the three mapped objects.
A PDO mapping element is a 32-bit bit field (object 0x21), divided as follows:
In these cases, the values of the PDO parameters receive the following:
Transmit PDO 1 monitors the drive behavior by transmitting the statusword whenever it
changes (typically after reception of a controlword):
Receive PDO 2 is mapped to the binary interpreter by default. This is done for
compatibility reasons and to enable communication with the Elmo Composer.
Transmit PDO 2 is mapped to the binary interpreter result object, transmitted each time
the binary interpreter completes its processing. The event behavior is set by object
0x2F20, defined in the CANopen Implementation Manual.
0 Error code
1
2 Error register
3 Elmo error code (refer to SimplIQ Software Manual)
4 Error code data field 1
5
6 Error code data field 2
7
The following table lists the supported CAN emergencies. The Emergency error code for
all messages in the table is 0xFF00, and the error register is 0x81.
Error
Code
(Hex) Symbolic Name Reason Data Field
0x56 PVT_QUEUE_LOW Number of valid PVT data Field 1: Write pointer
rows has dropped below Field 2: Read pointer
value stated in MP[5].
0x5B BAD_HEAD_POINTER Write pointer out of physical Value of MP[6]
range [1…64] of PVT table.
MP[6] setting may be wrong.
0x34 PVT_QUEUE_FULL Attempt made to program Field 1: Index of PVT
more PVT points than table entry that could
supported by queue. not be programmed
0x7 BAD_MODE_INIT_DATA Cannot initialize motion due
to bad setup data. Write
pointer is outside range
specified by start pointer and
end pointer.
0x8 MOTION_TERMINATED Mode terminated and motor Field 1: Write pointer
automatically stopped (in Field 2:
MO=1). 1: End of trajectory in
non-cyclic mode
2: Zero or negative
time specified for
motional interval
3: Read pointer
reached write pointer
0xA6 OUT_OF_MODOLU The position is more than 2
Modolu.
Table 6-1: Emergency Codes (PVT/PT Motion)
State Description
Unpowered/Initialization Servo drive is not ready, or it is booting. Drive will not
respond to communication and will not transmit anything.
Pre-operational Servo drive boot sequence is complete, but no command has
been received to enter operational mode. The servo drive will
respond to SDO and NMT messages, but not to PDOs.
Operational Servo drive is fully operational, responding to PDO, SDO
and NMT messages.
Stopped Servo drive can respond only to NMT objects (including
heartbeats).
Table 7-1: Network Management (NMT)
When the servo drive is powered on, it enters the initialization state. After completing the
boot sequence, it automatically enters the pre-operational state. The transition between
pre-operational, operational and prepared states is carried out according to Network
Management (NMT) messages. The COB-ID of an NMT command is always 0.
An NMT message is always two bytes long: the first byte is the command specifier and
the second byte is the ID of the units that are to respond to the message. If the ID is 0, the
NMT message will be executed by the entire set of connected servo drives.
CANopen DS 301 Implementation Guide Emergency (EMCY) 7-2
MAN-CAN301IG (Ver. 2.1)
Note: It is recommended that you turn off the motor and kill any user program
before executing NMT 130.
CANopen DS 301 Implementation Guide SYNC and Time Stamp 8-1
MAN-CAN301IG (Ver. 2.1)
The drives are synchronized by the transmission of a SYNC message, whose arrival time
is captured by the drive. Upon reception of the SYNC, the drive latches its internal timer.
A Time Stamp is a 32-bit message that contains the master internal clock as generated
upon receipt of the client’s own SYNC. The Time Stamp causes a clock synchronization
cycle to be executed. The drive uses the Time Stamp as an absolute timer and adjusts its
internal time in relation to the time latched in the last SYNC 1. To synchronize the master
and drive clocks to full precision, the synchronization process is filtered in order to
ensure that the timing jitter of the time stamping process does not adversely affect
motion smoothness. It takes about 200 SYNC-Time Stamp pairs to ensure that all clocks
are fully synchronized.
COB-ID 256 (0x100) is a constant dedicated ID used for this purpose. The master can send
Time Stamps at any time.
A Time Stamp always refers to the previous SYNC message and must come no later than
5 seconds after the relevant SYNC.
The binary interpreter does not support string operations. Getting and setting strings
may be performed by accessing the appropriate messages via SDOs, using the OS
interpreter. Expressions (such as AC=2*DC+1000) are not supported by the binary
interpreter.
The following table summarizes the main differences between the binary interpreter used
for CAN communication and the ASCII interpreter used for RS-232.
TPDO2 is mapped by default to the transmit binary interpreter object (0x2012) and
RPDO2 is mapped by default to the receive binary interpreter object (0x2013). TPDO2 is
transmitted as an unsynchronized “Binary Interpreter complete” event.
If an interpreter command cannot be serviced for any reason, bit 6 in byte 3 of TPDO2 is
set on, and byte 4 of the response contains the Elmo error code (refer to the EC command
section of the SimplIQ Command Reference Manual).
The following table describes the format in which the host sends commands to the drive:
Byte 0 1 2 3 4-7
Bits 0…7 0…7 0…7 0…5 6 7
Description First Second Index for array See 0: Integer Data in little
command command parameter. 0 for note 1: float endian
character character scalar command format
Note: Bytes 0 and 1, which represent the command character in ASCII, must be
uppercase.
Byte 3, bit 6:
When this bit is set to 1, the drive treats the command as a “query” and not as a “setting.”
In this case, the rest of the data bytes are discarded and the drive replies to the command
according to 4 bytes DLC. For compatibility reasons, bytes 4 to 7 should be 0.
CANopen DS 301 Implementation Guide Binary Interpreter Commands 9-3
MAN-CAN301IG (Ver. 2.1)
Notes:
In array commands in which the index is used (as in ET[100]), the lowest
significant bits are in byte 2 (bits 0 to 7) and the most significant bits are in
byte 3.
Always use the bit 7 of byte 3 to indicate the data type (float or integer) in the
transmitted message, even if the numerical data type is known in advance and
given in the reference manual. This enables Elmo to guarantee that the type of
numerical data returned for any interpreter command will remain unchanged in
future versions.
Example 1:
CL[1] is set to 1.0, which is 3F800000h in hex IEEE format.
CL[1]=1.0
Byte 0 1 2 3 4 5 6 7
Hex value 43 4C 01 80 00 00 80 3F
Example 2:
AC is set to 150,000 (0249F0h):
AC=150000
Byte 0 1 2 3 4 5 6 7
Hex value 41 43 0 0 F0 49 02 0
Example 3:
AC is queried and the DLC is 4:
AC
Byte 0 1 2 3
Hex value 41 43 0 0
Example 4:
This is the same query as in Example 3, but with a DLC of 8 (“Byte 3, bit 6” note).
AC
Byte 0 1 2 3 4 5 6 7
Hex value 41 43 0 40 0 0 0 0
In both Example 3 and Example 4, the reply from the server is:
Byte 0 1 2 3 4 5 6 7
Hex value 41 43 0 0 F0 49 02 0
CANopen DS 301 Implementation Guide Binary Interpreter Commands 9-4
MAN-CAN301IG (Ver. 2.1)
Example 5:
CA[18] = 4096 (1000h) (18 in decimal - 12h in hex)
Byte 0 1 2 3 4 5 6 7
Hex value 43 41 12 0 0 10 0 0
Example 6:
In this example, the server replies to the command ET[992] (3E0h), assuming that the
value is 32121 (7D79h). This is done to query the DLC 8 format (bit 6 in byte 3 is set):
ET[992] (3E0h)
Byte 0 1 2 3 4 5 6 7
Hex value 45 54 E0 43 0 0 0 0
Note: Bytes 0 and 1 represent the command character and must be uppercase.
Byte 3, bit 6:
When this byte is 1 for TPDO, the data in bytes 4 to 7 should be interpreted as an error
code. Refer to the EC command section in the SimplIQ Command Reference Manual for
details.
Note: In array commands in which the index is used (as in ET[100]), the lowest
significant bits are in byte 2 (bits 0 to 7) and the most significant bits are in byte 3.
CANopen DS 301 Implementation Guide Binary Interpreter Commands 9-5
MAN-CAN301IG (Ver. 2.1)
Example:
The server replies to the command CA[1]=4, which is out of range: error code 21 (15h).
Byte 0 1 2 3 4 5 6 7
Hex value 43 41 01 40 15 0 0 0
DL8:
Byte 0 1 2 7
Hex value 42 47 0 0
The reply is always eight bytes long and indicates either success or failure (error).
Success
Byte 0 1 2 3 4 5 6 7
Hex value 42 47 0 0 0 0 0 0
The binary interpreter cannot handle expressions, which must be dealt with using the OS
interpreter.
CANopen DS 301 Implementation Guide The OS Prompt Interpreter 10-1
MAN-CAN301IG (Ver. 2.1)
When the response is ready, it can be read from object 0x1023, sub-index 3.
Example:
The following describes the use of the OS interpreter to send the command PX=1234.
Client initiates OS Evaluate Immediately mode:
RSDO Object 0x1024
23 24 10 00 00 00 00 00
Server replies:
TSDO Object 0x1024
60 24 10 00 00 00 00 00
Server replies:
TSDO Object 0x1023 Sub-index
60 23 10 01 00 00 00 00
Client gets PX value from OS interpreter (assuming OS was already defined as “Evaluate
Immediately”:
RSDO Object 0x1023 Sub 1 P X
23 23 10 01 50 58 00 00
Server replies that command was executed and that the result is waiting:
TSDO Object 0x1023 Sub-index Execute OK
42 23 10 02 01 00 00 00
The EDS is loaded to the internal serial flash memory of the SimplIQ digital servo drive as
part of the firmware download process – future implementation
CANopen DS 301 Implementation Guide Device-specific Objects 12-1
MAN-CAN301IG (Ver. 2.1)
Object description:
Index 1000h
Name Device type
Object code VAR
Data type UNSIGNED32
Category Mandatory
CANopen DS 301 Implementation Guide Device-specific Objects 12-2
MAN-CAN301IG (Ver. 2.1)
Entry description:
Index 1001h
Name Error register
Object code VAR
Data type UNSIGNED8
Category Mandatory
Entry description:
If a bit is set to 1, the specified error has occurred. The only mandatory error that
must be signaled is the generic error, which is signaled in any error situation.
CANopen DS 301 Implementation Guide Device-specific Objects 12-3
MAN-CAN301IG (Ver. 2.1)
Index 1002h
Name Manufacturer status register
Object code VAR
Data type UNSIGNED32
Category Optional
Entry description:
Writing a 0 to sub-index 0 empties the array. Values higher than 0 are not allowed, in
order to prevent an Abort message (error code: 0609 0030h).
The error numbers are of type Unsigned32 and are composed of a 16-bit error code, an
8-bit error register and an 8-bit additional error information field, which is manufacturer-
specific. The error code is contained in the lower two bytes (LSB) and the additional
information is included in the upper two bytes (MSB). The pre-defined error field has the
following structure:
MSB LSB
Bits 24…31 Bits 16…23 Bits 0…15
Manufacturer-specific Error register Error code
error code
For error code and error register values, see object 0x2F21.
CANopen DS 301 Implementation Guide Device-specific Objects 12-4
MAN-CAN301IG (Ver. 2.1)
Object description:
Index 1003h
Name Pre-defined error history
Object code ARRAY
Data type UNSIGNED32
Category Mandatory
Entry description:
Sub-index 0
Description Number of actual errors
Entry category Mandatory
Access Read/Write
PDO mapping No
Value range UNSIGNED8
Default value 0
Sub-index 1
Description Standard error field
Entry category Mandatory
Access Read only
PDO mapping No
Value range UNSIGNED32
Default value 0
Bits 29 and 30 are static (unchangeable). Any attempt to modify this object will result
in an Abort message. Object description:
Index 1005h
Name COB-ID SYNC
Object code VAR
Data type UNSIGNED32
Category Mandatory
Entry description:
According to CiA DSP 301, the 0x1005 object has read/write access, although it
only has read access with SimplIQ digital servo drives .
Index 1008h
Name Manufacturer device name
Object code VAR
Data type VISIBLE STRING
Category Optional
CANopen DS 301 Implementation Guide Device-specific Objects 12-6
MAN-CAN301IG (Ver. 2.1)
Entry description:
Index 1009h
Name Manufacturer hardware
version
Object code VAR
Data type VISIBLE STRING
Category Optional
Entry description:
Index 100Ah
Name Manufacturer software version
Object code VAR
Data type VISIBLE STRING
Category Optional
CANopen DS 301 Implementation Guide Device-specific Objects 12-7
MAN-CAN301IG (Ver. 2.1)
Entry description:
Index 100Bh
Name Node ID
Object code VAR
Data type UNSIGNED8
Category Optional
Entry description:
In order to avoid accidental storage, storage is only executed when a specific signature —
“save” — is written to the appropriate sub-index.
MSB LSB
“e” “v” “a” “s”
65H 76H 61H 73H
CANopen DS 301 Implementation Guide Device-specific Objects 12-8
MAN-CAN301IG (Ver. 2.1)
Object description:
Index 1010h
Name Store parameters
Object code RECORD
Data type UNSIGNED32
Category Optional
Entry description:
Sub-index 0
Description Largest supported sub-index
Entry category Mandatory
Access Read only
PDO mapping No
Value range UNSIGNED8
Default value 1
Sub-index 1
Description Save all parameters
Entry category Mandatory
Access Read/Write
PDO mapping No
Value range UNSIGNED32
Default value No
In order to avoid accidental storage, restore is only executed when a specific signature —
“load” — is written to the appropriate sub-index.
MSB LSB
“d” “a” “o” “l”
64H 61H 6FH 6CH
CANopen DS 301 Implementation Guide Device-specific Objects 12-9
MAN-CAN301IG (Ver. 2.1)
Object description:
Index 1011h
Name Restore parameters
Object code RECORD
Data type UNSIGNED32
Category Optional
Entry description:
Sub-index 0
Description Largest supported sub-index
Entry category Mandatory
Access Read only
PDO mapping No
Value range UNSIGNED8
Default value 1
Bits 29 and 30 are static (unchangeable). The value of this object cannot be modified.
Writing the default COB-ID of the time stamp will not cause an abort code.
CANopen DS 301 Implementation Guide Device-specific Objects 12-10
MAN-CAN301IG (Ver. 2.1)
Object description:
Index 1012h
Name COB-ID time stamp message
Object code VAR
Data type UNSIGNED32
Category Optional
Entry description:
Access Read/Write
PDO mapping No
Value range UNSIGNED32
Default value 100h
According to CiA DSP 301, the 0x1012 object has read/write access, although it
only has read access with SimplIQ digital servo drives.
Index 1013h
Name High resolution time stamp
Object code VAR
Data type UNSIGNED32
Category Optional
Entry description:
Access Read/Write
PDO mapping No
Value range 0…0xFFFFFFFF
Default value 0
CANopen DS 301 Implementation Guide Device-specific Objects 12-11
MAN-CAN301IG (Ver. 2.1)
Object description:
Index 1014h
Name COB-ID emergency message
Object code VAR
Data type UNSIGNED32
Category Mandatory
Entry description:
UNSIGNED32
MSB LSB
Bits 31…24 23…16 15…0
Value 0 Node-ID Heartbeat time, in milliseconds
Encoding - Unsigned8 Unsigned16
If more than one consumer heartbeat entry is configured for the same Node ID, the
device aborts the SDO download with abort code 0604 0043h.
Object description:
Index 1016h
Name Consumer heartbeat time
Object code ARRAY
Data type UNSIGNED32
Category Optional
Entry description:
Sub-index 0
Description Largest supported sub-index
Entry category Optional
Access Read only
PDO mapping No
Value range 1
Default value 1
CANopen DS 301 Implementation Guide Device-specific Objects 12-13
MAN-CAN301IG (Ver. 2.1)
Sub-index 1
Description Consumer heartbeat time
Entry category Optional
Access Read/Write
PDO mapping No
Value range UNSIGNED32
Default value No
Index 1017h
Name Producer heartbeat time
Object code VAR
Data type UNSIGNED16
Category Mandatory
Entry description:
Access Read/Write
PDO mapping No
Value range UNSIGNED16
Default value 0
Note: The following network states are transmitted in byte 0 of the producer data
frame:
1: Disconnected
4: Stopped
5: Operational
127: Pre-operational
For more details, please refer to NMT states in Chapter 7.
CANopen DS 301 Implementation Guide Device-specific Objects 12-14
MAN-CAN301IG (Ver. 2.1)
Index 1018h
Name Identity object
Object code RECORD
Data type UNSIGNED32
Category Mandatory
Entry description:
Sub-index 0
Description Number of entries
Entry category Optional
Access Read only
PDO mapping No
Value range UNSIGNED8
Default value No
Sub-index 1
Description Vendor ID
Entry category Mandatory
Access Read only
PDO mapping No
Value range UNSIGNED32
Default value No
Sub-index 2
Description Product code
Entry category Mandatory
Access Read only
PDO mapping No
Value range UNSIGNED32
Default value No
CANopen DS 301 Implementation Guide Device-specific Objects 12-15
MAN-CAN301IG (Ver. 2.1)
Sub-index 3
Description Revision number
Entry category Mandatory
Access Read only
PDO mapping No
Value range UNSIGNED32
Default value No
Sub-index 4
Description Serial number
Entry category Mandatory
Access Read only
PDO mapping No
Value range UNSIGNED32
Default value No
Note:
For the sub index 3 - Revision number, Elmo implement the follows protocol:
Index 1023h
Name OS command
Object code RECORD
Data type Command Par
Category Optional
CANopen DS 301 Implementation Guide Device-specific Objects 12-16
MAN-CAN301IG (Ver. 2.1)
Entry description:
Sub-index 0
Description Number of entries
Entry category Optional
Access Read only
PDO mapping No
Value range UNSIGNED8
Default value No
Sub-index 1
Description Command
Entry category Optional
Access Write only
PDO mapping No
Value range String octet
Default value None
Sub-index 2
Description Status:
0: Last command completed, no errors, no
reply
1: Last command completed, reply ready
3: Last command rejected, reply ready
255: Executing
Entry category Optional
Access Read only
PDO mapping No
Value range UNSIGNED8
Default value 0
Sub-index 3
Description Reply
Entry category Optional
Access Read only
PDO mapping No
Value range String octet
Default value None
CANopen DS 301 Implementation Guide Device-specific Objects 12-17
MAN-CAN301IG (Ver. 2.1)
Index 1024h
Name OS command mode
Object code VAR
Data type UNSIGNED8
Category Optional
Entry description:
Index 1029h
Name Error behavior
Object code ARRAY
Data type UNSIGNED8
Category Optional
CANopen DS 301 Implementation Guide Device-specific Objects 12-18
MAN-CAN301IG (Ver. 2.1)
Entry description:
Sub-index 0
Description Number of error classes
Entry category Mandatory
Access Read only
PDO mapping No
Value range 1 to 0xFE
Default value 1
Sub-index 1
Description Communication error
Entry category Mandatory
Access Read/Write
PDO mapping No
Value range UNSIGNED8
Default value 1
An SDO is valid only if both SDO valid bits are 0. These objects contain the parameters
for which the SDO is the server. This entry is read only. 2 COB-IDs cannot be changed.
Object description:
Index 1200h
Name Servo SDO 1 Parameter
Object code RECORD
Data type SDO Parameter (object 0x22)
Category Optional
Entry description:
Sub-index 0
Description Number of entries
Entry category Optional
Access Read only
PDO mapping No
Value range 2
Default value 2
Sub-index 1
Description COB-ID client → server (Rx)
Entry category Optional
Access Read only
PDO mapping No
Value range 0x601…0x67F
Default value 0x601
Sub-index 2
Description COB-ID client → server (Tx)
Entry category Optional
Access Read only
PDO mapping No
Value range 0x581…0x5FF
Default value 0x581
2 Ensure that the COB-IDs of the default SDO cannot be manipulated by writing to the OD.
CANopen DS 301 Implementation Guide Device-specific Objects 12-20
MAN-CAN301IG (Ver. 2.1)
Entry description:
Sub-index 0
Description Number of entries
Entry category Optional
Access Read only
PDO mapping No
Value range UNSIGNED8
Default value 2
Sub-index 1
Description COB-ID used by PDO
Entry category Optional
Access Read only
PDO mapping No
Value range UNSIGNED32
Default value Index 1400h: 0x27F
Index 1401h: 0x37F
Index 1402h: 0x47F
Index 1403h: 0x57F
Sub-index 2
Description Transmission type
Entry category Optional
Access Read only
PDO mapping No
Value range UNSIGNED8
Default value 255
CANopen DS 301 Implementation Guide Device-specific Objects 12-21
MAN-CAN301IG (Ver. 2.1)
Notes:
Transmission type may be 255, 254 or 1. On an attempt to change the value of
the transmission type to a value that is not supported by the Elmo drive an abort
message (abort code: 0609 0030h) is generated.
Mapping method: (for more information please refer to the “PDO mapping” section
in this manual.
The sub-indices from 1h to number of entries contain the information about the
mapped application variables. These entries describe the PDO contents by their
index, sub-index and length. All three values are hexadecimal coded.
The PDO mapping element is a 32-bit field (object 0x21), divided as follows:
MSB ←⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯→ LSB
The length of the entry contains the length of the object in bits (1..40h).
If the change in PDO mapping cannot be executed (for example, the PDO length is
exceeded or the SDO client attempts to map an object that cannot be mapped), the
device responds with an Abort SDO Transfer Service.
Sub-index 0 determines the valid number of objects that have been mapped. For
changing the PDO mapping, sub-index 0 must be set to 0 (mapping is deactivated).
On then can the objects be remapped.
When a new object is mapped by writing a sub-index between 1 and 8, if the object
does not exist or it cannot be mapped, the SDO transfer is aborted with the Abort
SDO Transfer Service with abort code 0602 0000h or 0604 0041h. You can configure a
single object without remapping the remaining objects. The previously mapped
objects will not be cleared.
After all objects are mapped, sub-index 0 is set to the valid number of mapped
objects. Then the drive rechecks the mapping integrity. Finally, the PDO is created by
writing to its communication parameter COB-ID. When sub-index 0 is set to a value
greater than 0, the device may validate the new PDO mapping before transmitting the
response of the SDO service. If an error is detected, the Elmo drive transmits the
Abort SDO Transfer Service with abort codes 0602 0000h, 0604 0041h or 0604 0042h.
When sub-index 0 is read, the actual number of valid mapped objects is returned.
CANopen DS 301 Implementation Guide Device-specific Objects 12-22
MAN-CAN301IG (Ver. 2.1)
Object description:
Entry description:
Sub-index 0
Description Number of mapped application object in PDO
Entry category Optional
Access Read/Write
PDO mapping No
Value range UNSIGNED32
Default value 1
Sub-index 1
Description PDO mapping for first and last application object to
be mapped
Entry category Optional
Access Read/Write
PDO mapping No
Value range UNSIGNED32
Default value Object 1600h(1): 0x20010040 (controlword)
Object 1601h(1): 0x20120040 (binary interpreter)
Object 1602h: 0
Object 1603h: 0
Default value 0x581
Notes:
Up to 8 objects can be mapped to a single RPDO.
Dummy entries are supported by the Elmo drive.
The object can be mapped during the PRE OPERATIONAL stage.
Dynamic mapping is allowed during the OPERATIONAL stage. The SDO client
is responsible for data consistency.
CANopen DS 301 Implementation Guide Device-specific Objects 12-23
MAN-CAN301IG (Ver. 2.1)
Entry description:
Sub-index 0
Description Number of entries
Entry category Optional
Access Read only
PDO mapping No
Value range UNSIGNED8
Default value No
Sub-index 1
Description COB-ID used by PDO
Entry category Optional
Access Object 1800h: Read/Write
Object 1801h: Read/Write
Object 1802h: Read/Write
Object 1803h: Read/Write
PDO mapping No
Value range UNSIGNED32
Default value Index 1800h: 0x400001FF
Index 1801h: 0x400002FF
Index 1802h: 0x400003FF
Index 1803h: 0x400004FF
CANopen DS 301 Implementation Guide Device-specific Objects 12-24
MAN-CAN301IG (Ver. 2.1)
Sub-index 2
Description Transmission type
Entry category Optional
Access Object 1800h: Read/Write
Object 1801h: Read/Write
Object 1802h: Read/Write
Object 1803h: Read/Write
PDO mapping No
Value range 0…240
Default value 0
Sub-index 3
Description Inhibit time
Entry category Optional
Access Read/Write
PDO mapping No
Value range UNSIGNED16
Default value 0 (no inhibit time between messages)
Sub-index 4
Description Reserved
Entry category
Access
PDO mapping
Value range
Default value
Sub-index 5
Description Event timer
Entry category Optional
Access Read/Write
PDO mapping No
Value range 0 - not used
UNSIGNED16
Default value No
CANopen DS 301 Implementation Guide Device-specific Objects 12-25
MAN-CAN301IG (Ver. 2.1)
For more information about the PDO mapping method, refer to objects 0x1600 - 0x1603.
Object description:
Entry description:
Sub-index 0
Description Number of mapped application objects in PDO
Entry category Optional
Access Read only
PDO mapping No
Value range UNSIGNED8
Default value 0
CANopen DS 301 Implementation Guide Device-specific Objects 12-26
MAN-CAN301IG (Ver. 2.1)
Sub-index 1-8
Description PDO mapping for nth application object to be mapped
Entry category Optional
Access Object 1A00h: Read/Write
Object 1A01h: Read/Write
Object 1A02h: Read/Write
Object 1A03h: Read/Write
PDO mapping No
Value range UNSIGNED32
Notes:
Up to eight objects can be mapped to a single TPDO.
Dummy entries are supported by the Elmo drive.
The object can be mapped during PRE OPERATIONAL stage.
Dynamic mapping is allowed during the OPERATIONAL stage. The SDO client is
responsible for data consistency.
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-1
MAN-CAN301IG (Ver. 2.1)
Index 2001h
Name PVT data
Object code VAR
Data type PVT DataPar (object 0x40)
Category Optional
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-2
MAN-CAN301IG (Ver. 2.1)
Entry description:
Notes:
The transmission type for mapping this object must be 255; otherwise, an Abort
message (code 0604 0043h) will be transmitted.
When this object is used to feed PVT reference points to the drive while a PVT
motion is executing, the drive automatically enters Online Feed mode, in which
the drive is aware of the position written and takes the following precautions:
If the feed is too slow, the drive needs to fetch points not yet programmed,
and the motion will abort with a “Queue underflow” emergency.
If the feed is too fast, so that points not yet used are overstruck, the drive will
reject the feed attempt with a “Queue overflow” emergency.
The Online Feed mode will continue until at least one setting of PVT parameters
has been completed without using the RPDO.
Index 2002h
Name PT data
Object code VAR
Data type PT DataPar (object 0x41)
Category Optional
Entry description:
Notes:
The transmission type for mapping this object must be 255; otherwise, an Abort
message (code 0604 0043h) will be transmitted.
When this object is used to feed PT reference points to the drive while a PT
motion is executing, the drive automatically enters Online Feed mode, in which
the drive is aware of the position written and takes the following precautions:
If the feed is too slow, the drive needs to fetch points not yet programmed,
and the motion will abort with a “Queue underflow” emergency.
If the feed is too fast, so that points not yet used are overstruck, the drive will
reject the feed attempt with a “Queue overflow” emergency.
The Online Feed mode will continue until at least one setting of PT parameters
has been completed without using the RPDO.
Index 2004h
Name ECAM data
Object code VAR
Data type PT DataPar (object 0x41)
Category Optional
Entry description:
Notes:
The transmission type for mapping this object must be 255; otherwise, an Abort
message (code 0604 0043h) will be transmitted.
When this object is used to feed ECAM reference points to the drive, a working
table with a border cannot be used. (Refer to the SimplIQ Software Reference
Manual for more information.)
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-4
MAN-CAN301IG (Ver. 2.1)
Index 2012h
Name Binary interpreter
Object code VAR
Data type Binary interpreter query (object 0x42)
Category Mandatory
Entry description:
Index 2013h
Name Binary interpreter
Object code RECORD
Data type Binary interpreter command (object 0x43)
Category Mandatory
Entry description:
Index 2030h
Name Bring recorded data
Object code RECORD
Data type UNSIGNED32
Category Optional
Entry description:
Sub-index 0
Description Number of supported elements
Entry category Mandatory
Access Read only
PDO mapping No
Value range UNSIGNED8
Default value 16
Sub-index 1
Description Main speed
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
Sub-index 2
Description Main position
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-6
MAN-CAN301IG (Ver. 2.1)
Sub-index 3
Description Position command
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
Sub-index 4
Description Digital input
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
Sub-index 5
Description Position error for UM=4, UM=5
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
Sub-index 6
Description Torque command
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-7
MAN-CAN301IG (Ver. 2.1)
Sub-index 7
Description Bus voltage
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
Sub-index 8
Description Auxiliary position
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
Sub-index 9
Description Auxiliary speed
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
Sub-index 0A
Description Active current
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-8
MAN-CAN301IG (Ver. 2.1)
Sub-index 0B
Description Reactive current
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
Sub-index 0C
Description Analog input 1
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1
Default value
Sub-index 0D
Description Reserved
Entry category
Access
PDO mapping
Value range
Default value
Sub-index 0E
Description Current phase A (IA value)
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1.
Default value
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-9
MAN-CAN301IG (Ver. 2.1)
Sub-index 0F
Description Current phase B (IB value)
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1.
Default value
Sub-index 10
Description Speed command
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1.
Default value
Sub-index 0E
Description Current phase A (1A value)
Entry category Mandatory
Access Read only
PDO mapping No
Value range Refer to Table 13-1.
Default value
The segmented response is built from the header and data stream.
Byte
Number Description Value Type
0-1 Variable type for user. 0: Integer system parameter Byte
Field has no practical 1: Real system parameter
significance. 2: Integer user program
variable
3: Real user program variable
2-3 Data width: number of hex 4: Short integer Byte
character of single transmitted 8: Long integer
data item.
4-7 Data length: actual number of Word
transmitted data items.
Table 13-1: Upload SDO Header Byte
The rest of the byte sequence is the data stream. All bytes are transferred according to
the scheme explained in section 2.9. Sub-index 0 uploads the supported object entries.
Notes:
If the recorder variables are changed during upload, the process will be aborted.
This object was removed from the EDS file to enable successful automatic EDS
file testing.
The group ID of a drive may equal its ID. In order to set the group ID, first set object
0x2040, then send the command Reset Communication NMT service, followed by the
Start Remote NMT service. The group ID becomes effective only at the next CAN
network reset (NMT 82h).
Object description:
Index 2040h
Name ID for synchronized commands
Object code VAR
Data type UNSIGNED8
Category
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-11
MAN-CAN301IG (Ver. 2.1)
Entry description:
Access Read/Write
PDO mapping No
Value range No
Default value 128
This object is typically used when the host wants to synchronize records for several slave
nodes. It returns the precise time when the synchronous PDO data has been sampled
(refer to Chapter 8).
Object description:
Index 2041h
Name Drive free-running timer
Object code VAR
Data type UNSIGNED32
Category
Entry description:
Index 2082h
Name CAN controller status
Object code VAR
Data type UNSIGNED32
Category Optional
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-12
MAN-CAN301IG (Ver. 2.1)
Entry description:
Byte stream:
The 32-bit number has the following structure:
Bits 31…24 23…16 15…8 7…0
Description Network status CAN transmit CAN receive CAN receiver
error counter error counter flag
The CAN receive error counter (bits 8…15) reflects the status of the CAN receive
error counter. The CAN transmit error counter (bits 16…23) reflects the status of the
CAN transmit error counter.
The network status (bits 24…31) may be one of the following values:
5: Operational
127: Pre-operational
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-13
MAN-CAN301IG (Ver. 2.1)
Note: Network states 1 & 4 (disconnect & stop, respectively) can not be retrieved
using the CAN controller status object, since neither the PDO nor the SDO is
communicated. However, the DD command (RS-232 serial communication) can be
used in these cases. The node state can also be retrieved using the Heartbeat
Producer mechanism.
Index 208Ah
Name Begin time
Object code VAR
Data type UNSIGNED32
Category Optional
Entry description:
Access Read/Write
PDO mapping No
Value range No
Default value No
Index 2090h
Name Download firmware
Object code DOMAIN
Data type Visible String
Category Optional
Entry description:
Default value No
After the final character of each S-record line, the host must send the character 0x0A to
indicate end-of-line. The next S-record can be sent immediately after 0xA.
Example:
First, the host initiates an SDO segmented sequence:
Note: This object was removed from the EDS file to enable successful automatic
EDS file testing.
Index 20A0h
Name Auxiliary position
Object code VAR
Data type SIGNED32
Category Optional
Entry description:
Index 20A1h
Name Position error
Object code VAR
Data type SIGNED32
Category Optional
Entry description:
When this object is mapped to a TPDO and the transmission type is set to asynchronous
event, it is transmitted on every change of an input.
The report value of object 0x2200 is similar to the IP command. Please refer to the SimplIQ
Command reference manual.
Object description:
Index 2200h
Name Digital inputs
Object code VAR
Data type UNSIGNED32
Category Optional
Entry description:
Object description:
Index 2201h
Name Digital inputs low byte
Object code VAR
Data type UNSIGNED8
Category Optional
Entry description:
Data description:
7 4 3 2 1 0
Home Positive Negative
Reserved Interlock
switch limit switch limit switch
MSB
The switch must be “active high.”
Notes:
The interlock is always 0.
“Active high” means that the bit is set to high when the switch is logically active.
Different SimplIQ drives support a different number of digital inputs. It is
advised to use only the relevant bits according to the specific drive.
This object is evaluated every 3 milliseconds.
When mapped as asynchronous, this object is transmitted at every change within the
calculation resolution period. Inhibit time can be used to prevent busload or to control
the time latency causing the same TPDO to be transmitted due to other asynchronous
events.
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-17
MAN-CAN301IG (Ver. 2.1)
The value can be converted to physical units using the WS[91] command. Normally this
factor is: 0.00067139.
Object description:
Index 2205h
Name Analog Input Object
Object code ARRAY
Data type SIGNED16
Category Optional
Entry description:
Sub-index 0
Description Number of entries
Entry category Optional
Access Read only
PDO mapping No
Value range 2
Default value 2
Sub-index 1
Description Analog Input 1
Entry category Optional
Access Read only
PDO mapping Yes
Value range SIGNED16
Default value -
Sub-index 2
Description Analog Input 2
Entry category Optional
Access Read only
PDO mapping Yes
Value range SIGNED16
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-18
MAN-CAN301IG (Ver. 2.1)
Default value -
Example:
Host sends SDO request for analog input 2:
Byte 0 1 2 3 4 5 6 7
Hex value 40 05 22 02 00 00 00 00
Assume that the drive answer an SDO expedite message with the following value:
Byte 0 1 2 3 4 5 6 7
Hex value 42 05 22 02 BD FF 00 00
Note: Byte 4 & byte 5 are 16 bits, representing the internal value of analog input 2.
Index 2F00h
Name User Integer
Object code ARRAY
Data type Integer32
Category Optional
Entry description:
Sub-index 0
Description Number of entries
Entry category Optional
Access Read only
PDO mapping No
Value range 24
Default value 24
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-19
MAN-CAN301IG (Ver. 2.1)
Sub-index 1-24
Description User Array
Entry category Optional
Access Read/write
PDO mapping Yes
Value range [(–230 +1)…(230 –1)]
Default value 0
Index 2F01h
Name User Float Array
Object code ARRAY
Data type Floating Point (Float)
Category Optional
Entry description:
Sub-index 0
Description Number of entries
Entry category Optional
Access Read
PDO mapping No
Value range 24
Default value 24
Sub-index 1-24
Description User Array
Entry category Optional
Access Read/write
PDO mapping Yes
Value range [-1e20…1e20]
Default value 0
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-20
MAN-CAN301IG (Ver. 2.1)
Index 2F02h
Name ET Array
Object code ARRAY
Data type Integer 32
Category Optional
Entry description:
Sub-index 0
Description Number of entries
Entry category Optional
Access Read
PDO mapping No
Value range 255
Default value 255
Sub-index 1-255
Description User Array
Entry category Optional
Access Read/write
PDO mapping Yes
Value range
Default value 0
Index 2F11h
Name PVT head pointer
Object code VAR
Data type UNSIGNED16
Category
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-21
MAN-CAN301IG (Ver. 2.1)
Entry description:
Index 2F12h
Name PVT tail pointer
Object code VAR
Data type UNSIGNED16
Category
Entry description:
Index 2F15h
Name Profile position remaining points
Object code VAR
Data type UNSIGNED16
Category
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-22
MAN-CAN301IG (Ver. 2.1)
Entry description:
The event definition for the PDO transmission is a bit field, as follows:
Bit Event
0 Motion complete: MS = 0
1 Main homing complete: HM[1] = 0
2 Auxiliary homing complete: HY[1] = 0
3 Motor shut down by exception: MO = 0
4 Motor started: MO = 1
5 User program “emit” command
6 OS interpreter execution complete
7 Digital input event according to object 0x2F23
8…30 Reserved
31 Binary interpreter command processing complete
Asynchronous TPDOs obey the inhibit time restrictions, as explained in section 2.4.
Object description:
Index 2F20h
Name PDO events
Object code ARRAY
Data type UNSIGNED32
Category Optional
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-23
MAN-CAN301IG (Ver. 2.1)
Entry description:
Sub-index 0
Description Number of sub-indices
Entry category Mandatory
Access Read only
PDO mapping No
Value range 4
Default value 4
Sub-index 1
Description Events for PDO1 trigger
Entry category Optional
Access Read/Write
PDO mapping No
Value range 0…0x4FFFFFFF
Default value 0
Sub-index 2
Description Events for PDO2 trigger
Entry category Optional
Access Read only
PDO mapping No
Value range
Default value 0x80000000
Sub-index 3
Description Events for PDO3 trigger
Entry category Optional
Access Read/Write
PDO mapping No
Value range 0…0x4FFFFFFF
Default value 0
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-24
MAN-CAN301IG (Ver. 2.1)
Sub-index 4
Description Events for PDO4 trigger
Entry category Optional
Access Read/Write
PDO mapping No
Value range 0…0x4FFFFFFF
Default value 0
Note: This object does not control certain emergency messages, such as PVT motion
errors. Some of the uncontrolled emergency objects include manufacturer-specific
information.
The manufacturer error field for all controlled emergency messages is zero, except the
user program EMCY() command, in which the program code determines the value of the
field. The argument of the EMCY() function is written as an Unsigned32 number, into
bytes 4 to 7 of the emergency message.
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-25
MAN-CAN301IG (Ver. 2.1)
Notes:
A “CAN message lost” emergency may indicate an overrun, in which a CAN
message has not been retrieved from the receiver on time. The next message to
the same buffer crashes with the as-yet unread message. Both messages may be
lost in the crash. There may also be more lost messages that go undetected,
because they may have be sent while the message loss indication was on. The
“CAN message lost” message tells where a crash occurred, but it does not tell
how many messages have actually been lost. The emergency message includes
some information about the type of the “lost message” where it can. Data Field 2
in the EMCY objects contains information about the lost message. When the
value is –1, the overrun occurred in the CAN controller hardware buffer. When
the overrun is a software buffer overrun, data field 2 contains the COB-ID of the
last message received and which caused the overrun.
In case of a failed RPDO, the emergency message with data field 1 and data
field 2 includes the following information.
Note: If the profile is executed by the DSP 402 protocol, byte 3 of the Elmo error
code is set to 0xff. The object index and sub-index are according to the failed
profile:
0x607A: profile position
0x60FF: profile velocity
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-26
MAN-CAN301IG (Ver. 2.1)
Motor Fault
Value (MF Error Error
Motor Fault Description Command) Code Register
Resolver or Analog Encoder feedback failed 1 0x7300 0x81
Reserved 1 0x7305 0x21
Reserved 2 0x7306 0x21
Feedback loss: no match between encoder and 4 0x7380 0x81
Hall locations. Available in encoder + Hall
feedback systems
Peak current has been exceeded due to: 8 0x8311 0x21
Drive malfunction
Badly-tuned current controller
Disabled by Limit switch 0x10 0x5441 0x21
ECAM table problem 0x20 0x5280 0x81
Two digital Hall sensors changed at once; only 0x40 0x7381 0x81
one sensor can be changed at a time.
Speed tracking error DV[2]-VX (for UM=2, 4 or 5) 0x80 0x8480 0x81
exceeded speed error limit ER[2], due to:
Bad tuning of speed controller
Too tight a speed-error tolerance
Inability of motor to accelerate to required
speed because line voltage is too low, or
motor is not powerful enough
Position tracking error DV[3]-PX (UM5) or 0x100 0x8611 0x21
DV[3]-PY (UM=4) exceeded position error limit
ER[3], due to:
Bad tuning of position or speed controller
Too tight a position error tolerance
Abnormal motor load, a mechanical limit
reached
Cannot start due to inconsistent database. This 0x200 0x6320 0x21
type of database inconsistency is reflected in
status SR report and in CD CPU dump report.
Too large a difference in ECAM table entries. 0x400 0x5280 0x81
Heartbeat failure, occurring only if drive is set to 0x800 0x8130 0x11
“Abort under heartbeat failure” in a CANopen
network (object 0x6007 in CAN object dictionary
set to 1, malfunction).
Cannot find electrical zero of motor when 0x10000 0x8380 0x81
attempting to start motor with an incremental
encoder and no digital Hall sensors. Applied
motor current may not suffice for moving motor
from its place.
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-27
MAN-CAN301IG (Ver. 2.1)
Motor Fault
Value (MF Error Error
Motor Fault Description Command) Code Register
Speed limit exceeded: VX < LL[2] or VX > HL[2] 0x20000 0x8481 0x81
Stack overflow: fatal exception. May occur if CPU 0x40000 0x6180 0x81
cannot handle a real-time load due to too low a
sampling time.
CPU exception: fatal exception. 0x8000 0x6181 0x81
Timing Error 0x100000 0x5281 0x81
Motor stuck: motor powered but not moving 0x200000 0x7121 0x21
according to definition of CL[2] and CL[3].
Position limit exceeded: PX < LL[3] or PX > HL[3] 0x400000 0x8680 0x81
(UM=5), or PY < LL[3] or PY > HL[3] (UM=4).
Reserved 0x8000000 0x1000 0x81
Cannot tune current offsets 0x10000000 0x8381 0x81
Cannot start motor 0x20000000 0xFF10 0x81
Reserved 0x800000 0x8680 0x81
Reserved 0x1000000 0x8312 0x3
Cannot start motor 0x20000000 0x5400 0x21
Under-voltage: power supply is shut down or it 0x3000 0x3120 0x5
has too high an output impedance.
Over-voltage: power-supply voltage is too high 0x5000 0x3310 0x5
or servo drive could not absorb kinetic energy
while braking a load. A shunt resistor may be
required.
Reserved 0x7000 0x3100 0x5
Reserved 0x9000 0x2311 0x3
Short circuit: motor or its wiring may be 0xb000 0x2340 0x3
defective, or drive is faulty.
Temperature: drive overheating. The 0xd000 0x4310 0x9
environment is too hot or heat removal is not
efficient. Could be due to large thermal resistance
between drive and its mounting.
Reserved 0xf000 0x5282 0x81
Table 13-3: Motor Shut Down by Fault Emergency Error Codes
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-28
MAN-CAN301IG (Ver. 2.1)
Note: Setting a new value for object 0x2F21 deletes all emergency events queued
for transmission.
Object description:
Index 2F21h
Name Emergency events
Object code VAR
Data type UNSIGNED16
Category
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-29
MAN-CAN301IG (Ver. 2.1)
Entry description:
Access Read/Write
PDO mapping No
Value range No
Default value 0xFF (all emergencies on)
A node goes into bus off state when more than 255 errors have been counted by the
transmitter error counter. If this state, the node cannot participate in the bus activities. A
node in bus off state can become “error active” (no longer in bus off state) with its error
counter set to 0 after 128 occurrences of 11 consecutive recessive bits (logical 1) have been
monitored on the bus.
Note: When object 0x2F22 is 0, the node can never leave bus off state.
Object description: :
Index 2F22h
Name Bus-off time out
Object code VAR
Data type UNSIGNED16
Category
Entry description:
Access Read/Write
PDO mapping No
Value range 0…65,535
Default value 500
Logic digital inputs (logic DINs) are physical or simulated input in values. The polarity
for physical inputs is set according to the IL[N] command and to the debouncer
according to the IF[N] command. The logic DINs are sampled each real-time cycle. The
decisions about an event and its transmission are made in the background.
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-30
MAN-CAN301IG (Ver. 2.1)
The following table lists the values used to define the digital input transitions:
DIN Mask Value DIN Logic Level for Activating an Event
0 No event occurs.
1 Switched from low to high (↑).
2 Switched from high to low (↓).
3 Switched (↑ or ↓).
When a DIN event occurs, the mapped TPDO is transmitted. The DIN mask value is
determined according to a 2-bit field of the digital input.
Example:
The value 0x00A1 sets the DIN4 event to “Event on every switch” and the DIN1 event to
“Switch from low active to high active.” every other digital input switch does not
produce an event:
DIN6 DIN5 DIN4 DIN3 DIN2 DIN1
0 0 0 0 1 1 0 0 0 0 0 1
TPDOs are transmitted only when the following steps are performed:
1. An object is mapped to the relevant TPDO and the transmission type is set to 254.
2. The logic level of the relevant digital input is adjusted (IL[N] command).
3. The event parameter of the input is determined by object 0x2F23.
4. The “digital input event” bit is set in object 0x20F0.
From this point on, as soon as the event occurs, the requested TPDO is transmitted.
Notes:
If several inputs are selected, a DIN event will occur when at least one of the
selected digital inputs is switched.
A DIN event occurs according to switch level, regardless of the function selected
for that switch (details given in the IL[N] and IP command sections of the
SimplIQ Command Reference Manual).
Object description:
Index 2F23h
Name Digital input TPDO event parameters
Object code VAR
Data type UNSIGNED16
Category
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-31
MAN-CAN301IG (Ver. 2.1)
Entry description:
Access Read/Write
PDO mapping No
Value range 0x0FFF
Default value 0x0FFF (event on every switch)
Index 2F30h
Name Last time stamp correction
Object code VAR
Data type UNSIGNED32
Category
Entry description:
Object description:
Index 2F31h
Name Last SYNC time
Object code VAR
Data type UNSIGNED32
Category
Entry description:
Index 2F40h
Name Configuration object
Object code VAR
Data type UNSIGNED32
Category
Entry description:
Access Read/Write
PDO mapping No
Value range No
Default value No
Data description:
Bit 31 1 0
T Stamp master:
The node is defined as a Time Stamp master. The drive’s internal 32-bit, 1-
microsecond resolution global timer is used as the system time stamp. The drive does
not response to Time Stamp messages (COB-ID 0x100 or object 0x1013). In order to
prevent motor jumps, setting this bit is allowed when the motor is off (MO=0).
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-33
MAN-CAN301IG (Ver. 2.1)
Index 2F41h
Name DS402 Configuration object
Object code VAR
Data type UNSIGNED32
Category
Entry description:
Access Read/Write
PDO mapping No
Value range No
Default value 0
Data description:
31 2 1 0
Allows fast treatment of the DS402 profile velocity mode. In this case the following
objects are not considered: profile acceleration (0x6083) profile deceleration (0x6084),
polarity (0x607E), acceleration factor (0x6097), velocity limit (0x607F), velocity
encoder factor (0x6094). Any settings of the AC & DC can be done with the Elmo
Binary Interpreter. The target velocity (0x60FF) is considered as counts/sec.
Start Motion in PP Mode – Bit 1 :
This bit determines the behavior of the profile position (PP) when motion begins.
‘0’ - the motion begins when bit 4 in the control word (New set point) is reset from
‘1’ to ‘0’. ‘0’ is the default value of bit 1 of this Object ( 0x2F41). It maintains
compatibility with previous firmware versions.
“1” - the motion begins when bit 4 in the control word (New set point) is set from ‘0’
to ‘1’.
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-34
MAN-CAN301IG (Ver. 2.1)
In the DS402 profile torque, it is necessary to define a window around the target torque
‘0’, to obtain a good indication of when the target is reached. By default, this window is
5% of the Current Limit (CL [1]). It is possible to modify the percentage by means of this
object.
Defines the '0' torque (current) for profile torque 'target reached' indication.
In DS402 Profile Torque mode, when the torque command is set to '0', it is possible that
the current feedback may vibrate, thus preventing a steady state. For this case, object
0x2F60 defines a threshold for the '0' value:
The value is defined as a percentage of the Continuance Current Limit (CL[1]).
The object units are 'internal unit' form.
The WS[56] command retrieves the "ampere to internal units" factor.
Example:
If the required window of 2.5 % of our CL [1] and CL [1] is 3 Amps, then according to the
previous formulas:
CL [1] [Internal Units][2.5%] = 4074 * 0.025 [Internal Units] = 102 [Internal Units]
• Manufacturer-specific options
• Object description:
Index 2F60h
Name Zero torque threshold
Object code VAR
Data type UNSIGNED16
Category Optional
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-35
MAN-CAN301IG (Ver. 2.1)
• Entry description:
Access Read/write
PDO mapping No
Value range UNSIGNED16
Default value No
Note: In the situation where the torque command value is not set to '0', a default
threshold of 25%is used.
This object defines the range of the CAN Encoder. The low limit is stored in sub-index 1
and the high limit in sub-index 2.
Index 2F70h
Name Can Encoder Range
Object code ARRAY
Data type UNSIGNED32
Category Optional
• Entry description:
Sub-index 0
Description Number of entries
Entry category Mandatory
Access Read only
PDO mapping No
Value range 2
Default value 2
CANopen DS 301 Implementation Guide Manufacturer-specific Objects 13-36
MAN-CAN301IG (Ver. 2.1)
Sub-index 1
Description Low Limit
Entry category Optional
Access Read/write
PDO mapping No
Value range INTEGER32
Default value No
Sub-index 2
Description Hi Limit
Entry category Optional
Access Read/write
PDO mapping No
Value range INTEGER32
Default value No
Heartbeats are sent from the moment of initialization, even if the slave state is stopped.
Object 0x1016 is a list of heartbeats that must be accepted from external devices. Failure
to accept an expected heartbeat leads to behavior described by object 0x1029 and object
0x6007. Non-acceptance of a consumer heartbeat message at the expected time is called a
“heartbeat event,” which creates an emergency only if the relevant bit of EMCY is set to 1
(see object 0x2F21). A single emergency object may be transmitted per one heartbeat
event. The heartbeat event is reset by one of the following events:
A new heartbeat message arrives from the producer.
The heartbeat consumer time object (0x1016) is written.
SimplIQ digital servo drives use a minimal implementation of object 0x1016. The sole
heartbeat that it monitors is that of the network master. Object 0x1017 sets the period for
sending heartbeats.
The COB-ID for a heartbeat message is 0x700 + Device ID. For example, a first servo drive
with the unit ID of 1 will have heartbeat COB-ID of 0x701 = 1793.
CANopen DS 301 Implementation Guide Downloading Firmware 15-1
MAN-CAN301IG (Ver. 2.1)
After the firmware is downloaded, the drive continues to communicate using the
previous firmware. If the download fails, a retry is possible.
CANopen DS 301 Implementation Guide Initial CAN Communication Setup 16-1
MAN-CAN301IG (Ver. 2.1)
Setting the PP[13] and PP[14] parameters does not result in immediately changes. In
order to activate the new communication parameters, an NMT reset communication
command must be sent, or the servo drive must be rebooted.
In order to start CAN PDO communication, an NMT network start command must be
issued. Afterwards, the servo drive is in CAN operational state.
CANopen DS 301 Implementation Guide Appendix: Little and Big Endians 16-2
MAN-CAN301IG (Ver. 2.1)
0
indication
Heartbeat
Consumer(s)
indication
lType = 0x12345678;
sType[1] = 0x1234 ;
sType[2] = 0x5678 ;
The CANopen protocol supports the little endian method; for example, a node replies to
a TPDO with three objects:
Object 1: Signed24 - 0x12ABCD
Object 2: Unsigned32 - 0x123456AB
Object 3: Unsigned8 - 0x1F