ICPDAS CAN-8123, CAN-8223, CAN-8423 User Manual

CAN-8123/ CAN-8223/CAN-8423
CANopen Slave Device
User Manual
Warranty
All products manufactured by ICP DAS are warranted against defective materials for a period of one year from the date of delivery to the original purchaser.
Warning
ICP DAS assume no liability for damages consequent to the use of this product. ICP DAS reserves the right to change this manual at any time without notice. The information furnished by ICP DAS is believed to be accurate and reliable. However, no responsibility is assumed by ICP DAS for its use, nor for any infringements of patents or other rights of third parties resulting from its use.
Copyright
Copyright 2003 by ICP DAS. All rights are reserved.
Trademark
The names used for identification only maybe
registered trademarks of their respective companies.
CAN-8123/CAN-8223/CAN- 8423 user manual (ver. 2.00, July/26/2007) ------1
Tables of Content
1 Introduction.............................................................................................4
1.1 Overview.........................................................................................4
1.2 Hardware Features ........................................................................6
1.3 CAN-8123/CAN-8223/CAN-8423 Features ....................................7
1.4 Utility Features...............................................................................8
2 Hardware Specification..........................................................................9
2.1 CAN-8123/CAN-8223 Hardware Structure....................................9
2.2 CAN-8423 Hardware Structure....................................................11
2.3 Wire Connection ..........................................................................12
2.4 Power LED....................................................................................15
2.5 CANopen Status LED...................................................................16
2.5.1 RUN LED ..........................................................................16
2.5.2 ERR LED ..........................................................................17
2.6 Node ID and Baud rate Rotary Switch........................................19
2.7 Module Support ...........................................................................21
3 CANopen System..................................................................................22
3.1 CANopen Introduction.................................................................22
3.2 SDO Introduction.........................................................................30
3.3 PDO Introduction.........................................................................32
3.4 EMCY Introduction.......................................................................44
3.5 NMT Introduction.........................................................................45
3.5.1 Module Control Protocols...............................................46
3.5.2 Error Control Protocols ..................................................47
4 Configuration & Getting Start..............................................................49
4.1 CAN-8123/CAN-8223 Configuration Flowchart..........................49
4.2 CAN-8423 Configuration Flowchart............................................51
4.3 CAN Slave Utility Overview.........................................................53
4.4 Configuration with the CAN Slave Utility...................................54
4.5 CAN-8123/CAN-8223 Configuration (Off-line mode).................59
4.6 CAN-8423 Configuration (On-line mode)...................................66
5 CANopen Communication Set.............................................................69
5.1 SDO Communication Set ............................................................70
5.1.1 Upload SDO Protocol......................................................70
5.1.2 SDO Block Upload...........................................................79
5.1.3 Download.........................................................................90
5.1.4 SDO Block Download......................................................95
CAN-8123/CAN-8223/CAN- 8423 user manual (ver. 2.00, July/26/2007) ------2
5.1.5 Abort SDO Transfer Protocol.......................................103
5.2 PDO Communication Set ..........................................................106
5.2.1 PDO COB-ID Parameters ..............................................106
5.2.2 Transmission Type........................................................108
5.2.3 PDO Communication Rule............................................109
5.3 EMCY Communication Set........................................................151
5.3.1 EMCY COB-ID Parameter..............................................151
5.3.2 EMCY Communication..................................................152
5.4 NMT Communication Set ..........................................................162
5.4.1 Module Control Protocol .............................................. 162
5.4.2 Error Control Protocol ..................................................166
5.5 Special Functions for CAN-8123/CAN-8223/CAN-8423...........171
6 Object Dictionary of CAN-8123/CAN-8223/CAN-8423......................179
6.1 Communication Profile Area.....................................................179
6.2 Manufacturer Specific Profile Area ..........................................189
6.3 Standardized Device Profile Area.............................................190
Appendix A: Dimensions...........................................................................194
Appendix B: Analog I/O Transformation Table........................................196
CAN-8123/CAN-8223/CAN- 8423 user manual (ver. 2.00, July/26/2007) ------3
1 Introduction
1.1 Overview
CANopen, a kind of communication protocol, is based on an intelligent
field bus (CAN bus). It was developed as a standardized embedded network
with highly flexible configuration capabilities. It provides standardized
communication objects for real-time data (Process Data Objects, PDO), configuration data (Service Data Objects, SDO), network management data
(NMT message, and Error Control), and special functions (Time Stamp, Sync
message, and Emergency message). Nowadays, CANopen is used in many
various application fields, such as medical equipment, off-road vehicles,
maritime electronics, public transportation, building automation and so on.
CAN-8123/CAN-8223/CAN-8423 main control units are specially
designed for the slave device of CANopen protocols. In order to expand the I/O
channel to make it more flexible, the CAN-8123/CAN-8223/CAN-8423
supports up to 8 expansion slots for the user to expand their I/O channel
numbers in various applications. Users can choose either the I-87K or the
I-8000 series DI/DO/AI/AO slot modules to fit their customized practice
applications. An CAN-8123/CAN-8223 has one and two expansion slots
respectively, and an CAN-8423 supports four expansion slots respectively.
Each expansion slot can plug in one I-87K or I-8000 series I/O module. For
example, only one slot module can plug in the CAN-8123, and an CAN-8423
can have at most 4 slot modules plugged in it. All of these main control units
follow the CANopen Spec DS-301 V4.01 and DSP-401 V2.1, and supplies
many features for users, such as dynamic PDO, EMCY object, error output
value, SYNC cyclic and acyclic and so forth. In addition, we also provide the
CAN Slave Utility to allow users to create EDS files dynamically. EDS files are
based on the CANopen DSP-306 and can be compatible with each CANopen
master interface from different manufacturers if the CANopen master interface
supports EDS files. The general application for the
CAN-8123/CAN-8223/CAN-8423 CANopen slave device architecture is as
follows.
CAN-8123/CAN-8223/CAN- 8423 user manual (ver. 2.00, July/26/2007) ------4
CAN-8123/CAN-8223/CAN- 8423 user manual (ver. 2.00, July/26/2007) ------5
1.2 Hardware Features
z CPU:80186, 80MHz
z Philip SJA1000 CAN controller
z Philip 82C250 CAN transceiver
z SRAM:512K bytes
z Flash Memory:512K bytes
z EEPROM:2k bytes
z NVRAM: 32 bytes
z Real Time Clock
z Built-in Watchdog Timer
z 16-bit Timer
z Power LED, RUN LED, and ERR LED
z Support 1/2/4/8 expansion I/O slots
z 2500 Vrms isolation on CAN side z 120Ω terminal resister selected by jumper
z CAN bus interface: ISO/IS 11898-2, 5-pin screw terminal with
on-board optical isolators protection.
z Power Supply:20W, Unregulated +10VDC to +30VDC
z Operating Temperature:-25°C to +75°C
z Storage Temperature:-30°C to +85°C
z Humidity:5%~95%
COM1
z RS-232: TXD,RXD,RTS,CTS,GND
z Communication speed: 115200 bps.
z Configure tool connection
CAN-8123/CAN-8223/CAN- 8423 user manual (ver. 2.00, July/26/2007) ------6
1.3 CAN-8123/CAN-8223/CAN-8423 Features
z NMT: Slave
z Error Control: Node Guarding
z Node ID: Setting by Rotary Switch
z No. of PDOs: 16 Rx, 16Tx
z PDO Modes: Event-triggered, remotely requested, cyclic and acyclic
SYNC
z PDO Mapping: variable
z No of SDOs: 1 server, 0 client
z Emergency Message: Yes
z CANopen Version: DS-301 v4.01
z Device Profile: DSP-401 v2.0
z Produce EDS file dynamically
z Baud Rate setting by Utility : 10K, 20K, 50K, 125K, 250K, 500K, 800K
and 1M bps
z Power LED, RUN LED, and ERR LED indicators
z Support max 4 I-8000 and I-87K series modules for CAN-8423
z Provide a friendly Utility to configure the I-8000 and I-87K series
modules
CAN-8123/CAN-8223/CAN- 8423 user manual (ver. 2.00, July/26/2007) ------7
1.4 Utility Features
z Set the I-8000 and I-87K AI/AO modules parameters
z Show I-8000 and I-87K modules configuration
z Show Application and assembly object configurations
z Support IO connection path settings
z Support EDS file creation
CAN-8123/CAN-8223/CAN- 8423 user manual (ver. 2.00, July/26/2007) ------8
2 Hardware Specification
2.1 CAN-8123/CAN-8223 Hardware Structure
CAN Bus Connector
CANopen
Status LED Power LED
1 I/O Expansion Slot
Node ID and Baud
rate rotary switch
CAN-8123/CAN-8223/CAN- 8423 user manual (ver. 2.00, July/26/2007) ------9
2 I/O Expansion Slots
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------10
2.2 CAN-8423 Hardware Structure
CAN Bus Connector
CANopen
Status LED
Power LED
RS-232 Port
(
connect to PC)
4 I/O Expansion Slots
Power Pin
Node ID and Baud
rate rotary switch
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------11
2.3 Wire Connection
In order to minimize the reflection effects on the CAN bus line, the CAN bus line has to be terminated at both ends by two terminal resistances as in the following figure. According to the ISO 11898-2 spec, each terminal resistance is 120 (or between 108~132). The length related resistance should have 70 m/m. Users should check the resistances of the CAN bus, before they install a new CAN network.
...
CAN_H
Device NDevice 2Device 1
120Ω
120Ω
CAN_L
Moreover, to minimize the voltage drop over long distances, the terminal resistance should be higher than the value defined in the ISO 11898-2. The following table can be used as a good reference.
Bus Cable Parameters
Bus Length
(meter)
0~40 70 0.25(23AWG)~
40~300 < 60 0.34(22AWG)~
300~600 < 40 0.5~0.6mm
600~1K < 20 0.75~0.8mm
Length Related
Resistance
(m/m)
Cross Section
(Type)
0.34mm
0.6mm
2
(22AWG)
2
(20AWG)
(20AWG)
(18AWG)
2
2
Terminal
Resistance
()
124 (0.1%)
127 (0.1%)
150~300
150~300
CAN-8123/CAN-8223/CAN- 84 2 3 user manual (ver. 2.0 0, Jul y / 26/2007) ------12
In the CAN-8123/CAN-8223/CAN-8423, the 120Ω terminal resistance is supplied. The JP2 for the CAN-8123/CAN-8223 is for terminal resistance. The JP2 location is shown in the following figure.
L
CAN Connector
Rotary Swtich
E D
JP2
CAN
Transciver
CAN Controller
I-8KCPS1/I-8KCPS2 Connector
JP4
JP3
186 CPU
.
The JP1 on the CAN-8423 is used for adjusting terminal resistance, and its location is shown in the following figure.
L E D
Rotary Switch
186 CPU
CAN Connector
JP1
CAN
Transciver
..
The following connection statuses are presented for the condition if the terminal resister is enabled or disabled.
CAN-8123/CAN-8223/CAN- 84 2 3 user manual (ver. 2.0 0, Jul y / 26/2007) ------13
CAN Controller
I-8421/I-8821 Connector
Disable Enable
The CAN bus baud rate has the high relationship with the bus length. The following table indicates the corresponding bus length for every kind of baud rate.
Baud rate (bit/s) Max. Bus length (m)
1 M 25
800 K 50 500 K 100 250 K 250 125 K 500
50 K 1000 20 K 2500 10 K 5000
Note: When the bus length is greater than 1000m, the bridge
or repeater devices may be needed.
The pin assignment of both the CAN-8123/CAN-8223 and CAN-8423 CAN
bus connectors are shown below.
CAN_GND
CAN_L
CAN_Shield
CAN_H
CAN_V+
Pin 1
Pin 2
Pin 3
Pin 4
Pin 5
Pin No. Signal Description
1 CAN_GND Ground (0V) 2 CAN_L CAN_L bus line (dominant low) 3 CAN_SHLD Optional CAN Shield 4 CAN_H CAN_H bus line (dominant high) 5 CAN_V+ CAN external positive supply (CAN-8123/CAN-8223
power)
CAN-8123/CAN-8223 CAN bus connector pin assignments
CAN-8123/CAN-8223/CAN- 84 2 3 user manual (ver. 2.0 0, Jul y / 26/2007) ------14
NO USE
CAN_H
CAN_Shield
CAN_L
NO USE
Pin No. Signal Description
1 NO USE No use 2 CAN_H CAN_H bus line (dominant high) 3 CAN_SHLD Optional CAN Shield 4 CAN_L CAN_L bus line (dominant low) 5 NO USE No use
CAN-8423 CAN bus connectors ping assignment
Pin 1
Pin 2
Pin 3
Pin 4
Pin 5
2.4 Power LED
Power LED is yellow one. An CAN-8123/CAN-8223/CAN-8423 needs 10~30 VDC power input. The power consumption for an CAN-8123/CAN-8223/ CAN-8423 will correlate with the number of slot modules plugged into them. If the electronic power is enough, the Power LED will be turned on. If the Power LED can’t be turned on after applying the power supplier, users need to check the power and voltage for this power supply.
CAN-8123/CAN-8223/CAN- 84 2 3 user manual (ver. 2.0 0, Jul y / 26/2007) ------15
2.5 CANopen Status LED
CAN-8123/CAN-8223/CAN-8423 provides two CANopen LED indicators.
They are the Error LED (red) and the RUN LED (green). The Error LED and
Run LED are defined in the CANopen specs. When the CANopen
communication events occur, these indicators will be triggered to glitter with
different periods. The following descriptions interpret the twinkling signal
meanings when these indicators are triggered.
2.5.1 RUN LED
The RUN LED indicates the condition of the CANopen network state
mechanism. About the information of CANopen state mechanism, please refer
to section 3.5.1. The different signal periods and related meanings are
displayed respectively in the following figure and table.
ON
OFF
ON
OFF
Blanking
Single Flash
0
400
200 600
800
1000
1200
1400
1600
1800
2000
Time (ms)
No. CAN RUN LED State Description
1 Single Flash Stopped The device is in Stopped state
2 Blinking Pre-operational The device is in the
pre-operational state
3 On Operational The device is in the operational
state
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------16
2.5.2 ERR LED
The ERR LED indicates the status of the CAN physical layer and indicates
errors due to missing CAN messages (These messages may be SYNC or
Guard messages). Each error event has different twinkling signal periods, and
the signal periods and related meanings are displayed respectively in the
following figure and table.
ON
OFF
ON
OFF
ON
OFF
Single Flash
Double Flash
Triple Flash
0
400
200 600
800
1000
1200
1400
1600
1800
2000
Time (ms)
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------17
No. Error LED State Description
1 Off No error The device is in working
condition.
2 Single Flash Warning limit
reached
At least one of the error counters
of the CAN controller has
reached or exceeded the warning
level (too many error frames).
3 Double Flash Error Control
Event
A guard event (NMT-Slave or
NMT-master) or a heartbeat
event (Heartbeat consumer) has
occurred.
4 Triple Flash SYNC Error The SYNC message has not
been received within the
configured communication cycle
period time out (see Object
Dictionary Entry 0x1006).
5 On Bus Off The CAN controller is in a bus off
condition.
Note: If several errors are present at the same time, the error with the highest
number will be indicated first. For example, if NMT Error (No. =3) and
Sync Error (No. =4) occur, the SYNC error is indicated.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------18
2.6 Node ID and Baud rate Rotary Switch
8
7
0
C
4
2
1
F
D
B
9
5
3
A
6
E
8
7
0
C
4
2
1
F
D
B
9
5
3
A
6
E
8
7
0
C
4
2
1
F
D
B
9
5
3
A
6
E
(MSB)
(LSB)
ID
BAUD
The upper two rotary switches control the CAN-8123/CAN-8223/
CAN-8423 node ID. MSB means the high nibble of the node ID, and LSB
represent the low nibble of the node ID. The CAN-8123/CAN-8223/
CAN-8423node ID is useless when the value exceeds the 0x7F (127 for
decimal format) because of the CANopen specification definition. Therefore, if
the node ID is set to exceed 127, the CANopen firmware will set the node ID to
1 automatically. For example, if the MSB rotary switch is turned to 3 and the
LSB rotary switch is turned to 2, the CAN-8123/CAN-8223/CAN-8423 node ID
is 0x32 and the decimal value is 50 (3*16+2=50).
The lower rotary switch handles the CAN-8123/CAN-8223/CAN-8423
baud rate. The relationship between the rotary switch value and the practical
baud rate is presented in the following table.
Rotary Switch Value Baud rate (K BPS)
0 10
1 20
2 50
3 125
4 250
5 500
6 800
7 1000
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------19
If the “BAUD” rotary switch for the CAN-8423 is turned to ‘9’, the
CAN-8423 will get into its initial mode. In the meanwhile, the CANopen
firmware built in the CAN-8423 will not be executed. Before users use the
utility tool to configure the CAN-8423, the initial mode is needed. For the detail
configuration process, please refer to the cheaper 4. Since the
CAN-8123/CAN-8223 has no RS-232 COM Port, it is necessary to run the
utility tool in the off-line mode if users want to get the EDS file of the
CAN-8123/CAN-8223.
Furthermore, when the CAN-8123/CAN-8223/CAN-8423 is started up, the
CANopen firmware will check these rotary switches. Any illegal value for these
rotary switches will cause the CAN-8123/CAN-8223/CAN-8423 to have a
boot-up failure.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------20
2.7 Module Support
The CAN-8123/CAN-8223/CAN-8423 supports many kinds of DI, DO, AI
and AO modules for the I-8000/I-87K series modules. When users want to
apply these modules on the CANopen network, they only need to plug these
modules into the CAN-8123/CAN-8223/CAN-8423 I/O expansion slots. Then,
the CANopen firmware built in the CAN-8123/CAN-8223/CAN-8423 will search
for them by organizing the corresponding CANopen entries automatically. The
following table shows the module name and basic information supported by
the CAN-8123/CAN-8223/CAN-8423.
IO Type Module Name IO Type Module Name
AI
( NOTE )
I-87013/ I-87016/ I-87017/ I-87018/
AO
I-8024
I-87022/ I-87024/ I-87026
DO
I-8037/ I-8041/ I-8056/ I-8057/ I-8060/ I-8064/ I-8065/ I-8066/ I-8068/ I-8069
I-87041/ I-87056/ I-87057/ I-87060/ I-87064/ I-87065/ I-87066/ I-87068/ I-87069
DI
I-8040/ I-8051/ I-8052/ I-8053/ I-8058/
I-87040/ I-87051/ I-87052/ I-87053/ I-87058/
DO&DI
I-8042/ I-8054/ I-8055/ I-8063
I-87042/ I-87054/ I-87055 I-87063/
NOTE : CANopen remote I/O ( CAN-8423/CAN-8223/CAN-8123 ) do
not support I-8017H
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------21
3 CANopen System
3.1 CANopen Introduction
CANopen is a kind of network protocol based on the CAN bus and has
been used in various applications, such as vehicles, industrial machines,
building automation, medical devices, maritime applications, restaurant
appliances, laboratory equipment & research. It allows for not only
broadcasting but also peer-to-peer data exchange between every CANopen
node. The network management functions specified in CANopen simplify the
project design. In addition to this, users can also implement and diagnose the
CANopen network by standard mechanisms for network start-up and error
management. By the device model, any CANopen device can effectively
access or get the conditions relating to the I/O values and node states of other
devices in the same network. Generally, a CANopen device can be modeled
into three parts.
z Communication
z Object Dictionary
z Application program
The functions and general concepts for each part are shown as follows.
Communication
Object
Dicitionary
Application
Comm.
objcet
Comm.
objcet
Comm.
objcet
Application
objcet
Application
objcet
Application
objcet
Entry 1
Entry 2
Entry n
State
mechanism
Bus System
Process
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------22
Communication
The communication part provides several communication objects and
appropriate functionalities to transmit CANopen messages via the underlying
network structure. These objects may be PDO (Process Data Object), SDO
(Service Data Object), NMT (Network Management Objects), SYNC
(Synchronous Objects)…etc. Each communication object has its
communication model and functionality. Take the PDO, SDO, and NMT for
examples, the communication objects for accessing the device object
dictionary entries is SDO, and SDO uses the Client/Server structure for its
communication model (section 3.2). Real-time data or I/O values can be
transmitted or received quickly without any protocol overhead by means of
PDO communication objects. The PDO’s communication model follows the
Producer/Consumer structure. It is also named the Push/Pull model (section
3.3). NMT communication objects are used for controlling and supervising the
state of the nodes in the CANopen network, and it follows a Master/Slave
structure (section 3.5). No matter which kind of communication object is used,
the transmitted message must obey the data frame defined in the CAN 2.0A
spec. Generally, it looks like the following figure.
ID RTR
Data
Length
8-byte Data
The ID field has 11-bit data. It is useful in the arbitration mechanism. The
RTR filed has a one-bit value. If the RTR is set to 1, this message is used for
remote-transmit requests. In this case, the 8-byte data is useless. The data
length field contains 4-bit data. It indicates that the valid data number stored in
the 8-byte data field. The last field, 8-byte data, is applied to store the message
data.
CANopen specification uses the 4-bit function code and 7-bit node ID to
combine the 11-bit ID of CAN message, and name it as communication object
ID (COB-ID). The COB-ID structure is displayed below.
Function Code Node ID
bit 10 bit 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------23
The COB-IDs are defined for recognizing where the message comes from
or where the message must be sent. Also, they are used to distinguish the
functionality of the transmitted or received messages, and decide the priority of
the message transmission for each node on the network. According to the
arbitration mechanism of the CAN bus, the CAN message with the lower value
COB-ID has the higher priority to be transmitted into the CAN bus. In the
CANopen specification, some COB-IDs are reversed for specific
communication objects and can't be defined arbitrarily by users. The following
list shows these reversed COB-IDs.
Reversed COB-ID (Hex) Used by object
0 NMT
1 Reserved
80 SYNC
81~FF EMERGENCY
100 TIME STAMP
101~180 reversed
581~5FF Default Transmit-SDO
601~67F Default Receive-SDO
6E0 reversed
701~77F NMT Error Control
780~7FF reversed
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------24
Beside the COB-IDs described above, users can apply the other COB-IDs
if needed. All of the default COB-IDs used in the CANopen protocol is shown in
the following table.
(Bit10~Bit7)
(Function Code)
(Bit6~Bit0) Communication object Name
0000 0000000 NMT
0001 0000000 SYNC
0010 0000000 TIME STAMP
0001 Node ID EMERGENCY
0011/0101/0111/1001 Node ID TxPDO1/2/3/4
0100/0110/1000/1010 Node ID RxPDO1/2/3/4
1011 Node ID SDO for transmission (TxSDO)
1100 Node ID SDO for reception (RxSDO)
1110 Node ID NMT Error Control
Note: For the CAN-8123/CAN-8223/CAN-8423, we provide all communication
objects except for the TIME STAMP.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------25
Object Dictionary
The object dictionary collects a lot of important information. This
information has an influence on the device’s behavior, such as the data in the
I/O channels, the communication parameters and the network states. The
object dictionary is essentially a group of objects. It consists of a lot of object
entries, and these entries can be accessible via the network in a pre-defined
method. Each object entry within the object dictionary has their own
functionality (ex. communication parameters, device profile …), data type (ex.
8-bit Integer, 8-bit unsigned…), and access type (read only, write only …). All
of them are addressed by a 16-bit index and an 8-bit sub-index. The overall
profile of the standard object dictionary is shown below.
Index (hex) Object
0000 Reserved
0001-001F Static Data Types
0020-003F Complex Data Types
0040-005F Manufacturer Specific Data Types
0060-007F Device Profile Specific Static Data Types
0080-009F Device Profile Specific Complex Data Types
00A0-0FFF Reserved for further use
1000-1FFF Communication Profile Area
2000-5FFF Manufacturer Specific Profile Area
6000-9FFF Standardized Device Profile Area
A000-BFFF Standardized Interface Profile Area
C000-FFFF Reserved for further use
Take the standardized device profile area for an example. Assume that a
CANopen device has 16 DI, 8 DO, 2AI and 1AO channels. The values of these
channels will be stored into several entries in the standardized device
dictionary, such as the entries with indexes 0x6000, 0x6200, 0x6401, and
0x6411. When the CANopen device obtains the input value, these values are
stored in the 0x6000 and 0x6401 indexes. Furthermore, the values stored in
the 0x6200 and 0x6411 indexes also output to the DO and AO channels. The
basic concept is depicted as follows.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------26
Subindex1 : DI Channel 0~7
Subindex2 : DI Channel 8~15
Subindex1 : DO Channel 0~7
Subindex1 : AI Channel 0 Subindex2 : AI Channel 1
Subindex1 : AO Channel 0
DI Standardized Device
Dictionary Object (0x6000)
DO Standardized Device
Dictionary Object (0x6200)
AI Standardized Device
Dictionary Object (0x6401)
AO Standardized Device
Dictionary Object (0x6411)
Practical DI
Channel 0~15
Practical DO Channel 0~7
Practical AI
Channel 0~1
Practical AO
Channel 0
Hardware
Standardized Device
Profile Area
Take the CAN-8423 for example. There are some I-8000 or I-87K series
modules plugged in the CAN-8423 I/O expansion slots. The related
information for each module is shown below.
Module Name Slot No DO (ch) AO (ch) DI (ch) AI (ch)
I-8063 0 4 0 4 0
I-87053 1 0 0 16 0
I-8053 3 0 0 16 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------27
When the CAN-8423 boots up, all the channels of the modules plugged in
the CAN-8423 will be scanned. Also, the I/O values of these channels are
arranged into proper object entries one by one. So the minimum data unit is
one byte, the DI and DO channels, which are not enough to fill up one byte, will
be regarded as one byte length automatically. The CAN-8423 uses objects
with the index 0x6000 to store the input values of the DI channels. The I/O
values of the DO, AI, and AO channels are put into the object with the indexes
0x6200, 0x6401, and 0x6411 respectively. When data come through these I/O
values to the corresponding object, the device will follow the rules below.
z The I/O channel values of the I-8000/I-87K series modules with lower
slot numbers are first placed into the object dictionary. After the
CAN-8423 has filled the all I/O channels in one module, then the
CAN-8423 will go to the next slot number to continue.
z Each analog channel is stored by using 2 bytes.
z The number of digital channels of one module, which can’t be divided
by 8 with no remainder, is stored with 1 byte.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------28
After using the rule described above, the result of the object format is as
follows.
Index
sub-index
0x6000
(for DI)
0x6200
(for DO)
0x6401
(for AI)
0x6411
(for AO)
0x00 9 1 9 4
0x01 DI0~DI3
(Slot:0)
DO0~DO3
(Slot:0)
0x02 DI0~DI7
(Slot:1)
0x03 DI8~DI15
(Slot:1)
0x04 DI0~DI7
(Slot:3)
0x05 DI8~DI15
(Slot:3)
The information described above can also be viewed by using the CAN
Slave Utility. For more details about the object dictionary and how to use the
CAN Slave Utility, refer to both chapter 5 and chapter 6.
Application
The application objects handle all of the device functionalities, which
respect to the interaction with the process environment. It is the bridge
between the object dictionary and practical process, such as the analog I/O,
digital I/O….
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------29
3.2 SDO Introduction
In order to access the entries in a device object dictionary, service data
objects (SDOs) are provided. By means of the SDO communication method, a
peer-to-peer communication bridge between two devices is established. The
SDO transmission follows the client-server relationship. The general concept is
shown in the figure below.
Client Server
confirmation
response
data
data
request indication
The SDO has two kinds of the COB-IDs, which are RxSDOs and TxSDOs.
They are viewed at point in the CANopen device. For example, from the view
of the CAN-8123/CAN-8223/CAN-8423, if users want to send a SDO message,
then the CAN-8123/CAN-8223/CAN-8423 needs to receive the SDO message
transmitted from users. Hence, the receive SDO (RxSDO) COB-ID of the
CAN-8123/CAN-8223/CAN-8423 will be used.
If the CAN-8123/CAN-8223/CAN-8423 wants to transmit a SDO message,
then the TxSDO COB-ID of the CAN-8123/CAN-8223/CAN-8423 will need to
be utilized. Before the SDO has been used, only the client can take the active
requirement for a SDO transmission. When the SDO client starts to transmit a
SDO, it is necessary to choose the proper protocol to transmit the SDO.
If the SDO client has to get the information from the device object
dictionary and from the SDO server, the segment upload protocol or block
upload protocol will be applied. The former protocol is used for transmitting
fewer data; the latter protocol is used for transmitting larger data. Both the
segment download protocol and block download protocol will be implemented
when the SDO client wants to modify the object dictionary to the SDO server.
The differences between the segment download protocol and the block
download protocol are similar to the differences between the segment upload
protocol and the block upload protocol. Because of the different access types
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------30
in the object dictionary, not all-accessing action of the object dictionary via the
SDO transmission is allowed. If the SDO client trends to modify the entries of
the SDO server object dictionary which uses the read-only access type, then
the abort SDO transfer protocol will be given and the SDO transmission will
also stop.
The CAN-8123/CAN-8223/CAN-8423 only supports the SDO server.
Therefore, it can only be passive and wait for the client requirements. The
general concept of the upload and download protocol with the
CAN-8123/CAN-8223/CAN-8423 indicated in the following figure.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------31
3.3 PDO Introduction
Communication Modes For The PDO
Based on the transmission data format of the CAN bus, the PDO can
transmit eight bytes of process data at one time. Because of the PDO
messages without overheads, it is more efficient than other communication
objects within CANopen and is therefore used for real-time data transferring,
such as DI, DO, AI, AO, etc.
PDO reception or transmission is implemented via the producer/consumer
communication model (also called the push/pull model). When starting to
communicate in the PDO push mode, it needs one CANopen device to play
the role of PDO producer and zero or more than one device to play the role of
PDO consumer.
The PDO producer sends out the PDO message after it has won the CAN
bus arbitration. Afterwards, each PDO consumer receives this PDO message
respectively, and therefore message is processed by each device to check
whether it is needed or not (be dropped). In the PDO pull mode, one of the
PDO consumers need to send out a remote transmit request to the PDO
producer. According to this remote request message, the PDO producer
responds the corresponding PDO message for each PDO consumer in the
CAN bus. The PDO communication structure figure is shown below.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------32
Producer Consumers
request indication
indication
indication
data
Push model
response confirmation
indication
indication
data
Pull model
request
Producer Consumers
indication
request
request
Remote Transmit Request
From the view of the CANopen device, the TxPDO is used to transmit data
from the CANopen device. Therefore, it is usually applied on DI/AI channels.
The COB-ID of the PDO for receiving data is RxPDO COB-ID, and it is usually
applied on DO/AO channels. Take the CAN-8123/CAN-8223/CAN-8423 for an
example. If a PDO producer sends a PDO message to the
CAN-8123/CAN-8223/CAN-8423, it needs to use the RxPDO COB-ID of the
CAN-8123/CAN-8223/CAN-8423 because it is a PDO reception action viewed
from the CAN-8123/CAN-8223/CAN-8423. Inversely, when some PDO
consumers send remote transmit requests to the CAN-8123/CAN-8223/
CAN-8423, it must use the TxPDO COB-ID of the CAN-8123/CAN-8223/
CAN-8423 because it is a PDO transmission action viewed from the
CAN-8123/CAN-8223/CAN-8423.
Trigger Modes Of PDO
For PDO producers, PDO transmission messages can be trigged by three
conditions. They are the event driven, timer driven and remote request
conditions. All of them are described below.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------33
Event Driven
PDO transmission can be triggered by the occurrence of an object specific
event. For PDOs of the cyclic synchronous transmission type, this is the
expiration of the specified transmission period, which is synchronized by the
exception of the SYNC message.
For PDOs of the acyclic synchronous or asynchronous transmission type,
the triggering of a PDO transmission is device-specified in the CANopen
specification DSP-401 v2.1. By following this spec, the PDO will be triggered
by any change in the DI-channel states when the transmission type of this
PDO is set to acyclic synchronous or asynchronous.
Timer Driven
PDO transmissions are also triggered by the occurrence of a specific
event for the device or if a specified time has elapsed without the occurrence
of an event. For example, the PDO transmission of the CAN-8123/CAN-8223/
CAN-8423 can be triggered by the event timer of the PDO communication
parameters, which is set by the user.
Remote Request
If the PDO transmission type is set to asynchronous or RTR only, the PDO
transmission can only be triggered after receiving a remote transmit request
from any other PDO consumer.
PDO Transmission Types
Generally speaking, there are two kinds of PDO transmission modes,
synchronous and asynchronous. For the PDO in a synchronous mode, it must
be triggered by the reception of a SYNC message. The synchronous mode
can then be distinguished with more detail into three kinds of transmission.
These are the acyclic synchronous, cyclic synchronous and RTR-only
synchronous. The acyclic synchronous can be triggered by both the reception
of a SYNC message and the occurrence of an event defined by an event driver
mentioned above. For the TxPDO object, after receiving a SYNC object from
SYNC producer, the CAN-8123/CAN-8223/CAN-8423 will respond with a
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------34
predefined TxPDO message to the CANopen PDO consumers. For the
RxPDO object, the CAN-8123/CAN-8223/CAN-8423 needs to receive the
SYNC objects to actuate the RxPDO object, which is received before the
SYNC object. The following figures indicate how the acyclic synchronous
transmission type works on the RxPDO and the TxPDO.
The cyclic synchronous transmission mode is triggered by the reception of
an expected number of SYNC objects, and the max number of expected
SYNC objects can be 240. For example, if the TxPDO is set to response when
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------35
receiving 3 SYNC objects, the CAN-8123/CAN-8223/CAN-8423 will feed back
the TxPDO object after receiving 3 SYNC object. For the RxPDO, actuating
the DO/AO channels by the RxPDO is independent of the number of SYNC
objects. These concepts are shown in the figures below.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------36
The RTR-only synchronous mode is activated when receiving a
remote-transmit-request message and SYNC objects. This transmission type
is only useful for TxPDO. In this situation, the CAN-8123/CAN-8223/CAN-8423
will update the DI/AI value when receiving the SYNC object. And, if the RTR
object is received, the CAN-8123/CAN-8223/CAN-8423 will respond to the
TxPDO object. The following figure shows the mechanism of this transmission
type.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------37
The asynchronous mode is independent with the SYNC object. This mode
can also be divided into two parts for more detail. There are RTR-only
asynchronous transmission type and asynchronous transmission type. The
RTR-only transmission type is only for supporting TxPDO transmissions. For
this transmission type, the TxPDO is only triggered by receiving the RTR
object from the PDO consumer. This action is depicted below.
The other part of the asynchronous mode is the asynchronous
transmission type. Under this transmission type, the TxPDO message can be
triggered not only by receiving the RTR object but also by the occurrence of
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------38
TxPDO events described in the event driver paragraph described above.
Furthermore, the DO/AO channels can act directly by receiving the RxPDO
object. This transmission type is the default value when the
CAN-8123/CAN-8223/CAN-8423 boots up. The concept of the asynchronous
type is illustrated as follows.
Inhibit Time
Because of the arbitration mechanism of the CAN bus, the smaller
CANopen communication object ID has a higher transmission priority than the
bigger one. For example, there are two nodes on the CAN bus, the one needs
to transmit the CAN message with the COB-ID 0x181, and the other has to
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------39
transmit the message with COB-ID 0x182. When these two nodes transmit the
CAN message to the CAN bus simultaneously, only the message containing
COB- ID 0x181 can be sent to the CAN bus successfully because of the higher
transmission priority. The message with COB-ID 0x182 needs to hold the
transmission until the message with COB-ID 0x181 is transmitted successfully.
This arbitration mechanism can guarantee the successful transmission for one
node when a transmission conflict occurs.
However, if the message with COB-ID 0x181 is transmitted again and
again, the message with COB-ID 0x182 will never get a chance to be
transmitted. Therefore, the disadvantage of this arbitration mechanism is that
the lower priority of a CAN message is never transmitted successfully if the
higher priority message is sent continuously. In order to avoid the occupation
of the transmission privilege by the message with a lower COB-ID, the inhibit
time parameters for each of the PDO objects define a minimum time interval
between each PDO message transmission, which has a multiple of 100us.
During this time interval, the PDO message will be inhibited from transmission.
Event Timer
This parameter is only used for TxPDO. If the value of the event timer is
not equal to 0 and the transmission type is in asynchronous mode, the
expiration of this time value is considered to be an event. This event will cause
the transmission of the TxPDO message. The event timer parameter is defined
as a multiple of 1ms.
PDO Mapping Objects
The PDO mapping objects provide the interface between PDO messages
and real I/O data in the CANopen device. They define the meanings for each
byte in the PDO message, and may be changed by using a SDO message. All
of the PDO mapping objects are arranged in the Communication Profile Area.
In the CANopen spec (CiA DS401), RxPDO and TxPDO default mapping
objects may be specified as follows:
z There shall be up to 4 enabled TxPDO mapping objects and up to 4
RxPDO mapping objects with default mappings.
z 1st RxPDO and TxPDO mappings are used for digital outputs and
inputs to each other.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------40
z 2nd, 3rd, and 4th RxPDO and TxPDO mapping objects are assigned
to record the value of analog outputs and inputs respectively.
z If a device supports too many digital input or output channels which
exceed the 8 channels, the related analog default PDO mapping
objects shall remain unused and the additional digital I/Os may use
additional PDO mapping objects. This rule shall also be obeyed for
the additional analog channels. Take the RxPDO for example; there
are 11 DO object entries and 13 AI object entries in the object
dictionary. In the default situation for the
CAN-8123/CAN-8223/CAN-8423, the first 8 DO object entries will be
mapped to the first RxPDO mapping object because one DO object
entry needs one byte space. The last 3 DO object entries will be
assigned into the 5th
RxPDO because of the 2nd and 3rd rule
described above. One AO object entry needs 2 bytes of space.
Therefore, the second RxPDO mapping object loads the first 4 AO
object entries. The following 4 AO object entries are packed into the
third RxPDO mapping object, and so is the 4th RxPDO mapping
object. Because the 5th RxPDO mapping object has been occupied
by the DO object entries, the last AO object entry shall be assigned
into the 6th RxPDO mapping object.
Before applying the PDO communications, the PDO producer and the
PDO consumers need to have their PDO mapping information for each other.
On the one hand, the PDO producers need PDO mapping information to
decide how to assign the expected practical I/O data into PDO messages.
Besides, PDO consumers need the PDO mapping information to know the
meaning of each byte of received PDO message. That is to say that when a
PDO producer transmits a PDO object to PDO consumers, the consumers
contrast this PDO message with PDO mapping entries which are previously
obtained from the PDO producer. Then, interpret the meanings of these values
from the received PDO object. For example, if a CANopen device has 16 DI, 8
DO, 2 AI, and 1 AO channels. The input or output values of these channels will
be stored into several specific entries for each other. If the user-defined PDO
mapping objects have been used, then general concept for these PDO
mapping objects which have been depicted may be very useful.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------41
Subindex1 : DI Channel 0~7
Subindex2 : DI Channel 8~15
Subindex1 : DO Channel 0~7
Subindex1 : AI Channel 0 Subindex2 : AI Channel 1
Subindex1 : AO Channel 0
DI Standardized Device
Dictionary Object (0x6000)
DO Standardized Device
Dictionary Object (0x6200)
AI Standardized Device
Dictionary Object (0x6401)
AO Standardized Device
Dictionary Object (0x6411)
1 2 3 4 5 6 70 1 2 3 4 5 6 70
RxPDO Mapping Object TxPDO Mapping Object
According to the PDO mapping objects in the figure above, if this
CANopen device gets the RxPDO message including three bytes, the first byte
is interpreted as the output value of the DO channels 0~7 and the following two
bytes are the analog output value. After interpreting the data of the RxPDO
message, the device will actuate the DO and AO channels with the received
RxPDO message. Take a note that TxPDO also operate in the same
procedure as RxPDO message. When the TxPDO trigger events occur, the
CANopen device will send the TxPDO message to the PDO consumers. The
values of the bytes assigned in the TxPDO message follow the TxPDO
mapping object as in the above figure. The first two bytes of the TxPDO
message are the values for the DI channels 0~7 and channel 8~15. The third
and forth bytes of the TxPDO message refer to the AI channel 0 value. The
fifth and sixth bytes are the values link to AI channel 1. The relationships
among the object dictionary, the PDO mapping object and the PDO message
are given below.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------42
. . .
TxPDO
DI
0
~
7
D
I
8
~1
5
A
I
0
A
I
1
TxPDO mapping objects
RxPDO
D
O
0
~
7
A
O
0
}
}
}
Object Dictionary
Practical I/O
Byte 0
Byte 1
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Byte 7
Byte 0
Byte 1
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
Byte 7
RxPDO mapping objects
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------43
3.4 EMCY Introduction
EMCY messages are triggered by the occurrence of a device internal error.
It follows the producer/consumer relationship. After a CANopen device detects
the internal error, an emergency message is transmitted to the EMCY
consumers only once per error event. No further emergency objects must be
transmitted if no new errors occur on a device. Zero or more emergency
consumers may receive the EMCY object. The CAN-8123/CAN-8223/
CAN-8423 only supports the function of the emergency producer. The
general concept behind the EMCY communications is shown below.
An emergency message contains 8-byte of data called emergency object
data, and follows the structure provided bellow.
Byte 0 1 2 3 4 5 6 7
Content Emergency Error Code Error register Manufacturer specific Error Field
All the fields in the emergency object data will be described in section 5.3.
Take the CAN-8123/CAN-8223/CAN-8423 for an example, if any errors occur
in the CAN-8123/CAN-8223/CAN-8423, the EMCY message will be sent out
from the CAN-8123/CAN-8223/CAN-8423. Afterwards, the EMCY message
will not be transmitted again if the same error occurs repeatedly.
However, if any other different errors detected by the CAN-8123/
CAN-8223/CAN-8423 occur, it will trigger the transmission of the EMCY
message again. After one but not all error reasons are gone, an emergency
message containing the emergency error code “00 00” may be responded to
with the remaining errors in the error register and manufacturer specific error
fields. Hence, by means of checking the EMCY message, users can
understand what is happening in the CAN-8123/CAN-8223/CAN-8423, and
can then do something about the error event.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------44
3.5 NMT Introduction
The Network Management (NMT) follows a node-oriented structure and
also follows the master-server relationship. On the same CAN bus network,
only one CANopen device can have the power to implement the function of
NMT master. All the other CANopen nodes are regarded as NMT slaves. Each
NMT slave is unique, and identified by its node ID from 1 to 127. The NMT
service supplies two protocols, module control protocol and error control
protocol, for different purposes. Through the NMT module control protocol, the
nodes can be controlled into several kinds of status, such as installing,
pre-operational, operational, and stopped. The NMT slave in different statuses
has different privileges to implement the communication protocol. The error
control protocol gives the user the way to detect the remote error in the
network. It can confirm if the node still lives or not.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------45
3.5.1 Module Control Protocols
Before introducing the modules control protocols, let’s look at the
architecture of the NMT state mechanism. The following figure displays the
relationships among each NMT state and the mechanism for changing the
NMT state of a NMT slave.
Operational
Initialization
State Mechanism Diagram
Stop
Pre-Operational
Power on or
Hardware reset
(1)
(2)
(4)(3)
(6)
(8)
(5)
(7)
(9)
(1) At “Power on” the initialization state is entered autonomously
(2) Initialization finished enter Pre-Operational automatically
(3),(6) “Start Remote Node” indication
(4),(7) “Enter Pre-Optional State” indication
(5),(8) “Stop Remote Node” indication
(9) “Reset Node” or “Reset Communication” indication
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------46
Devices enter the Pre-Operational state directly after finishing the device
initialization. Then, the nodes can be switched into different states by receiving
an indication. Each different NMT state allows for specific communication
methods. For example, the PDO message can only transmit or receive in the
operational state. In the following table, the relationship among each NMT
state and communication objects is given.
Installing Pre-operational Operational Stopped
PDO
O
SDO
O O
SYNC Object
O O
Time Stamp Object
O O
EMCY Object
O O
Boot-Up Object
O
NMT
O O O
3.5.2 Error Control Protocols
There are two kinds of protocols defined in the error control protocol.
According to the CANopen spec, one device is not allowed to use both error
control mechanisms, Guarding Protocol and Heartbeat Protocol, at the same
time. The CAN-8123/CAN-8223/CAN-8423 provides the salve function of the
Node Guarding Protocol. Therefore, users can only use this protocol for the
CAN-8123/CAN-8223/CAN-8423 in practical application. And, only node
guarding protocols will be introduced here. The node guarding protocol of the
error protocol is described below.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------47
Node Guarding Protocol
The Node Guarding Protocol follows the Master/Slave relationship. It
provides a way to help uses monitor the node in the CAN bus. The
communication method of node guarding protocol is defined as follows.
Slave state
Slave state
NMT Master NMT Slave
request
request
confirm
confirm
indication
indication
indication
indication
Node Guarding Event Life Guarding Event
Node
Guard
Time
Node
Life
Time
Guarding error
Remote transmit request
Remote transmit request
response
response
The NMT master polls each NMT slave at regular time intervals. This
time-interval is called the guard time and may be different for each NMT slave.
The response of the NMT slave contains the state of that NMT slave, which
may be in a "stopped", "operational", or "pre-operational" state. The node life
time is given by the “guard time * life time factor”. The node life time factor can
also be different for each NMT slave. If the NMT slave has not been polled
during its life time, a remote node error is indicated through the "Life Guarding
Event" service.
In addition, the reported NMT slave state, which does not match the
expected state, also produces the “Life Guarding Event”. This event may
occurs in the DO and AO channels to output the error mode value recorded in
the object with index 0x6207 and index 0x6444. The object with index 0x6026
and 0x6443 can control the error mode value of the DO or AO channels to
enable or disable when the “Lift Guarding Event” has been indicated. For more
information about objects with index 0x6206, 0x6207, 0x6443, and 0x6444,
please refer to chapter 6.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------48
4 Configuration & Getting Start
4.1 CAN-8123/CAN-8223 Configuration Flowchart
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------49
The following procedure is the general concept for off-line mode. This
procedure can be applied in the both of the CAN-8123/CAN-8223 and
CAN-8423.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------50
4.2 CAN-8423 Configuration Flowchart
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------51
The following procedure is the general concept for on-line mode. This
procedure can be only applied in the CAN-8423.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------52
4.3 CAN Slave Utility Overview
The CAN Slave Utility is designed for the CAN-8123/CAN-8223/
CAN-8423. It provides following functions.
z Configure the input range of the I-8000 and I-87K AI/AO modules
plugged in the CAN-8423.
z Scan the I-8000 or I-87K modules in the CAN-8423. Then, it creates
the EDS file to match the scan result in on-line mode.
z Produce the EDS file by using off-line method for
CAN-8123/CAN-8223/CAN-8423.
z Show the important information which is useful in the CANopen
network. Such as the PDO communication objects, and the
standardized device objects and manufacturer specific objects
defined in the CAN-8123/CAN-8223/CAN-8423.
Because all I-8000/I-87K AI/AO parameters configuration can be done by
using SDO protocol of CANopen specification, the CAN-8123/CAN-8223/
CAN-8423 can work directly without using the CAN Slave Utility if users don’t
need the CAN-8423 EDS file creation with on-line mode, That is to say that
users can turn on the CAN-8123/CAN-8223/CAN-8423 and directly apply it in
the CANopen network. If the EDS file is necessary, users can get the EDS file
by using CAN Slave Utility. When the AI/AO channels configuration is needed,
use SDO protocol to modify the AI/AO parameter configurations. For more
detail information, please refer to the chapter 5.5 and 6.2.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------53
4.4 Configuration with the CAN Slave Utility
Install CAN Slave Utility
Step 1: Download the CAN Slave Utility setup file from the web site
http://www.icpdas.com/products/Remote_IO/can_bus/can-8423.htm or http://www.icpdas.com/products/Remote_IO/can_bus/can-8123.htm or
CD-ROM disk following the path of “CD:\CANopen\Slave\CAN-8x23\Utility\”.
Step 2: Execute the CAN_SL_Setup.exe file to install the CAN Slave Utility.
Step 3: A “Welcome” window pops up to prompt user to begin installation.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------54
Step 4: Click the “Next” button and the “Choose Destination Location” window
will pop up for deciding the installation path.
Step 5: Click the “Next” button and start to install the CAN Slave Utility to the
system. After finishing the process, the following figure will be displayed
prompting users to “OK” the successful completion of the installation.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------55
Step 6: After finishing the installation of the CAN Slave Utility, users can find
the CAN_SL Utility as shown in the following screenshot.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------56
Uninstall CAN Slave Utility
You can uninstall the CAN_SL Utility software by one means of any
methods described below.
Step 1: Click “Start” in the task bar, then click Setting/Control Panel as shown
in the following figure.
Step 2: Click the “Add/Remove” button Programs icon to open the dialog.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------57
Step 3: Find out the CAN_SL Utility, and click the Change/Remove button.
Step 4: Click the button “Yes” button to remove the software.
Step 5: Finally, click the button “OK” button to finish the uninstall process.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------58
4.5 CAN-8123/CAN-8223 Configuration (Off-line mode)
Step 1: Select “Application Layer” to “CANopen”. Then, select the “Setting
status” to offline.
Step 2: Here, assume that users’ CAN slave device is CAN-8223 with node ID
123 and baud rate 1000Kbps. Fill the correct value of users’ CAN-8223 node
ID and baud in the “NODE ID” and “CAN Baud rate” filed. Then, select the “Slot
Number” to “2 Slot”.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------59
Step 3: Afterwards, click one of the slot module icons shown in the “CAN Slave
Device Situation” frame. The list box will be popped up. Select the correct slot
module plugged into the CAN-8223.
Step 4: If the I-8024 and I-8042 modules are plugged into slot 0 and slot 1
respectively, then, select 8024 in the list box, and click button “Apply Module”
to save the configuration.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------60
Step 5: After finishing the configuration, users can slip the mouse point to the
slot module in the “CAN Slave Device Situation” frame. If configuration is
successful, users can see the correct module name on the top of the slot
module.
Step 6: Afterwards, repeat the step 4~5 to configure the slot 1 to I-8042 module.
Then, click “Save Setting” button to finish the off-line parameter settings.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------61
Step 7: Users can perform the parameter setting in the “General Setting”
windows. Also, users can check the default settings for each slot module by
clicking this module. Or move the mouse pointer on the slot module to see the
module name and module information in the “Module Information” frame.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------62
Step 8: The two fields, “description” and “create by”, can help users to do some
notes in the EDS file. If these two fields are empty, the “ICPDAS CANopen I/O
Slave Device” and “ICPDAS” will be used as the default value when creating
the EDS file.
Step 9: Users can click on the “PDO Information”, “Device Information “, and
the “Slot Module Information” button to view the PDO objects, device profile
and slot module configuration information. These information dialogs are
shown below.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------63
If everything is ok, click the “Finish” button to create the EDS file.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------64
Note: If users use off-line method to get the EDS file, the objects, which are
used to record the input/output range of the analog modules, will be described
to default value in the EDS file. However, the I-87K slot modules hold the
input/output range parameter settings in their own EEPROM. It may cause the
mismatch between real input/output range setting and EDS file. By the way,
CAN-8123/CAN-8223 needs to configure the input/output range settings by
using CANopen SDO protocol. For more detail, please refer to the section 5.5
in CAN-8123/CAN-8223/CAN-8423 user manual.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------65
4.6 CAN-8423 Configuration (On-line mode)
Before using the CAN Slave utility in the On-line mode with the CAN-8423,
please make sure that you have connected COM1 of the CAN-8423 with the
available COM port on your PC. The architecture is displayed in the following
figure. In this demo, the CAN-8423 will be used, and slot modules, I-87057,
I-87057, I-87024 and I-87017 are plugged in the slot 0, 1, 2, 3 respectively.
Step 1: Turn off the CAN-8423. Set the “Baud” rotary switch of CAN-8423 to 9.
Then turn on the CAN-8423.
8
7
0
C
4
2
1
F
D
B
9
5
3
A
6
E
BAUD
Step 2: Use the “Baud” rotary switch again to set the baud rate of CAN-8423.
Here, use baud rate 1000Kbps for the demo. Therefore, set the “Baud” rotary
switch to 7.
8
7
0
C
4
2
1
F
D
B
9
5
3
A
6
E
BAUD
Step 3: Execute the CAN_SL.exe file, and the figure will be displayed. Select a
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------66
PC COM port to connect the CAN-8423. Here, use PC COM 2 for this demo.
Click button “Connect” to get the information stored in the CAN-8423.
Step 4: Afterwards, users can move the mouse pointer to the slot of CAN-8423
shown in the “CAN Slave Device Situation” to get the information of this
module.
Step 5: Click the slot module 3 and select the output range in the list box of
“Module Configuration” frame. Here, select -10.00V~+10.00V for demo.
Because the feature of I-8024 slot module, each channel output range will be
changed together after users select the output range of one channel.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------67
Step 6: After decide the proper output range, click “Set” button to store the
parameter setting. If all of slot module configurations are finished, click “Build
EDS File” button to go on the next step.
Step 7: Afterwards, users can see the “EDS File Information” window, and fill
the “Description” and “Create by” filed for the EDS file. Also, users can see the
CANopen objects information and modules information by click the buttons.
For the detail information, please refer to the Step8 and Setp9 in section 4.5.
Note: The CAN-8423 can also create the EDS file by using off-line mode, and
set the analog input range or analog output range by using the CANopen SDO
protocol.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------68
5 CANopen Communication Set
In the following section, several CANopen communication protocols are
described. Each protocol description has one corresponding demo. Because
the communication methods in the CAN-8123/CAN-8223 are similar with the
ones in CAN-8423, therefore only the demo for CAN-8423 is given. Before
starting the demo, users must have one CAN interface to send out the CAN
command. Here, PISO-CAN200/400 CAN interface card will be used. The
PISO-CAN200/400 is a 2/4 CAN port PCI interface card. It provides an
easy-to-use utility tool to sending the CAN 2.0A or 2.0B command. The
hardware structure is shown as follows.
Please refer to the PISO-CAN200/400 user manual to know how to use
the PISO-CAN200/400 Utility Tool.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------69
5.1 SDO Communication Set
5.1.1 Upload SDO Protocol
Initiate SDO Upload Protocol
Before transferring the SDO segments, the client and server need to
communicate with each other by using the initiate SDO upload protocol. During
the initiate SDO upload protocol, the SDO client can tell the SDO server what
object the SDO client wants to get. Also, the initiate SDO upload protocol is
permitted to transfer up to four bytes of data. Therefore, if the data length of
the object, which the SDO client wants to read, is equal to or less than the
permitted data amount, the SDO communication can be finished by only using
the initial SDO upload protocol. That is to say, if the data upload is less enough
to be transmitted in the initiate SDO upload protocol, then the upload SDO
segment protocol will not be used. The communication method of this protocol
is shown as follows.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------70
ccs
: client command specifier
2: initiate upload request
scs
: server command specifier
2: initiate upload response
n
:
Only valid if e = 1 and s = 1, otherwise 0. If valid, it indicates the number of bytes in d that do not contain data. Bytes [8-n, 7] do
not contain segment data.
e
: transfer type
0: normal transfer
1: expedited transfer
If the e=1, it means that the data of the object are equal or less
than 4 bytes, and only initiate SDO upload protocol is needed. If
e=0, the upload SDO protocol is necessary.
s
: size indicator
0: Data set size is not indicated.
1: Data set size is indicated.
m
: multiplexer
It represents the index/sub-index of the data to be transfer by the
SDO. The first two bytes are the index value and the last byte is
the sub-index value.
d
: data
e=0, s=0: d is reserved for further use. e=0, s=1: d contains the number of bytes to be uploaded, and
byte 4 contains the least significant bit, and byte 7
contains the most significant bit.
e=1, s=1: d contains the data of length 4-n to be uploaded, the
encoding depends on the type of the data referenced
by index and sub-index.
e=1, s=0: d contains unspecified number of bytes to be
uploaded.
x
: not used, always 0
reserved
: reserved for further use , always 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------71
Upload SDO Segment Protocol
When the upload data length exceeds 4 bytes, the upload SDO segment
protocol is needed. After finishing the transmission of the initiate SDO upload
protocol, the SDO client starts to upload the data, and the upload segment
protocol will follow the process shown below.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------72
ccs
: client command specifier
3: upload segment request
scs
: server command specifier
0: upload segment response
t
: toggle bit
This bit must alternate for each subsequent segment that is
uploaded. The first segment will have the toggle bit set to 0. The
toggle bit will be equal for the request and the response
message.
c
: indicates whether there are still more segments to be uploaded
0: more segments to be uploaded.
1: no more segments to be uploaded.
seg-data
: It is at most 7 bytes of segment data to be uploaded. The
encoding depends on the type of the data referenced by index
and sub-index.
n
:
It indicates the 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 further use , always 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------73
SDO Upload Example
The practical application of the SDO upload is illustrated as below.
In the following paragraph, both expedited transfer and normal
transfer are given according to the procedure described above. The method on
how to get the value stored in the object dictionary is also presented. By
means of the initiate SDO upload protocol, users can obtain how many
sub-indexes the object with index 0x1400 can support. This information is
located in the object with index 0x1400 with sub-index 00. Also, users can get
the string located in the object with index 0x1008 by using the initiate SDO
upload protocol and the upload SDO segment protocol.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------74
z Example for expedited transfer
Step 1. Send the SDO message to the CAN-8423 to obtain the object entry
with index 0x1400 and sub-index 00 stored in the communication profile area.
The message structure is as follows. Assume that the node ID of the
CAN-8423 is set to 1. Users can find the information about the object entry
with index 0x1400 in chapter 6.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 1 0 0 0 0 0 0 0 0 1 0 8 40 00 14 00 00 00 00 00
SDO client
SDO server
(CAN-8123/CAN-8223
/CAN-8423)
ccs
: 2
m
: 00 14 00
Because low byte needs to transfer firstly, the first byte “00” is the low
byte of 0x1400, the second byte “0x14” is the high byte of 0x1400,
and the last byte “00” means the sub-index 00.
Step 2. The CAN-8423 will respond to the data stored in the object entry with
index 0x1400 and sub-index 00.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 0 1 1 0 0 0 0 0 0 1 0 8 4F 00 14 00 02 00 00 00
SDO client
SDO server
(CAN-8123/CAN-8223
/CAN-8423)
scs
: 2
n
: 3
e
: 1
s
: 1
m
: 00 14 00
d
: 02 00 00 00
Because the n=3, only the 4th byte is valid. Therefore, the feedback
value is 02.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------75
z Example for normal transfer
Step 1. Send the RxSDO message to the CAN-8423 to obtain the object entry
with index 0x1008 and sub-index 00 stored in the communication profile area.
Assume that the node ID for the CAN-8423 is set to 1, and the information
about object entry with index 0x1008 is described in chapter 6.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 1 0 0 0 0 0 0 0 0 1 0 8 40 08 10 00 00 00 00 00
SDO client
SDO server (CAN-8x23)
ccs
: 2
m
: 08 10 00
Step 2. The CAN-8423 responds to the SDO message to indicate how many
bytes users will upload from the CAN-8423.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 0 1 1 0 0 0 0 0 0 1 0 8 41 08 10 00 09 00 00 00
SDO client
SDO server (CAN-8x23)
scs
: 2
n
: 0
e
: 0
s
: 1
m
: 08 10 00
d
: 09 00 00 00
Because the e=0 and s=1, the d means that how many data
users will upload from the CAN-8423. The byte “09” is the lowest
byte in the data length with long format. Therefore, the data “09
00 00 00” means that users will upload 9 bytes data from
CAN-8423.
Step 3. Request the CAN-8123 to start the data transmission.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------76
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 1 0 0 0 0 0 0 0 0 1 0 8 60 00 00 00 00 00 00 00
SDO client
SDO server (CAN-8x23)
ccs
: 3
t
: 0
Step 4. The CAN-8423 will respond to the first 7 bytes in the index 0x1008 and
sub-index 00 object entries.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 0 1 1 0 0 0 0 0 0 1 0 8 00 43 41 4E 2D 38 34 32
SDO client
SDO server (CAN-8x23)
scs
: 0
t
: 0
n
: 0
c
: 0
seg-data
: 43 41 4E 2D 38 34 32
Users can check chapter 6 to see that the object entry with index
0x1008 and sub index 00 has the data type “VISIBLE_STRING”.
Therefore, users need to transfer these data values to the
corresponding ASCII character. After transformation, they are
“CAN-842”.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------77
Step 5. Request the CAN-8423 to transmit the rest of the data.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 1 0 0 0 0 0 0 0 0 1 0 8 70 00 00 00 00 00 00 00
SDO client
SDO server (CAN-8x23)
ccs
: 3
t
: 1
Step 6. Receive the rest of the data from the SDO server.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 0 1 1 0 0 0 0 0 0 1 0 8 1B 33 00 00 00 00 00 00
SDO client
SDO server (CAN-8x23)
scs
: 0
t
: 1
n
: 5
c
: 1
seg-data
: 33 00 00 00 00 00 00
Because the n=5, only the fisrt two bytes are valid. Transfer the
value of 0x33 and 0x00 to the corresponding ASCII character.
After transformation, it means “3 ”.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------78
5.1.2 SDO Block Upload
Initiate SDO Block Upload Protocol
The SDO Block Upload is usually used for large data transmission. At the
beginning of the SDO Block Upload, the Initiate SDO Block Upload protocol is
needed. This protocol is described below.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------79
ccs
: client command specifier
5: block upload
scs
: server command specifier
6: block upload.
cs
: client subcommand
0: initiate upload request
3: start upload
ss
: server subcommand
0: initiate upload response
m
: multiplexor
It represents the index/sub-index of the data to be transfer by the
SDO.
cc
: client CRC support
cc=0: Client does not support generating CRC on data. cc=1: Client supports generating CRC on data.
sc
: server CRC support
sc=0: Server does not support generating CRC on data. sc=1: Server supports generating CRC on data.
pst
: Protocol Switch Threshold in bytes to change the SDO transfer
protocol
pst=0: change of transfer protocol not allowed pst>0: If the size of the data in bytes that has to be uploaded is
less or equal pst, the server can optionally switch to the ‘SDO
Upload Protocol’ by transmitting the server response of the ‘SDO
Upload Protocol’.
s
: size indicator
0: Data set size is not indicated.
1: Data set size is indicated.
size
: upload size in byes
s=0: Size is reserved for further use, always 0. s=1: Size contains the number of bytes to be uploaded. Byte 4
contains the LSB and byte 7 is the MSB.
blksize
:
number of segments per block with 0 < blksize < 128
x
: not used, always 0
reserved
: reserved for further use , always 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------80
Upload SDO Block Segment Protocol
After finish the Initiate SDO Block protocol, the SDO server starts to
respond to the data by using the Upload SDO Block Segment protocol. Each
block contains 1 segment for minimum and 127 segments for maximum. One
segment consists of 1~7 bytes. Only one block can be transmitted during an
Upload SDO Block Segment protocol. The SDO server can send a maximum
of 127 blocks by using 127 Upload SDO Block Segment protocols. Here is the
structure of the Upload SDO Block Segment protocol.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------81
ccs
: client command specifier
5: block upload
cs
: client subcommand
2: block upload response
c
: It indicates whether there are still more segments to be
uploaded.
0: more segments to be uploaded
1: no more segments to be uploaded , enter ‘End block upload’
phase
seqno
:
sequence number of segment, 0 < seqno < 128
seg-data
: It is at most 7 bytes of segment data to be uploaded.
ackseq
: sequence number of last segment that was received
successfully during the last block upload
If ackseq is set to 0, the client indicates the server that the
segment with the sequence number 1 was not received correctly
and all segments have to be retransmitted by the server.
blksize
: number of segments per block that has to be used by server for
the following block upload with 0 < blksize < 128
x
: not used, always 0
reserved
: reserved for further use , always 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------82
End SDO Block Upload Protocol
The End SDO Block Upload protocol is used for finishing the SDO Block
upload, and is shown in the following figure.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------83
ccs
: client command specifier
5: block upload
scs
: server command specifier
6: block upload
cs
: client subcommand
1: end block upload request
ss
: server subcommand
1: end block upload response
n
: It indicates the number of bytes in the last segment of the last
block that do not contain data. Bytes [8-n,7] do not contain
segment data.
crc
: 16 bit Cyclic Redundancy Checksum (CRC) for the whole data
set.
The algorithm for generating the CRC is as follows.
x^16+x^12+x^5+1
CRC is only valid if in Initiate Block Upload cc and sc are set to
1. Otherwise crc has to be set to 0. For
CAN-8123/CAN-8223/CAN-8423, it is not support CRC check
mechanism.
x
: not used, always 0
reserved
: reserved for further use , always 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------84
SDO Block Upload Example
The following figure indicates the general procedure for applying the SDO
Block upload.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------85
By following this procedure, we provide a demo for obtaining the value of
the index 0x1008 and sub-index 00 object entries.
Step 1. Request the CAN-8423 to transmit the data by using the SDO Block
Upload method.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 1 0 0 0 0 0 0 0 0 1 0 8 A0 08 10 00 7F 00 00 00
SDO client
SDO server (CAN-8x23)
ccs
: 5
cc
: 0
cs
: 0
m
: 08 10 00
blksize
: 7F
Each block contains 127 segments.
pst
: 00
Step 2. The CAN-8423 confirms the requirement with the Initiate SDO Block
Upload protocol.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 0 1 1 0 0 0 0 0 0 1 0 8 C2 08 10 00 09 00 00 00
SDO client
SDO server
(CAN-8x23)
scs
: 6
sc
: 0
s
: 1
ss
: 0
m
: 08 10 00
size
: 09 00 00 00
The CAN-8123 will response 9 bytes data during the SDO Block
Upload.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------86
Step 3. Send the message to finish the Initiate SDO Block Upload protocol,
and inform the CAN-8423 to start the data transmission.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 1 0 0 0 0 0 0 0 0 1 0 8 A3 00 00 00 00 00 00 00
SDO client
SDO server
(CAN-8x23)
ccs
: 5
cs
: 3
Step 4. The CAN-8123 responds to the first 7 bytes of data by using the
Upload SDO Block Segment protocol.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 0 1 1 0 0 0 0 0 0 1 0 8 1 43 41 4E 2D 38 34 32
SDO client
SDO server
(CAN-8x23)
c
: 0
seqno
: 1
seg-data
: 43 41 4E 2D 38 34 32
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------87
Step 5. The CAN-8123 transmits the rest of the data.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 0 1 1 0 0 0 0 0 0 1 0 8 82 33 00 00 00 00 00 00
SDO client
SDO server (CAN-8x23)
c
: 1
seqno
: 2
seg-data
: 33 00 00 00 00 00 00
Because this segment is the last one, not all of the data in the
seg-data filed is useful. The valid data length will be indicated
when the CAN-8123 send a message to finish the Block Upload
protocol. Please refer to the value of n in the step 7.
Step 6. Afterwards, users send a message to confirm the receiving data
transmitted from the CAN-8423.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 1 0 0 0 0 0 0 0 0 1 0 8 A2 02 7F 00 00 00 00 00
SDO client
SDO server (CAN-8x23)
ccs
: 5
cs
: 2
ackseq
: 2
blksize
: 7F
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------88
Step 7. When the reception confirmation is ok, the CAN-8423 will send a
message to enter the End SDO Block Upload protocol.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 0 1 1 0 0 0 0 0 0 1 0 8 D5 00 00 00 00 00 00 00
SDO client
SDO server (CAN-8x23)
scs
: 6
n
: 5
This value means the useless data in the last segment are from
[8-5] to 7. That is to say that only the first 3 bytes are valid.
ss
: 1
crc
: 00 00
Step 8. Users send a message to finish the End SDO Block Upload protocol.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 1 0 0 0 0 0 0 0 0 1 0 8 A1 00 00 00 00 00 00 00
SDO client
SDO server (CAN-8x23)
ccs
: 5
cs
: 1
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------89
5.1.3 Download
Initiate SDO Download Protocol
The download modes are similar to the upload modes, but different in
some parameters in their SDO messages. They are also separated into two
steps. If the download data length is less than 4 bytes, the download action will
finish in the download initialization protocol. Or, the download segment
protocol will be needed. These two protocols are shown below.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------90
ccs
: client command specifier
1: initiate download request
scs
: server command specifier
3: initiate download response
n
:
Only valid if e = 1 and s = 1, otherwise 0. If valid, it indicates the number of bytes in d that do not contain data. Bytes [8-n, 7] do
not contain segment data.
e
: transfer type
0: normal transfer
1: expedited transfer
If the e=1, it means that the data of the object are equal or less
than 4 bytes, and only initiate SDO download protocol is needed.
If e=0, the download SDO protocol is necessary.
s
: size indicator
0: data set size is not indicated
1: data set size is indicated
m
: multiplexer
It represents the index/sub-index of the data to be transfer by the
SDO.
d
: data
e=0,s=0: d Is reserved for further use. e=0,s=1: d contains the number of bytes to be downloaded, and
byte 4 contains the least significant bit, and byte 7
contains the most significant bit.
e=1,s=1: d contains the data of length 4-n to be downloaded, the
encoding depends on the type of the data referenced
by index and sub-index.
e=1,s=0: d contains unspecified number of bytes to be
downloaded.
x
: not used, always 0
reserved
: reserved for further use , always 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------91
Download Segment Protocol
ccs
: client command specifier
0: download segment request
scs
: server command specifier
1: download segment response
seg-data
: It is at most 7 bytes of segment data to be downloaded. The
encoding depends on the type of the data referenced by index
and sub-index.
n
:
It indicates the number of bytes in segment 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
: It indicates whether there are still more segments to be
downloaded.
0 more segments to be downloaded
1: no more segments to be downloaded
t
: toggle bit
This bit must alternate for each subsequent segment that is
downloaded. The first segment will have the toggle-bit set to 0.
The toggle bit will be equal for the request and the response
message.
x
: not used, always 0
reserved
: reserved for further use , always 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------92
SDO Download Example
When the SDO download example has been applied, the procedure in the
below figure may be applied.
Since all of those object entries, which can be written, in the
CAN-8123/CAN-8223/CAN-8423 are equal or less than 4 bytes, we can only
provide the demo for expedited transfer.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------93
z Example for expedited transfer
Step 1. Send the Rx SDO message to the CAN-8423 to access the object
entry with index 0x1400 and sub-index 02 stored in the communication profile
area. Here, change the value of this object entry to 5. Assume that the node ID
for the CAN-8423 is set to 1.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 1 0 0 0 0 0 0 0 0 1 0 8 2F 00 14 02 05 00 00 00
SDO client
SDO server
(CAN-8123/CAN-8223/
CAN-8423)
ccs
: 1
n
: 3
e
: 1
s
: 1
m
: 00 14 02
d
: 05 00 00 00
Because the n=3, only the 4th byte is valid. Therefore, the feedback
value is 05.
Step 2. The CAN-8423 will response the message to finish the data download.
Afterwards, users can use upload methods mentioned before to read back the
value for confirmation.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 0 1 1 0 0 0 0 0 0 1 0 8 60 00 14 02 00 00 00 00
SDO client
SDO server
(CAN-8123/CAN-8223/
CAN-8423)
scs
: 3
m
: 00 14 00
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------94
5.1.4 SDO Block Download
The procedure of SDO Block Download is similar with the SDO Block
Upload. There are three steps during the SDO Block Download. The Initiate
SDO Block Download protocol is the beginning protocol for SDO Block
Download. In this protocol, the SDO server and SDO client communicate each
other to prepare the necessary information. Afterwards, the SDO Block
Download protocol is used. And, SDO client starts to send data to SDO server.
After finishing the data transmission, the client and server will use the End
SDO Block protocol to terminate the SDO Block Download. The following
figures are the structures for the three protocols.
Initiate SDO Block Download Protocol
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------95
ccs
: client command specifier
6: block download
scs
: server command specifier
5: block download
s
: size indeicator
0: Data set size is not indicated.
1: Data set size is indicated.
cs
: client subcommand
0: initiate download request
ss
: server subcommand
0: initiate download response
cc
: client CRC support
cc=0: Client does not support generating CRC on data. cc=1: Client supports generating CRC on data.
sc
: server CRC support
sc=0: Server does not support generating CRC on data. sc=1: Server supports generating CRC on data.
m
: multiplexor
It represents the index/sub-index of the data to be transfer by the
SDO.
size
: download size in byes
s=0: Size is reserved for further use, always 0. s=1: Size contains the number of bytes to be downloaded. Byte
4 contains the LSB and byte 7 is the MSB.
blksize
:
number of segments per block with 0 < blksize < 128
x
: not used, always 0
reserved
: reserved for further use , always 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------96
Download SDO Block Segment Protocol
scs
: server command specifier
5: block download
ss
: server subcommand
0: initiate download response
c
: It indicates whether there are still more segments to be
downloaded.
0: more segments to be downloaded
1: no more segments to be downloaded , enter ‘End block
download’ phase
seqno
:
sequence number of segment, 0 < seqno < 128
seg-data
: It is at most 7 bytes of segment data to be downloaded.
ackseq
: sequence number of last segment that was received
successfully during the last block download
If ackseq is set to 0, the server indicates the client that the
segment with the sequence number 1 was not received correctly
and all segments have to be retransmitted by the client.
blksize
: number of segments per block that has to be used by client for
the following block download with 0 < blksize < 128
x
: not used, always 0
reserved
: reserved for further use , always 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------97
End SDO Block Download Protocol
ccs
: client command specifier.
6: block download
scs
: server command specifier.
5: block download
cs
: client subcommand
1: end block download request
ss
: server subcommand
1: end block download response
n
: It indicates the number of bytes in the last segment of the last
block that do not contain data. Bytes [8-n,7] do not contain
segment data.
crc
: 16 bit Cyclic Redundancy Checksum (CRC) for the whole data
set.
The algorithm for generating the CRC is as follows.
x^16+x^12+x^5+1
CRC is only valid if in Initiate Block Download cc and sc are set
to 1. Otherwise, crc has to be set to 0. For
CAN-8123/CAN-8223/CAN-8423, it is not support CRC check
mechanism.
X
: not used, always 0
reserved
: reserved for further use , always 0
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------98
SDO Block Download Example
In this demo, the value of the object entry with index 0x1400 and
sub-index 0x02 will be changed to 5 by using the SDO Block Download
communication method. When the SDO Block Download is running, the
procedure is as follows.
CAN-8123/CAN-8223/CAN-84 2 3 user manual (ver. 2.00, Jul y / 26/2007) ------99
Step 1. In order to inform the CAN-8423 that the value of the object entry with
index 0x1400 and sub-index 02 will be modified by using the SDO Block
Download method, the Initiate SDO Block Download protocol is implemented.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 1 0 0 0 0 0 0 0 0 1 0 8 C0 00 14 02 00 00 00 00
SDO client
SDO server
(CAN-8123/CAN-8223/
CAN-8423)
ccs
: 6
cc
: 0
s
: 0
cs
: 0
m
: 00 14 02
size
: 00 00 00 00
Because the value of s is 0, the size is not used.
Step 2. The CAN-8423 responds to the message by using the Initiate SDO
Block Download protocol. Afterwards, the SDO client can start to download the
object‘s data with index 0x1400 and sub-index 02 to CAN-8423.
11-bit COB-ID (bit)
Func Code Node ID
8-byte Data (byte)
10 9 8 7 6 5 4 3 2 1 0
RTR
Data
Length
0 1 2 3 4 5 6 7
1 0 1 1 0 0 0 0 0 0 1 0 8 A0 00 14 02 7F 00 00 00
SDO client
SDO server
(CAN-8123/CAN-8223/
CAN-8423)
scs
: 5
sc
: 0
s
: 0
ss
: 0
m
: 00 14 02
blksize
: 7F
CAN-8123/CAN-8223/CAN-8423 user manual (ver. 2.00, July/26/2007) ------100
Loading...