The document describes the standard CANopen
implementations created. It is addressed to
CANopen system integrators and to CANopen
device designers who already know the
content of standards designed by C.i.A. (CAN in
Automation).
Describes a serial communication bys that implements the “physical” level 1 and the
“data link” level 2 of the ISO/OSI reference model.
Describes implementation of the CAN in level 7 “application” of the ISO/OSI reference
model form which CANopen derives.
CAL service element. Defines the CAN Apllication Layer for the various industrial
applications.
Unit of transport of data in a CAN network (aCAN message). A maximum of 2,048 COBs
may be present i a CAN network, each of which may transport from 0 to a maximum of
8 bytes.
Identifying element of a CAN message. The identifier determines the priority of a COB
in case of multiple messages in the network.
Number of data bytes in the data field of a CAN message.
Number of data bytes transmitted in a single frame.
International authority providing standards for various merchandise sectors.
CAL service element. Describes how to configure, initialize, manage errors in a CAN
network.
Process data communication objects (with high priority).
SDO objects received from the remote device.
Service data communication objects (with low priority). The value of this data is
contained in the “Objects Dictionary” of each device in the CAN network.
The numbers followed by the suffix “h”
represent a hexadecimal value, with suffix “b” a
binary value, and with suffix “d” a decimal value.
The value is decimal unless specified otherwise.
Please make sure that the CANbus is terminated.
The impedance measured between CAN-H and
CAN-L must be 60 ohm that means the cable
must be connected to a 120 ohm resistor on each
ends of the bus line. Internally the tranducer is
not terminated with the resistor of 120 ohm.
Do not confuse the signal lines of the CAN bus,
otherwise communication with the transducer is
impossible.
Every CANopen device contains an
international Network Management server that
communicates with an external NMT master.
One device in a network, generally the host,
may act as the NMT master.
Through NMT messages, each CANopen device’s
network management server controls state
changes within its built-in Communication
State Machine.
This is independent from each node’s
operational state machine, which is device
dependant and described in Control State
It is important to distinguish a CANopen
device’s operational state machine from its
Communication State Machine.
CANopen sensors and I/O modules, for example,
have completely different operational state
machines than servo drives. The “Communication State Machine” in all CANopen devices, however,
is identical as specified by the DS301.
NMT messages have the highest priority. The 5
NMT messages that control the Communication
State Machine each contain 2 date bytes that
identify the node number and a command to that
node’s state machine.
Table 1 shows the 5 NMT messages surpported,
and Table 2 shows the correct message for
sending these messages.
COB-IDRTRByte 1Byte 2Byte 3Byte 4Byte 5Byte 6Byte 7Byte 8
000h0See table 1 See table 2These bytes are not sent
4. Baud rateNode-ID can be configurable via SDO
communication object =x20F2 and 020F3 (see
communication examples at the end of this
coument).
The default Baud rate is 250kbit/s.
5. Node-ID and resolutionNode-ID can be configurable via SDO
communication object 0x20F0 and 0x20F1 (see
communication examples at the end of this
documentation).
The default Node-ID is 7F.
6. Parameter settingsAll object dictionary parameters (object with
marking PARA) can be saved in a special
section of the internal EEPROM and secured by
checksum calculation.
The special LSS parameters (objects with
marking LL-PARA), also part of the objec
dictionary, will be also saved in a special
section of the internal EEPROM and secured by
checksum calculation.
Data Field
Table 2
Important Note:
Changing this parameter can disturb the network!
Use the service only if one device is connected to the
network!
Important note:
Changing this parameter can disturb the network!
Use the service only if one device is connected to the
network!
Due to the internal architecture of the
microcontroller the parameter write cycles are
limited to 100,000 cycles.
7. Restore default
parameters
8. Heartbeat
All object dictionary parameters (objects with
marking PARA) can be restored to factory default
values via SDO communication (index 0x1011).
The heartbeat mechanism for this device
isestablished through cyclic transmission of
the heartbeat message done by the heartbeat
producer.
One or more devices in the network are aware
of this heartbeat message. If the herartbeat
cycle fails from the heartbeat producer the local
application on the heartbeat consumer will be
informed about that event.
Heartbeat Message
COB-IDByte0
700+Node-IDContentNMT State
The implementation of either guarding or
heartbeat is mandatory.
The device supports Heartbeat Producer
functionality.
The producer heartbeat time is defined in object
0x1017.
Emergency messages (EMCY) shall be triggered
by internal errors on device and they are
assigned the highest possible priority to ensure
that they get access to the bus without delay
(EMCY Producer). By default, the EMCY contains
the error field with pre-defined error numbers
EMCY Message
The EMCY COB-ID is defined in object 0x1014.
The EMCY message consists of 8 bytes. It contains
an emergency error code, the contents of object
0x1001 and 5 byte of manufacturer specific
error code. The device uses only the 1st byte as
manufacturer specific error code.
and additional information.
Error Behavior (object 0x4000)
If a serious device failure is detected the object
0x4000 specifies, to which state the module shall
be set:
0: Pre-operational
1: Mo state change (default)
2: Stopped
ByteByte 1
Byte 3Byte 4Byte 5Byte 6
Byte 2
DescriptionEmergency
Error code
1)
Error code0x0000 Error Reset on no ERrror (Error Register = 0)
1)
Error Register
(object 0x1001
Manufacturer
2)
)
specific error code
(always 0x00)
Manufacturer
specific error code
(object 0x4001)
0x1000 Generic error
2)
Always 0
Byte 7
Byte 8
Manufacturer
specific error code
NOT IMPLEMENTED
(always 0x00)
The device fulfils the SDO Server functionality.
With Service Data Object (S.D.O.) the access
to entries of a device Object Dictionary is
provided. As these entries may contain data of
arbitrary size and data typ SDOs can be used
to transfer multiple data sets from a client to a
server and vice versa.
Structure of SDO-request by the Master
Structure of SDO-answer by the Slave
Write Access, Data Transfer from Host to Slave
Each access to object dictionary is checked
by the slave for validity. Any write access to
nonexistent objects, to read - only objects or
with a non-corresponding data format are
rejected and answered with a corresponding
error message.
CMD determines the direction of data transfer and
the size of the data object:
23 hex Sending of 4-byte data
(bytes 5 - 8 contian a 32 bit value)
2B hex Sending of 2-byte data
(bytes 5, 6 contain a 16-bit value
2F hex Sending of 1-byte data
(byte 5 contians an 8-bit value)
Read Access, Data Transfer form Slave to Host
Any read access to non-existing objects is
answered with an error message.
CMD determines the direction of data transfer:
40 hex read access (in any case)
The Slave answers:
RES Response of the slave:
42 hex Bytes used by node when replying to
read command with 4 or less data
43 hex Bytes 5 - 8 contain a 32-bit value
4B hex Bytes 5, 6 contain a 16-bit value
4F hex Byte 5 contains an 8-bit value
80 hex Error
The Slave answers:
RES response of the slave:
60 hex Data sent successfully
80 hex Error
This PDO transmits length value of the position
sensor.The Tx PDO#0 shall be transmitted
cyclically, if the cyclic timer (object 0x1800.5)
is programmed > 0. Values between 4 ms and
65535 ms shall be selectable by parameter
settings. The Tx PDO#0 will be transmitted by
entering the “Operational” state.
Position value
object
(0x6004)
Low-Byte LSB
11.1 Example 1 : TPDO #0 length 0.0 mm
Below an example of PDO mapping is reported
in the case of:
In this section you will find the manufacturer
specific profile indices for transducer.
“Setting the Node-ID”
Tx PDO [X] 0 Mapping Parameter
Wire length is indicated in Idx 6004
Tx PDO [X] Mapping parameter
Wire length is indicated in Idx 6300
Index
20F0h0
20F1h0
Sub
Index
Setting of the
Setting of the
“Setting the Baud Rate”
Index
20F2h0
20F3h0
Sub
Index
Setting the Baud
Setting the Baud
NameTypeAccessDefault valueComments
Node-ID
Unsigned 8Rw0x7F (=127d)
The node ID used to access the sensor in the
CANopen network
Node-ID
Unsigned 8Rw0x7F (=127d)
A change of the Node ID is only accepted if
the entries 20F0 and 20F1 contain the same
changed value. Values below 1/above 127 are
not accepted; the existing setting remains valid.
After setting the new entries a reset must be
made so that the new entries become vlaid
(switch off the module for a short time).
NameTypeAccessDefault valueComments
Baud rate of the Can network
0 = 1000 kBaud
1 = 800 kBaud
2 = 500 kBaud
rate
Unsigned 8Rw0x03 (250 kBaud)
3 = 250 kBaud (default)
4= 125 kBaud
5 = 100 kBaud
6 = 50 kBaud
7 = 20 kBaud
Baud rate of the Can network
0 = 1000 kBaud
1 = 800 kBaud
2 = 500 kBaud
rate
Unsigned 8Rw0x03 (250 kBaud)
3 = 250 kBaud (default)
4= 125 kBaud
5 = 100 kBaud
6 = 50 kBaud
7 = 20 kBaud
A change of the Baud rate is only accepted if
the entries 20F2 and 20F3 contain the same
changed value. Values above 7 are not accepted; the existing setting remains valid. After
setting new entries a reset must be made so
that the new entries become valid (switch off
the module for a short time).
Manufacturer Specific Profile Objects (according to CIA DS-410)
In this section you will find the manufacturer
specific profile indices for transducer. as LINEAR
ENCODER
Index
6000h0
Sub
Index
NameTypeAccessDefault valueComments
Operating Pa-
rameters - PARA
Unsigned 16Ro0x00(0d)
0: Pre-operational
1: no state change
2: stopped
Min = 0 & Max = 255
0: no error
Min = 0 & Max = 255
0 = not activated
1: activated
Min = 0 & Max = 1
0: Big Endian
1: Little Endian
Contain the functions for code sequence
commissioning diagnostic control and
scaling function contorl (*).
Operational functions NOT activated in
standard version (always 0x00)
6002h0
Total measuring
range
Unsigned 32Ro
6003h0Preset valueUnsigned 32Rw0x00 (0d)
6004h0Position valueUnsigned 32Ro
0x000003E8
6005h0Measuring stepsUnsigned 32Rw
(1000d)
3
mm
10
Measuring range in 10 mm steps.
Example:
Measuring rang 8000 mm
Total measuring range = 0x0320 (00d)
The preset function supports adaption of the
GSF zero point to the mechanical zero point
of the system.
The output position value is set to the
parameter “Preset value” and the offset from
the position value is calculated and stored in
the GSF.
The object 6004h “Position value” defines
the output position value for the communication objects 1800 h.
The parameter “Linear encoder measuring
step settings” defines the measuring step
settings for position value.
103 - 106 mm
In this section you will find the manufacturer
specific profile indices for transducer. as CAM
(optional functions NOT activated in standard
version)
Index
6300h0
6301h0
6302h0
6310h0
6311h0
6312h0
6313h0
6314h0
6315h0
6316h0
6317h0
6320h0
6321h0
Sub
Index
NameTypeAccessDefault valueComments
The parameter “CAM state register” defines
the status bit of the cam in a cam channel.
CAM State
register
CAM enable
register
CAM Polarity
Register
CAM 1 _ LOW
LIMIT
CAM 2 _ LOW
LIMIT
CAM 3 _ LOW
LIMIT
CAM 4 _ LOW
LIMIT
CAM 5 _ LOW
LIMIT
CAM 6 _ LOW
LIMIT
CAM 7 _ LOW
LIMIT
CAM 8 _ LOW
LIMIT
CAM 1 _ HIGH
LIMIT
CAM 2 _ HIGH
LIMIT
Unsigned 8Ro0x00(0d)
Unsigned 8Rw0x00 (0d)
Unsigned 8Rw0x00(0d)
Unsigned 32Rw0x00(0d)
Unsigned 32Rw0x00(0d)
Unsigned 32Rw0x00(0d)
Unsigned 32Rw0x00(0d)
Unsigned 32Rw0x00(0d)
Unsigned 32Rw0x00(0d)
Unsigned 32Rw0x00(0d)
Unsigned 32Rw0x00(0d)
Unsigned 32Rw0x00(0d)
Unsigned 32w0x00(0d)
The status bit set to 1 defines “cam active”.
The status bit set to 0 defines “cam inactive”.
If the polarity bit of a cam is set (refer to
index 302h) the actual cam state will be
inverted.
Each Cam_polarity_channel contains the
actual settings for a maximum of 8 cam’s for
one position channel.
If the enabled bit is set to 1, the cam state will
be calculated by the device.
In the other case the cam state of the related
cam will be set permanently to 0.
Each Cam_enable_channel contains the
calculation state for maximum of 8 cam’s for
one position channel.
If the polarity bit is set to 1, the cam state
of an active CAM will signal by setting the
related cam state bit to zero. In the other case
the cam state of the related cam will not be
inverted.
Each CAM_low_limit channel contians the
switch point for the lower limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_low_limit channel contians the
switch point for the lower limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_low_limit channel contians the
switch point for the lower limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_low_limit channel contians the
switch point for the lower limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_low_limit channel contians the
switch point for the lower limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_low_limit channel contians the
switch point for the lower limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_low_limit channel contians the
switch point for the lower limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_low_limit channel contians the
switch point for the lower limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_high_limit channel contians the
switch point for the higher limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_high_limit channel contians the
switch point for the higher limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_high_limit channel contians the
switch point for the higher limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_high_limit channel contians the
switch point for the higher limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_high_limit channel contians the
switch point for the higher limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_high_limit channel contians the
switch point for the higher limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_high_limit channel contians the
switch point for the higher limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_high_limit channel contians the
switch point for the higher limit setting for a
max. of 8 cam’s for one position channel.
Each CAM_hystertesis channel contians the
delay setting of switch points for a max.
of 8 cam’s for one position channel. For
illustration of the hysteresis functionality
refer below.
Each CAM_hystertesis channel contians the
delay setting of switch points for a max.
of 8 cam’s for one position channel. For
illustration of the hysteresis functionality
refer below.
Each CAM_hystertesis channel contians the
delay setting of switch points for a max.
of 8 cam’s for one position channel. For
illustration of the hysteresis functionality
refer below.
Each CAM_hystertesis channel contians the
delay setting of switch points for a max.
of 8 cam’s for one position channel. For
illustration of the hysteresis functionality
refer below.
Each CAM_hystertesis channel contians the
delay setting of switch points for a max.
of 8 cam’s for one position channel. For
illustration of the hysteresis functionality
refer below.
Each CAM_hystertesis channel contians the
delay setting of switch points for a max.
of 8 cam’s for one position channel. For
illustration of the hysteresis functionality
refer below.
Each CAM_hystertesis channel contians the
delay setting of switch points for a max.
of 8 cam’s for one position channel. For
illustration of the hysteresis functionality
refer below.
Each CAM_hystertesis channel contians the
delay setting of switch points for a max.
of 8 cam’s for one position channel. For
illustration of the hysteresis functionality
refer below.
MD = 0/1 Measuring direction UP/DOWN
SF = 0/1 Scaling function DISABLE/ENABLE
GSF Cams functionality (optional functions
NOT activated in standard version)
Each Cam has parmeters for the minimum
switch point, the maximum switch point
and setting a hesteresis to the switch points.
Possible usage of cam’s and switch points.
13. Status LEDThe integrated two color status LED signals the
Run LEDLED StateDescription
Run LEDLED StateDescription
recent device state (Run LED, green) as well as
CAN communication errors that moight have
occured (Error LED), red). The color and the
flashing frequency of the LED distinguish the
different device states as shown below.
Status LED
OffNo power supply is connected
BlinkingThe device is in state Pre-Operational
Single FlashThe device is in state Stopped
ONThe device is in state Operational
Error LED
OffThe device is in working condition
Single FlashCAN Warning Limit reached
OnThe device is in state Bus-Off
Red/Green OnLimit Angles reached (110% FS or ±87º)
Example 1: How to change the Baud Rate
Setting from 250 kbaud to 500 kbaud
With Service Data Object (S.D.O) the access
to entries of a device Object Dictionary is
provided. As these entries may contain data of
arbitrary size and data type SDOs can be used
to transfer multiple data sets from a client to a
server and vice versa.
Structure of SDO-request by the Master
CMD determines the direction of data transfer and
the size of the data object:
23 hex Sending of 4-byte data (bytes 5 - 5
contain a 32 bith value)
2B hex Sending of 2-byte data (bytes 5, 6
contain a 16-bit value)
2F hex Sending of 1-byte data (byte 5 contains
an 8-bit value)
Structure of SDO-answer by the Slave
RES Response of Slave:
60 hex Data sent successfully
80 hex Error
A change of the Baud rate is only accepted if
the entries 0x20F2 and 0x20F3 contain the
same changed value. With the aim to change
the baud rate from 250 kBaud (0x03) to 500
kBaud (0x02) write a second SDO (in the
example the Node-ID = 0x7F9
A change of the Baud rate is only accepted if
the entries 0x20F2 and 0x20F3 contain the
same changed value. With the aim to change
the baud rate from 250 kBaud (0x03) to 500
kBaud (0x02) write a second SDO (in the
example the Node-ID = 0x7F9
A change of the Baud rate is only accepted if the
entries 0x20F2 and 0x20F3 contain the same
changed value. Values above 7 are not accepted;
the existing setting remains valid. Afer setting
the new entries a reset must be made so that the
new entries becom valid (switch off the module
for a short time).
Example 2: How to change the ID-Node from
0x7Fh (127d) (Current setting) to 0x06h (6d)
With Service Data Object (S.D.O) the access
to entries of a device Object Dictionary is
provided. As these entries may contain data of
arbitrary size and data type SDOs can be used
to transfer multiple data sets from a client to a
server and vice versa.
CMD determines the direction of data transfer and
the size of the data object:
23 hex Sending of 4-byte data (bytes 5 - 5
contain a 32 bith value)
2B hex Sending of 2-byte data (bytes 5, 6
contain a 16-bit value)
2F hex Sending of 1-byte data (byte 5 contains
an 8-bit value)
A change of the Node-ID is only accepted if
the entries 0x20F0 and 0x20F1 contain the
same changed value. With the aim to change
the Node-ID from 127 (0x7F) to 6 (0x06)
write a firat SDO (in the example the NodeID = 0x7F)
A change of the Node-ID is only accepted if
the entries 0x20F0 and 0x20F1 contain the
same changed value. With the aim to change
the Node-ID from 127 (0x7F) to 6 (0x06)
write a second SDO (in the example the
Node-ID = 0x7F)
A change of the Node_ID is only accepted if the
entries 0x20F0 and 0x20F1 contain the same
changed value. Values below 1 / above 127
are not accepted; the existing setting remains
valid. Afer setting the new entries a reset must
be made so that the new entries become valid
(switch off the module for a short time).
Example 3: How to change the PDO rate (time
interval) from 100 ms (current setting) to 20
ms
With Service Data Object (S.D.O) the access
to entries of a device Object Dictionary is
provided. As these entries may contain data of
arbitrary size and data type SDOs can be used
to transfer multiple data sets from a client to a
server and vice versa.
CMD determines the direction of data transfer and
the size of the data object:
23 hex Sending of 4-byte data (bytes 5 - 5
contain a 32 bith value)
2B hex Sending of 2-byte data (bytes 5, 6
contain a 16-bit value)
2F hex Sending of 1-byte data (byte 5 contains
an 8-bit value)
Example 4: How to activate an automatic NMT
Start after Power ON (the PDO will be send
automatically after power ON)
With Service Data Object (S.D.O) the access
to entries of a device Object Dictionary is
provided. As these entries may contain data of
arbitrary size and data type SDOs can be used
to transfer multiple data sets from a client to a
server and vice versa.
CMD determines the direction of data transfer and
the size of the data object:
23 hex Sending of 4-byte data (bytes 5 - 5
contain a 32 bith value)
2B hex Sending of 2-byte data (bytes 5, 6
contain a 16-bit value)
2F hex Sending of 1-byte data (byte 5 contains
an 8-bit value)
After setting the new entries a reset must be
made so that the new entries become valid
(switch off the module for a short time).
Example 5: How to Preset the Position value
(via object 0x6003.0) to 0 mm
The value “Preset Value” (Idx 6003.0) affects the
display of the Position value. The value entered
in “Preset value” immediately correct the
measured value of the sensor cell at the instan
tacc. A typical application is the compensation
of display errors du to mountine (e.g. sensor
zeroing).
The senosor must first to brought to a defined
position.
CMD determines the direction of data transfer and
the size of the data object:
23 hex Sending of 4-byte data (bytes 5 - 5
contain a 32 bith value)
2B hex Sending of 2-byte data (bytes 5, 6
contain a 16-bit value)
2F hex Sending of 1-byte data (byte 5 contains
an 8-bit value)
With Service Data Object (S.D.O.) the access
to entries of a device Object Dictionary is
provided. As these entries may contain data of
arbitrary size and data type SDOs can be used
to transfer multiple data sets from a client to a
server and vice versa.
CMD determines the direction of data transfer and
the size of the data object:
23 hex Sending of 4-byte data (bytes 5 - 5
ontain a 32 bith value)
2B hex Sending of 2-byte data (bytes 5, 6
contain a 16-bit value)
2F hex Sending of 1-byte data (byte 5 contains
an 8-bit value)
Example 7: How to disable the Asynchronous
Transmission (Asynchronous TPDO inactive)
With Service Data Object (S.D.O.) the access
to entries of a device Object Dictionary is
provided. As these entries may contain data of
arbitrary size and data type SDOs can be used
to transfer multiple data sets from a client to a
server and vice versa.
CMD determines the direction of data transfer and
the size of the data object:
23 hex Sending of 4-byte data (bytes 5 - 5
ontain a 32 bith value)
2B hex Sending of 2-byte data (bytes 5, 6
contain a 16-bit value)
2F hex Sending of 1-byte data (byte 5 contains
an 8-bit value)
0x01 - 0xF0 = synch cyclic
Outputs are only updated after “n” synch
objects
n = 0x01 (1) - 0xF0 (240)
0xFC not impelemented
0xFD not implemented
0xFE = asynchronous
0xFF = not implemented
0 = inactive
Min. = 4 & Max. = 65535
with unit = 1ms
The answer after successful storing you will receive is.
After setting the new entries a reset must be
made so that the new entries become valid
(switch off the module for a short time).
Example 8: How to enable the Synchronous
Transmission (Synchronous TPDO active after
1st sync message)
)With Service Data Object (S.D.O.) the access
to entries of a device Object Dictionary is
provided. As these entries may contain data of
arbitrary size and data type SDOs can be used
to transfer multiple data sets from a client to a
server and vice versa.
CMD determines the direction of data transfer and
the size of the data object:
23 hex Sending of 4-byte data (bytes 5 - 5
ontain a 32 bith value)
2B hex Sending of 2-byte data (bytes 5, 6
contain a 16-bit value)
2F hex Sending of 1-byte data (byte 5 contains
an 8-bit value)
The answer after successful storing you will receive is.
With the aim to save functionality write the “save” command as below:
Write (in the example the Node-ID = 0x7F)
Unsigned 8Ro
Unsigned 8Rw
Unsigned 16Rw
180+
Node-ID
254
(0xFE)
100
(0x64)
0x01 - 0xF0 = synch cyclic
Outputs are only updated after “n” synch
objects
n = 0x01 (1) - 0xF0 (240)
0xFC not impelemented
0xFD not implemented
0xFE = asynchronous
0xFF = not implemented
0 = inactive
Min. = 4 & Max. = 65535
with unit = 1ms
Danfoss ca n accept no respons ibility for pos sible errors in ca talogues, bro chures and other pr inted material. Da nfoss reserve s the right to alter its p roducts with out notice.
This also a pplies to produc ts already on ord er provided that su ch alterations ca n be made without su bsequential cha nges being nece ssary in speci fications alread y agreed.
All trade marks in this mate rial are proper ty of the respec tive companies . Danfoss and the Danf oss logotyp e are trademark s of Danfoss A/S. Al l rights reserv ed.