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
Machine.
NMT MessageCOB-IDData Byte 1Data Byte 2
Start Remote Node001hNode-ID’
Stop Remote Node002hNode-ID’
Pre-operational State080hNode-ID’
Reset Node081hNode-ID’
Reset Communication082hNode-ID’
* Node-ID = Drive address (from 1 to 7Fh)
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.
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)
Sensor Error TYPE DST X710 Z-360 (e.g. angle under/above
Description
limits, self-test failure, MEMS IC communication error)
0bxxxxxxx1
(a)
Sensor Error X-axis TYPE DST X710 XY-0xx (e.g. angle under/
above limits, self-test failure, MEMS IC communication error)
0bxxxxxxx1
(a)
Sensor Error Y-axis TYPE DST X710 XY-0xx (e.g. angle under/
above limits, self-test failure, MEMS IC communication error)
0bxxx1xxxxProgram checksum error
0bxx1xxxxxFlash limit reached - error
0bx1xxxxxxLSS Parameter checksum error
(a)
An angle error will be generated if the actual measured angle is under or above limits.
Example of limits for different versions are reported below:
DST X710 dual axis version ± 10º Error limit are ± 11º (± 11º are also the FSO angles STOP)
DST X710 dual axis version ± 15º Error limit are ± 16.5º (± 16.5º are also the FSO angles STOP)
DST X710 dual axis version ± 20º Error limit are ± 22º (± 22º are also the FSO angles STOP)
DST X710 dual axis version ± 30º Error limit are ± 33º (± 33º are also the FSO angles STOP)
DST X710 dual axis version ± 45º Error limit are ± 49.5º (± 49.5º are also the FSO angles STOP)
DST X710 dual axis version ± 60º Error limit are ± 66º (± 66º are also the FSO angles STOP)
DST X710 dual axis version ± 90º Error limit are ± 87º (± 87º are also the FSO angles STOP)
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 form 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
11. PDO communication
and Angle calculation
ByteByte 1Byte 2Byte 3Byte 4
Description
The Slave answers:
RES response of the slave:
60 hex Data sent successfully
80 hex Error
Transmit PDO #0
This PDO transmits asynchronously the position
value of the angle 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.
Byte 5
Byte 6
Byte 7
Byte 8
X Axis
object
(0x6010)
Low-Byte
Inthe following figures an example of PDO mapping is reported in the case of Angle X = 0.00º and
Angle Y = 0.00º (Node-ID = 7Fh and resolution ± 0.01º
In the following figures an example of PDO mapping is reported in the case of Angle X = -45.00°
and Angle Y = 0.00°. (Node-ID = 7Fh and resolu-
tion ± 0.01º)
Byte 2 MSB (EEh) = EEh; Byte 1 LSB (6Bh) = 6Bh;
Angle X = EE6Bh to decimal 61035d
If the Angle X in decimal is greater thanm
32768, the Angle X is NEGATVE and it must be
computed as below (resolution ± 0.01°
Angle X = 4 EE6Bh to decimal 61035d
Angle X = Angle X (in decimal) - 65535d =
61035d = 4500d (resolution ± 0.01°) = -45.00°
Angle X = -0.00°
Angle Y = 0.00°
Angle Y:
Byte 4 MSB (00h) = 00h; Byte 3 LSB (00h) = 00h
Angle Y = 0000h to decimal 0d (resolution ±0.01°)
= 0.00°
In the following figures an example of PDO
mapping is reported in the case of Angle X =
0.00° and Angle Y = 0.00°
(Node-ID = 7Fh and resolution ± 0.01°)