0% found this document useful (0 votes)
101 views36 pages

Canopen Hands-On Tutorial: Canopen Magic Prods Eval

This document provides an overview of a hands-on tutorial on CANopen: 1. It introduces the CANopen protocol and the simulation tool CANopen Magic ProDS Eval that will be used in the tutorial without requiring hardware. 2. The tutorial contents are then outlined which will cover physical settings, network nodes, object dictionary, process data objects, device configuration files and more advanced features. 3. Part 1 of the tutorial focuses on physical settings like network layers, message basics, and communication bit rates that CANopen supports when used over the CAN bus. Hands-on examples are provided using the simulation tool.

Uploaded by

selnemais
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views36 pages

Canopen Hands-On Tutorial: Canopen Magic Prods Eval

This document provides an overview of a hands-on tutorial on CANopen: 1. It introduces the CANopen protocol and the simulation tool CANopen Magic ProDS Eval that will be used in the tutorial without requiring hardware. 2. The tutorial contents are then outlined which will cover physical settings, network nodes, object dictionary, process data objects, device configuration files and more advanced features. 3. Part 1 of the tutorial focuses on physical settings like network layers, message basics, and communication bit rates that CANopen supports when used over the CAN bus. Hands-on examples are provided using the simulation tool.

Uploaded by

selnemais
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 36

Embedded Systems Academy CANopen Hands-On Tutorial

CANopen Hands-On Tutorial

An Introduction to CANopen

using
CANopen Magic ProDS Eval
Presented by Olaf Pfeiffer
EMBEDDED SYSTEMS ACADEMY

CANopenHOT
July 2005 www.CANopenMagic.com
Slide 1

Prerequisites

‰ All hands-on examples in this tutorial use the program


• CANopen Magic ProDS Eval

‰ This tool allows simulation, configuration, analyzing


and testing CANopen networks
• No hardware required
• All CANopen communication is simulated

‰ Download and install from


• www.canopenmagic.com

CANopenHOT
July 2005

Slide 2

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Our CANopen Book:


Embedded Networking with CAN and CANopen

‰ Published by
Annabooks / RTCBooks
‰ 3 Parts
• Using CANopen
Introductory level up to system
integration
• CANopen Engineering
Developing CANopen nodes
• CANopen Reference
Quick access to all info required by
integrators and developers
‰ www.CANopenBook.com

CANopenHOT
July 2005

Slide 3

Contents

1. Physical Settings 4. Object Dictionary


• Physical layers • Organizing the data
• Message basics communicated
2. Network Nodes • Electronic Data Sheets
• Unique node IDs • Service Data Objects
• Default connection set 5. Process Data Objects (PDO)
Communication Parameters
3. Boot-up, Heartbeat
Network Management • Message IDs and
(NMT) PDO Linking
• Boot-up message • PDO Triggering
• Heartbeat messages 6. PDO Mapping Parameters
• NMT state machine • PDO Contents
• NMT Master message 7. Device Configuration File
• Save and Restore
Configuration
CANopenHOT
July 2005 8. Advanced Features
Slide 4

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

CANopen Hands-On Tutorial – Part 1

Physical Settings

Network physical layer,


message basics,
communication bit rates

CANopen is optimized for CAN

‰ CANopen is ‘open’ to be used on a variety of


networking technologies
• CANopen on Ethernet
- www.Ethernet-Powerlink.com
• CANopen on UART, I2C, LIN
- www.MicroMessaging.com

‰ However, it is optimized to be used on


Controller Area Network (CAN)
• Using a maximum of 8 data bytes
• Using message identifiers 0-1023

CANopenHOT
July 2005

Slide 6

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

CANopen Suitable Physical Layers

High-end PC or Plant
Workstation Management

PC or Plant
Workstation Control

High-end controller, Process


Embedded PC or Ethernet Control
PLC

16 to 32 bit Controller
Coupler

8bit CAN Sensors


CANopenHOT MicroMessaging Actuators
July 2005

Slide 7

What’s in a single message?

Identifier Data bits Control and security


11 bits (0..8 Bytes) 36 bits

‰ In CAN, a single messages is kept short and only


contains up to 8 data bytes
‰ Benefits:
• There can be many messages per second
(rule over thumb: up to 10,000 per second at 1 Mbit,
worst case of 20,000 per second)
• No single message can occupy/block the network for a
long time
• Best for small sensors and actuators
(I/O modules, encoder, push buttons, temperature,…)
‰ Concept: send less data – more often
CANopenHOT
July 2005

Slide 8

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

CANopen Network Speeds

‰ When used on CAN,


the specified networking bit rates are
• 10 kbps
• 20 kbps
• 50 kbps
• 125 kbps Each of these can be added
to the hardware settings of
• 250 kbps
CANopen Magic ProDS Eval
• 500 kbps
• 800 kbps
• 1000 kbps

NOTE:
CANopen Magic ProDS Eval
Does not simulate network speed, available
CANopenHOT
bandwidth only depends on the performance
July 2005 of the PC on which the simulation runs
Slide 9

Hands-On:
Getting started
‰ Start CANopen Magic ProDS Eval

‰ Select ‘None’ for the hardware and pick any network


• Networks are simulated “virtually” within the program.
There is no “live” network traffic
CANopenHOT
July 2005

Slide 10

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

CANopen Hands-On Tutorial – Part 2

Network Nodes

Unique Node IDs,


message IDs used by nodes
Default Connection Set

Layout with CAN physical layer

‰ Main network trunk with termination resistors


• Drop lines only permissible if bit rate is 500kbps or below
‰ Each node must have a unique node ID
• In the range of 1 to 127
‰ Maximum length depends on network speed
• Example: about 250m with 250kbps

Terminator Terminator
Trunk Line Tap Tap Tap Tap

Node Node
Node Drop Line
Node

Node Node
Node

Node Node Node Node


CANopenHOT
July 2005
Node
Slide 12

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Network Configuration
‰ From the main menu, select
Options – Configure Network
‰ Or press the Network Configuration tool button

CANopenHOT
July 2005

Slide 13

Hands-On:
Add nodes to the simulation
‰ In the Network Configuration window,
click on the ‘Add Node” button
‰ Add two digital I/O nodes to the system

1. Node ID ‘1’
2. Name ‘Digital I/O’
3. EDS File
‘Peak Digital 1.eds’
from EDS directory
4. Add ‘2’ nodes
5. Choose the simulated
product
‘PCAN MicroMod Digital 1’
6. Click the ‘OK’ button
CANopenHOT
July 2005

Slide 14

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Run network simulation
‰ Open Trace window, to see simulated network traffic
• From the main menu, select View – Trace
‰ To run the simulation, go to the main window and
select the simulation tab
‰ Click on ‘Run’ to run the simulation of individual
nodes or on the green triangle to run all nodes

Simulation tab
Run all nodes

CANopenHOT
July 2005

Slide 15

Hands-On:
View first messages
‰ Look at the Trace window
‰ Each node produced 2 messages
• Bootup (701h and 702h)
• Emergency Clear (81h and 82h)

CANopenHOT
July 2005

Slide 16

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Message Identifier Assignment

‰ The default message identifiers used by CANopen


nodes are directly related to their node ID
‰ The node ID gets ‘embedded’ into the message
identifier
‰ On CAN using an 11-bit message identifier,
the node ID is in bits 0-7
‰ Bits 8-10 contain message type information

‰ Review the trace window:


• 700h base address is for ‘message type’ bootup
• Add ‘1’ and ‘2’ to get the bootup messages for the
nodes with the IDs 1 and 2

CANopenHOT
July 2005

Slide 17

Default usage of CAN message identifiers

CAN ID
‰ IDs not listed are From To Communication Objects
free and may be
used by system 0h NMT Service
integrator 80h SYNC Message
81h FFh Emergency Messages
‰ IDs used for the 100h Time Stamp Message
PDOs and SDOs
are derived by 181h 1FFh 1st Transmit PDO
adding the 201h 27Fh 1st Receive PDO
Each CANopen “node ID”-1 to the 281h 2FFh 2nd Transmit PDO
node MUST “From” start
address 301h 37Fh 2nd Receive PDO
have a unique
381h 3FFh 3rd Transmit PDO
node ID in the
range of ‰ With this scheme, 401h 47Fh 3rd Receive PDO
1 to 127 the node ID gets 481h 4FFh 4th Transmit PDO
inserted into bits 0 501h 57Fh 4th Receive PDO
to 6 of the CAN 581h 5FFh Transmit SDO
message identifier
CANopenHOT
July 2005
601h 67Fh Receive SDO
Slide 18 701h 77Fh NMT Error Control

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

CANopen Hands-On Tutorial – Part 3

Boot-up, Heartbeat,
Network Management (NMT)

Boot-up message,
heartbeat production, heartbeat consumption
NMT state machine, NMT Master Message

NMT Slave State Diagram

Power-On Reset
Reset Node

Transition from Reset


Initialization to Initialization
Communication
Pre-Operational
happens Transmit Boot-up
automatically at
the end of the Pre-Operational
initialization

Stopped

CANopenHOT
Operational
July 2005

Slide 20

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

NMT Slave Boot-Up Protocol

‰ When going from state “Initializing” to “Pre-


operational”, every CANopen slave node must send a
boot-up message
‰ This informs NMT master, that the node is now
available and is waiting for commands

NMT Slave NMT Master

0 1
0
request indication

CANopenHOT
CAN-ID = 700h + Node-ID
July 2005

Slide 21

Heartbeat

Slave1 Slave1 Slave1 Slave1 Slave1

Slave2 Slave2 Slave2 Slave2 Slave2

time
Heartbeat-Time Slave 1

Heartbeat-Time Slave 2
CANopenHOT
July 2005
CAN-ID = 700h + Node-ID
Slide 22

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Set heartbeat times
‰ Open Network Overview window
• From the main menu, select View – Trace
‰ CANopen Magic now actively scans for nodes
connected to the network
• Nodes ‘1’ and ‘2’ are detected
• Their identification is read and displayed
‰ Set Heartbeats for all nodes to 1s

Click to activate
1000ms = 1s heartbeats

CANopenHOT
July 2005

Slide 23

Hands-On:
Use Trace to verify heartbeat timing
‰ Switch to the Trace Window
• Clear trace
• Enable static trace view
• Use relative timestamps
‰ Periodically transmitted heartbeats are displayed

Relative
Clear Static View Timestamps

CANopenHOT
July 2005

Slide 24

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Send NMT Master Message
‰ NMT (Network Management) Master Message
• Switches the NMT state of individual or all nodes
Shortcuts to ‰ In main window go to the
NMT messages Network Management tab
‰ Here NMT Master
messages can be
NMT tab generated addressed to
individual nodes (the one
currently selected) or all
nodes
‰ Shortcuts to transmit
‘NMT to all nodes’ are
available in the tool bar

CANopenHOT
July 2005

Slide 25

CANopen Hands-On Tutorial – Part 4

Object Dictionary

Organization of data communicated,


Electronic Data Sheets (EDS),
Service Data Objects (SDO)

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

The Object Dictionary Concept

‰ CANopen uses an Object Dictionary with a


16-bit index and an 8-bit sub-index
• Similar to a look-up table
• Length of each entry is variable
‰ Different areas (index ranges) in the table are reserved
for certain purposes
• Data types
• Communication profile
• Device profile (includes process data)
‰ A master or configuration tool can access any value
in the object dictionary of the slaves
• Read or write access
• Only if slave supports the specified entry
CANopenHOT
July 2005

Slide 27

Mandatory object dictionary entries

‰ The following object dictionary entries are all entries


that are mandatory
‰ They must be supported by ALL nodes in order to be
compliant to CANopen

Index SubIdx Type Description

1000h 0 UNSIGNED32 Device Type Information

1001h 0 UNSIGNED8 Error Register

1017h 0 UNSIGNED16 Heartbeat Time

1018h Identity Object


0 UNSIGNED8 = 4 (Number of sub-index entries)
1 UNSIGNED32 Vendor ID
2 UNSIGNED32 Product Code
3 UNSIGNED32 Revision Number
CANopenHOT 4 UNSIGNED32 Serial Number
July 2005

Slide 28

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Mandatory object dictionary entries


Heartbeat

Index SubIdx Type Description

1017h 0 UNSIGNED16 Heartbeat Time

‰ In CANopen either “Node Guarding” or “Heartbeat”


must be supported by a node to be CANopen conform
‰ As “Heartbeat” is the preferred, recommended
method it is included in this listing of mandatory OD
entries
‰ The heartbeat time is specified in milliseconds
‰ When this parameter is unequal zero, the node sends
a heart beat message every “Heartbeat Time”
milliseconds

CANopenHOT
July 2005

Slide 29

CANopen
SDO - Service Data Object Communication

‰ Used for Point-To-Point communication between a


configuration tool or master/manager and the nodes
‰ Allows complete access to all entries in the Object
Dictionary of a node
• Includes all process data
‰ Confirmed communication mode
• Each request gets a response
‰ Supports transfer of long data blocks such as upload
or download of code blocks
• Up to 7 bytes per message, every message confirmed
by receiver
• Special “block transfer mode” allows transmitting
blocks of messages with just one confirmation

CANopenHOT
July 2005

Slide 30

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Default CAN IDs used for


SDO communication

Node 1
Master Tx SDO: 581h
Sends SDO Rx SDO: 601h
requests to each
node by using Node 2
CAN ID: Tx SDO: 582h
600h + Node ID Rx SDO: 602h

Expects reply Node 3


in CAN ID: Tx SDO: 583h
580h + Node ID Rx SDO: 603h

CANopenHOT
July 2005

Slide 31

Hands-On:
Reading Object Dictionary entries
‰ Object Dictionary entries can be accessed from the
main window, choose Read or Write Tab

1. For this example, select


the Read Tab
Select node 2. Select the node whose
Object Dictionary should
be accessed, here ‘1’
3. Select the Object
Dictionary entry that
should be accessed,
Select Object here [1017h,00h]
Dictionary entry 4. Click on the
Read button
‰ The message type used
CANopenHOT
for the access is a SDO:
July 2005 Service Data Object
Slide 32

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Electronic Data Sheets (EDS)

‰ Electronic Data Sheets specify the exact


implementation of the Object Dictionary
• Specifies the implemented Object Dictionary
entries for a specific device
• The format of an EDS is similar to Windows .INI files
to ensure machine readability

‰ In order for a master and/or configuration tool to know


the exact object dictionary entries supported by a
node, it needs local access to the EDS for each node.
• A master running on an embedded microcontroller has
that information hard-coded
• A master or configuration tool with a file system would
use and interpret the “real” EDS file
CANopenHOT
July 2005
In the hands-on example we assigned EDS files to the
nodes when we added them to the list of nodes
Slide 33

CANopen Hands-On Tutorial – Part 5

Process Data Objects (PDO)


Communication Parameters

Message IDs used,


PDO Linking
message triggering options

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

PDO
Predefined Connection Set, Linking
‰ Per default, each node has access to 8 PDOs,
messages with process data in them
• 4 Transmit PDOs (TPDO)
• 4 Receive PDOs (RPDO)
‰ Per default, all transmit PDOs are received and
handled ONLY by the master
‰ Per default, ONLY the master is allowed to use the
CAN message IDs used for transmit PDOs
• So it’s only the master who can send data to the
nodes
‰ With dynamic linking, PDOs are re-assigned
• Nodes can be configured to
- Use specific CAN IDs for transmit PDOs
- Listen to specific CAN IDs for receive PDOs
CANopenHOT
July 2005

Slide 35

Hands-On:
Viewing the PDO Configuration
‰ Switch to Network Overview window
‰ Click on ‘View PDOs’ button for node ‘1’
‰ Note the default CAN-IDs used
• They are from the Default Connection Set

CANopenHOT
July 2005

Slide 36

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Predefined PDO Connections

Slave X
TPDO_1_X
Master TPDO_2_X
RPDO_1_M
RPDO_2_M RPDO_1_X
TPDO_1_M RPDO_2_X
TPDO_2_M
RPDO_3_M Slave Y
RPDO_4_M TPDO_1_Y
TPDO_3_M TPDO_2_Y
TPDO_4_M
RPDO_1_Y
CANopenHOT
July 2005
RPDO_2_Y
Slide 37  CiA

Hands-On:
Verify default TPDO linking
‰ Reset all nodes
‰ View Trace window, clear contents
‰ Switch all nodes to operational
‰ Play with the digital
switches on the I/O
panel of node ‘1’
‰ In Trace window
observe that each
transition results in
transmission of
message ID 181h
• This is the default
message ID for
TPDO1 of node 1

CANopenHOT
July 2005

Slide 38

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Verify default RPDO linking (1)
‰ Open the ‘Transmit List’ window
• From the menu select View – Transmit List
‰ Edit the first message by clicking on its Edit button
1. Select ID for node ‘1’,
first RPDO (201h), the
default message ID for
RPDO1 of node 1
2. Enter a message name
3. Enter a trigger option for
the message: key ‘1’
4. Define message length ‘1’
5. Enter data, for example ’5’
6. Click ‘OK’
CANopenHOT
July 2005

Slide 39

Hands-On:
Verify default RPDO linking (2)
‰ In ‘Transmit List’ window,
ensure the message edited is enabled
‰ Press ‘1’ key or click on ‘Tx’ button
to transmit the message
‰ Observe the Input / Output
window of node ‘1’ now
displaying the LED pattern

CANopenHOT
July 2005

Slide 40

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Dynamic PDO Linking


(supported by configuration tools)

Device X

RPDO_1_X
RPDO_2_X

TPDO_1_X
TPDO_2_X
Device Y
Device Z
RPDO_1_Z TPDO_1_Y
RPDO_2_Z TPDO_2_Y
RPDO_3_Z RPDO_1_Y
TPDO_1_Z RPDO_2_Y
TPDO_2_Z RPDO_3_Y
CANopenHOT
July 2005

Slide 41  CiA

Hands-On:
Changing the PDO Linking
‰ Switch to PDO Configuration window
‰ For node 1, change the CAN-ID for RPDO1
• From 201h to 182h (TPDO1 of node 2)
‰ For node 2, change the CAN-ID for RPDO1
• From 202h to 181h (TPDO1 of node 1)

You can change


the CAN-ID by
editing this field

When done, make


sure to enable the
PDO again
CANopenHOT
July 2005

Slide 42

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Verify new PDO Linking
‰ After a successful change of the PDO linking the two
Input / Output display windows of nodes 1 and 2 are
‘linked’
‰ Changing the input switches on one of them
changes the LEDs on the other

CANopenHOT
July 2005

Slide 43

PDO – Communication Modes

‰ Several Communication Modes are supported:


1. Event Driven
2. Time Driven
3. Synchronized polling (using SYNC message)

‰ An inhibit time ensures that a certain PDO does not


get transmitted too often.

‰ The device profiles specifies which modes need to be


supported by conforming nodes
‰ Default values can vary with manufacturers and are
specified in the Electronic Data Sheets

CANopenHOT
July 2005

Slide 44

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Preparation for PDO trigger examples
‰ If you wish to save the current settings, go to the main
menu and select File – Save Project
‰ From the menu, select File – Open Project
• Locate sub-directory ‘Projects/Data Stimulation’
- Choose project ‘Data Stimulation’
‰ This project only simulates one node,
a node used for data stimulation
‰ In the simulation window, select ‘File – Open’
• Locate sub-directory ‘IO Files,
- Choose file ‘COP_Stimulation_Wave.sim’
‰ Press the red, round button to activate the graph
‰ Set ‘Wave1 Per’ to 60 (60s wavelength)
‰ Set ‘Wave1 Ampl’ to 400 (amplitude of 400)
CANopenHOT
July 2005

Slide 45

Example Waveform of Data Stimulation

CANopenHOT
July 2005

Slide 46

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

1. Event Driven PDO

‰ In event driven mode, a transmit PDO gets


automatically transmitted on COS (Change Of State)
• If an input value changes, it is transmitted
• To avoid frequent messages upon constant changes,
an inhibit time can be specified
‰ This mode minimizes bandwidth usage, as messages
only get transmitted if an input changes
‰ CAUTION:
• If a receiving node misses the first message
(maybe because it came into operational mode later),
it does not know what the current value is until next
COS – and that could potentially take “forever”
• It’s hard to make a reliable prediction for the response
time / real-time behavior of COS systems
CANopenHOT • If a PDO contains data from several channels, the
July 2005
inhibit time effects ALL channels
Slide 47

Hands-On:
Event Driven TPDO
‰ Open the Trace window
‰ Set all nodes to operational
‰ Clear the Trace window NOTE: The data
stimulation nodes
‰ Set trace display to static does not use the
default TPDO CAN
‰ Use relative timestamps identifiers!

‰ The three waveforms are transmitted in messages


• 105h, 107h, 108h, all event driven
‰ Observe:
• In steep areas of the waveform, messages are
transmitted more often
• In flat areas of the waveform, messages are
transmitted less often
CANopenHOT
July 2005

Slide 48

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

2. Time Driven PDO

‰ In time driven mode, a transmit PDO gets


automatically transmitted on a fixed timer period
basis
• For instance transmitting the data all x ms
‰ This mode makes the bandwidth usage easily
predictable and computable
• We can calculate exactly how much bandwidth is used
by this PDO
‰ CAUTION:
• If the data does not change often, a lot of bandwidth is
wasted, as the same data is sent over and over again
• Timers from different nodes are not synchronized
- If 10 nodes all transmit in intervals of 50 ms,
there is no way to predict the exact time slot when
CANopenHOT
each message gets send
July 2005

Slide 49

Hands-On:
Time Driven TPDO
‰ Open the PDO Configuration window
‰ Select Node 7Ch, Data Stimulator
‰ For TPDO5, CAN-ID 105h, change
• Inhibit time to zero, Event time to 250
‰ Observe in Trace Window:
• Message 105h is now transmitted every 250ms

NOTE: The accuracy of the


simulation cannot be as good
as with an embedded system.
Due to other tasks running on
your PC timestamps can vary
by several percentage points

CANopenHOT
July 2005

Slide 50

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

3. SYNC PDO polling

‰ In SYNC mode, a transmit PDO only gets transmitted


AFTER a SYNC message was detected on the bus
• This implements a global, synchronized polling of all
nodes at the same time
‰ Primarily implemented for motion control systems,
this feature also helps to make the overall system
more predictable and computable
• The SYNC producer sends the SYNC message at
fixed interval time slices
‰ CAUTION:
• Each SYNC message causes bursts of data from all
participating nodes

CANopenHOT
July 2005

Slide 51

SYNC – Synchronized Communication


Motion Control Systems - Sensors

‰ Avoiding jitter effects


• Sensors update their internal output buffer constantly
• Sensors transmit data after receiving a high priority sync
(or strobe) message

Data Processing Unit


Sensor A Out Buffer A
In Data A

Sensor B Out Buffer B Data N Data B Data A In Data B


Serial transmission via CAN,
highest priority first
Sensor N Out Buffer N
In Data N

CANopenHOT • Although data is transmitted message by message,


July 2005 the processing unit receives a set of data originating
Slide 52 from the same moment in time

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

SYNC – Synchronized Communication


Motion Control Systems - Actuators

‰ Avoiding jitter effects


• Actuators receive incoming messages to buffer

Data Processing Unit

Out Data A In Buffer A Actuator A

Out Data B In Buffer B Actuator B


Data N Data B Data A

Serial transmission via CAN,


highest priority first
Out Data N In Buffer N Actuator N

CANopenHOT • Only when a sync / strobe message is received,


July 2005 do the actuators apply the previously received values
Slide 53

Hands-On:
Synchronized TPDO (1)
‰ Switch to PDO Configuration window
‰ For TPDO5 and TPDO7, change
• Inhibit time to zero, Event time to zero
• Sync value to 1 (TPDO5) and 2 (TPDO7)

CANopenHOT
July 2005

Slide 54

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Synchronized TPDO (2)
‰ Open the ‘Transmit List’ window
• In main window menu, select ‘View – Transmit List’
‰ Edit a message, for example second row
1. Select CAN ID ’80h’
2. Send on key ‘F1’
3. Length: ‘0’
4. Click ‘OK’
‰ In ‘Transmit Messages’
window, enable the
message
‰ Switch back to Trace

Observe: with each ‘F1’ key press the SYNC


message is transmitted.
Message
CANopenHOT
105h comes after every SYNC.
July 2005
Message 107h comes after every other SYNC.
Slide 55

PDO Parameter “Inhibit Time”

‰ For each transmit PDO an inhibit time can be specified


• Implements a timeout in which a previously send PDO
may not be transmitted again, until timer expires
• Avoids high bus loads caused by the same PDO
transmitted over and over
Request
PDO_3
PDO_2
PDO_1 PDO_1 PDO_1
200 400 600 800 1000 1200 t/µs
Transmission
PDO_1 Inhibit Time
PDO_1 PDO_2 PDO_3 PDO_1
CANopenHOT
July 2005 200 400 600 800 1000 1200 t/µs
Slide 56

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Inhibit Time
‰ Switch to PDO Configuration window
‰ Default settings for Data Stimulator
• Inhibit Time of 10ms
• NOTE:
The Inhibit Time is specified in multiples
of 100 microseconds
NOTE: The accuracy of the
‰ For TPDO5, change simulation cannot be as
• Sync: 0 good as with an embedded
system. Due to other tasks
• Inhibit: 1000 (100ms) running on your PC
• Event 200 (200ms) timestamps can vary by
several percentage points
‰ Observe in Trace window:
• In steep areas of the waveform, messages are
transmitted more often, but never faster than 100ms
CANopenHOT • In flat areas of the waveform, messages are
July 2005
transmitted less often, but never less than 200ms
Slide 57

CANopen Hands-On Tutorial – Part 6

Process Data Objects (PDO)


Mapping Parameters

PDO contents,
which Object Dictionary entries are in a PDO

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

PDO – Process Data Object Mapping

‰ Via entries in the Object Dictionary, the contents of


PDOs can be mapped to any of the process data
available via SDO read and write services
• Allows for a ”shortcut” access to the data without the
need to start “lengthy” SDO communication
‰ A PDO mapping entry can be seen as a specification
of two pointers of a certain data type (determines
length info for that pointer)
• The “OD pointer” specifies which object dictionary
entry will be accessed with this map entry
• The type info specifies how many bits are accessed
(length of data entry)
• The “PDO pointer” specifies where in the PDO
message this data gets inserted
‰ A default mapping is specified by device profiles
CANopenHOT
July 2005

Slide 59

Process Data Object Mapping:


Customize PDO Contents
Index SubIdxType Description
6000h Process data, digital inputs
0 UNSIGNED8 = 2 (Number of sub-index entries)
1 UNSIGNED8 8-bit digital input
2 UNSIGNED8 8-bit digital input
6401h Process data, analog inputs
0 UNSIGNED8 = 2 (Number of sub-index entries)
1 UNSIGNED16 16-bit analog input
2 UNSIGNED16 16-bit analog input

D In 1 D In 2 A In 1 A In 2 Unused
TPDO1
Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Byte 8

‰ Multiple Object Dictionary entries can be combined


into one PDO (transmitted using a CAN message)
CANopenHOT • Total length cannot exceed 8 bytes
July 2005

Slide 60
• Unused bytes are not transmitted

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
PDO Mapping Preparation
‰ Examine available Object Dictionary entries from
• Documentation of a CANopen node…
• Accessing the information from the EDS
‰ Switch to the main window, Read tab
• Click on ‘Select’ to access the EDS browser
• Browse for entries that you would like to map
into one PDO, for example
- [2101h,01h] Up counter 1, 32-bit value
- [2201h,02h] Down counter A, 16-bit value
- [2401h,02h] Wave 1, 16-bit value
• Make sure the total of bits does not exceed 64,
as that is the maximum payload of a single PDO

‰ Now switch to PDO Configuration window


CANopenHOT
July 2005

Slide 61

Hands-On:
Change PDO Mapping
‰ Select a PDO to change, for example TPDO3
• For Map 1, select [2101h,01h] Up counter 1
• For Map 2, select [2201h,02h] Down counter A
• For Map 3, select [2401h,02h] Wave 1
• When done, make sure to set Map Num to ‘3’
and enable PDO

Change back to Map entries 1 to 3


CANopenHOT
Last: 3 when mapping
ensure to enable
July 2005
completed
Slide 62

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Verify New Mapping (1)
‰ Ensure the Data Stimulation node produces data
for the counters and the waveforms
• In simulation window select menu ‘File – Open’
- Select file ‘COP_Stimulation_Count.sim’
‰ Change sliders for ‘Count Up 1’ and ‘Count Down A’
• Verify that there is action in the graph window
- Click red, round button to enable graph

CANopenHOT
July 2005

Slide 63

Hands-On:
Verify New Mapping (2)
‰ Switch to Trace window and observe data contents
of message 103h, column data (hex)
• Note: CANopen uses Little Endian notation
- Least significant byte comes first
• First 4 bytes are the 32-bit value of the up counter
• Next 2 bytes are the 16-bit value of the down counter
• Last 2 bytes are the 16-bit value of the waveform

CANopenHOT
July 2005

Slide 64

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

CANopen Hands-On Tutorial – Part 7

Device Configuration File

Saving and restoring node configurations

Device Configuration Files (DCF)

‰ A DCF file is derived from an EDS


‰ It contains the information about the exact settings for
a particular node
• Instead of just specifying which baud rates are
supported by a node in general (like in EDS)
• A DCF specifies which baud rate a particular node is
set to
‰ Other typical information available via DCF
• Other communication parameters used for a node
(if different from EDS)
• Default settings for all IN and OUT parameters

CANopenHOT
July 2005

Slide 66

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Hands-On:
Generate DCF and restore DCF
‰ All the current settings of the Data Stimulation node
can be saved into a DCF
‰ In the main window make sure that the node you would
like to generate a DCF for is currently selected
‰ From the menu select ‘File – Generate DCF from Node’
• Specify a directory and file name for the file

‰ Now reset the data stimulation node


• This erases all settings

‰ From the menu select ‘File – restore DCF to node’


• Pick the file just generated
• After restoring, the data stimulation node is restored
CANopenHOT to the last saved configuration
July 2005

Slide 67

CANopen Hands-On Tutorial – Part 8

Advanced Features

Process Data Visualization


Saving and restoring networks

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Save and restore an entire network

‰ CANopen Magic ProDS Eval can not only generate


DCFs for individual nodes and restore them

‰ The configuration of ALL nodes can be stored into a


single file, the Network Configuration File (NCF)
• This is an internal file format
• Concatenation of multiple DCFs

‰ With the NCF an entire network can be restored


‘in one go’

‰ The NCF file format and restore mechanism is also


supported by our CANopen PC Developers Kit
CANopenHOT
• Allows PC based applications to restore a network
July 2005

Slide 69

Process Data Visualization

‰ The Process Data window allows the graphical display


of any process data received in CAN messages
‰ For setup, the user must specify which data is located
where in a CAN message

CANopenHOT
July 2005

Slide 70

www.esacademy.com
Embedded Systems Academy CANopen Hands-On Tutorial

Simulation of Custom Devices

‰ Those versions of CANopen Magic ProDS that have


access to a CAN interface also allow custom
CANopen devices to be integrated into the simulation

‰ The Simulation Handler provides a CAN driver


interface that can be used by CANopen source codes
• This has already been implemented and tested for
- MicroCANopen (Plus)
- CMX-CANopen
• The free Borland-C compiler can be used

‰ This allows CANopen nodes to be simulated before


they are physically available
• Same CANopen code base can be used that will later
CANopenHOT go into the physical device
July 2005

Slide 71

Related Web Pages

‰ CANopen Magic
• www.CANopenMagic.com
‰ Book recommendation
• www.CANopenBook.com
‰ Embedded Systems Academy
• www.ESAcademy.com

CANopenHOT
July 2005

Slide 72

www.esacademy.com

You might also like