RoboteQ CANBus Series, MiniCAN, CANOpen, RawCAN, RoboCAN User's Reference Manual

CANBus
CANOpen RawCAN MiniCAN RoboCAN
V2.0, July 8, 2019
visit www.roboteq.com to download the latest revision of this manual
©Copyright 2016-2019 Roboteq, Inc
1
Brushless Motor Connections and Operation

Revision History

Date Version Changes
July 8, 2019 2.0 Extracted from main User Manual
The information contained in this manual is believed to be accurate and reliable. How­ever, it may contain errors that were not noticed at the time of publication. Users are expected to perform their own product validation and not rely solely on data contained in this manual.
2 CANBus Networking Manual V2.0 July 8, 2019
Revision History ......................................................................................... 2
Introduction ................................................................................................ 5
Refer to the Datasheet for Hardware-Specific Issues ................................ 5
User Manual Structure and Use ................................................................. 5
SECTION 1
Supported CAN Modes .............................................................................. 7
Connecting to CAN bus ............................................................................. 8
Introduction to CAN Hardware signaling .................................................... 9
CAN Bus Pinout ......................................................................................... 9
CAN and USB Limitations ........................................................................ 10
Basic Setup and Troubleshooting ............................................................. 10
Cable polarity, integrity and termination resistor ......................................11
Check CANbus activity using a voltmeter .................................................11
Check CANbus activity using a CAN sniffer ..............................................11
Mode Selection and Configuration ...........................................................11
Common Configurations .......................................................................... 12
MiniCAN Configurations .......................................................................... 12
RawCAN Configurations .......................................................................... 12
Using RawCAN Mode .............................................................................. 12
Checking Received Frames ...................................................................... 12
Reading Raw Received Frames ............................................................... 13
Transmitting Raw Frames ......................................................................... 13
Using MiniCAN Mode .............................................................................. 14
Transmitting Data ..................................................................................... 14
Receiving Data ......................................................................................... 14
MiniCAN Usage Example ........................................................................ 15
SECTION 2
Network Operation .................................................................................. 18
RoboCAN via Serial & USB ...................................................................... 18
Runtime Commands ................................................................................ 18
Broadcast Command ............................................................................... 18
Realtime Queries ..................................................................................... 19
Remote Queries restrictions .................................................................... 19
Configurations Read/Writes ..................................................................... 20
Remote Configurations Read restrictions ................................................ 20
Remote Maintenance Commands ........................................................... 20
Self Addressed Commands and Queries ................................................. 21
RoboCAN via MicroBasic Scripting .......................................................... 21
Sending Commands and Configuration ................................................... 21
Reading Operating values Configurations ................................................ 22
Continuous Scan ...................................................................................... 23
Checking the presence of a Node ............................................................ 25
Self Addressed Commands and Queries ................................................. 25
Broadcast Command ............................................................................... 25
Remote MicroBasic Script Download ...................................................... 25
SECTION 3
Use and benefits of CANopen ................................................................. 27
CAN Connection ...................................................................................... 27
CAN Bus Configuration ............................................................................ 28
Node ID .................................................................................................... 28
CAN Networking on Roboteq Controllers ................................................................7
RoboCAN Networking .............................................................................. 17
CANopen Interface ...................................................................................................27
CANBus Networking Manual 3
Bit Rate .................................................................................................... 28
Heartbeat ................................................................................................. 28
Autostart .................................................................................................. 28
Commands Accessible via CANopen ....................................................... 29
CANopen Message Types ........................................................................ 29
Service Data Object (SDO) Read/Write Messages .................................. 29
Transmit Process Data Object (TPDO) Messages ................................... 29
Receive Process Data Object (RPDO) Messages .................................... 30
PDO Mapping .......................................................................................... 31
PDO Transmission Type ............................................................................ 32
Object Dictionary ..................................................................................... 33
Communication Profile ............................................................................. 33
Runtime Commands ................................................................................ 34
Runtime Queries ...................................................................................... 34
DS402 Profile ........................................................................................... 37
SDO Construction Details ........................................................................ 39
SDO Example 1: Set Encoder Counter 2 (C) of node 1 value 10 ............. 39
SDO Example 2: Activate emergency shutdown (EX) for node 12 .......... 40
SDO Example 3: Read Battery Volts (V) of node 1. .................................. 40
SECTION 4
Abbreviations ........................................................................................... 43
Introduction .............................................................................................. 43
What is DS402 ......................................................................................... 43
Implementation ........................................................................................ 44
Index Range & Channel Selection ............................................................ 44
Modes of Operation ................................................................................. 44
Supported SDOs ...................................................................................... 45
PDS FSA .................................................................................................. 45
SDO Description ...................................................................................... 47
0x6040 - Control Word ............................................................................. 47
0x6041 - Status Word .............................................................................. 49
0x6042 - VL Target Velocity ....................................................................... 51
0x6043 - VL Velocity Demand .................................................................. 51
0x6044 - VL Velocity Actual Value ............................................................. 51
0x6046 - VL Velocity Min Max Amount .................................................... 52
0x6048 - VL Velocity Acceleration ............................................................ 52
0x6049 - VL Velocity Deceleration ............................................................ 53
0x6060 - Modes of Operation .................................................................. 53
0x6061 - Modes of Operation Display ..................................................... 53
0x6064 - Position Actual Value (PP) .......................................................... 53
0x606C - Velocity Actual Value (PV) .......................................................... 54
0x6071 - Target Torque (TQ) ..................................................................... 54
0x6077 - Torque Actual Value (TQ) ............................................................ 54
0x607A - Target Position (PP) ................................................................... 54
0x6081 - Profile Velocity (PP) ................................................................... 55
0x6083 - Profile Acceleration (PP) ............................................................ 55
0x6084 - Profile Deceleration (PP) ........................................................... 55
0x6087 - Torque Slope (TQ) ...................................................................... 55
0x60FF - Target Velocity (PV) .................................................................... 56
3.21 0x6502 - Supported Drive Modes .................................................... 56
3.22 0x67FE - Version Number ................................................................ 56
References ............................................................................................... 56
DS402 Implementation on Roboteq Motor Controllers ........................................43
4 CANBus Networking Manual V2.0 July 8, 2019

User Manual Structure and Use

Introduction

Refer to the Datasheet for Hardware-Specific Issues
This manual is the companion to your controller’s datasheet. All information that is specific to a particular controller model is found in the datasheet. These include:
Number and types of I/O
Connectors pin-out
Wiring diagrams
Maximum voltage and operating voltage
Thermal and environmental specifications
Mechanical drawings and characteristics
Available storage for scripting
Battery or/and Motor Amps sensing
Storage size of user variables to Flash or Battery-backed RAM
User Manual Structure and Use
The user manual discusses issues that are common to all controllers inside a given prod­uct family. Except for a few exceptions, the information contained in the manual does not repeat the data that is provided in the datasheets. The manual is divided in 3 sections organized as follows:

SECTION 1 CAN Networking on Roboteq Controllers

This section describes the RawCAN and MiniCAN operating modes available on CAN-en­abled Roboteq controllers.

SECTION 2 RoboCAN Networking

This section describes the RoboCAN protocol: a simple and efficient meshed network scheme for Roboteq devices
CANBus Networking Manual 5
Introduction

SECTION 3 CANopen Interface

This section describes the configuration of the CANopen communication protocol and the commands accepted by the controller operating in the CANopen mode.

SECTION 4 DS402 Implementation on Roboteq Motor Controllers

This section will describe the implementation of CiA DS402 standard on Roboteq motor controllers.
6 CANBus Networking Manual V2.0 July 8, 2019

Supported CAN Modes

SECTION 1
CAN Networking on Roboteq Controllers
Some controller models are equipped with a standard CAN interface allowing up to 127 controllers to work together on a single twisted pair network at speeds up to 1Mbit/s.
Supported CAN Modes
Four CAN operating modes are available on Roboteq controllers:
1 - RawCAN 2 - MiniCAN 3 - CANopen 4 - RoboCAN
RawCAN is a low-level operating mode giving total read and write access to CAN frames. It is recommended for use in low data rate systems that do not obey to any specific stan­dard. CAN frames are typically built and decoded using the MicroBasic scripting language.
MiniCAN is greatly simplified subset of CANopen, allowing, within limits, the integration of the controller into an existing CANopen network. This mode requires MicroBasic script­ing to prepare and use the CAN data.
CANopen is the full Standard from CAN in Automation (CIA), based on the DS402 specifica­tion. It is the mode to use if full compliance with the CANopen standard is a primary requisite.
RoboCAN is a Roboteq proprietary meshed networking scheme allowing multiple Robo­teq devices to operate together as a single system. This protocol is extremely simple and lean, yet practically limitless in its abilities. It is the preferred protocol to use by users who just wish to make multiple controllers work together with the minimal effort.
This section describes the RawCAN and MiniCAN modes.
Detailed descriptions of CANopen and RoboCAN can be found in specific sections of this manual.
CANBus Networking Manual 7
CAN Networking on Roboteq Controllers
CANH
CANL
120Ω
Microcomputer
Joysticks, Batteries HMI’s and other CAN Accessories
Magnetic Guide Sensor
Motor Controllers
PLC
CAN Adapter
120Ω

Connecting to CAN bus

A CAN bus network is made of a stretch of two wires. A device can be put on a CANbus network by simply connecting it’s CAN-High and CAN-Low lines to those of other devices on the network.
Figure 1-1: CAN Network topology
Resistors should be 120 ohm and located at each end of the cable. However, on a short network communication will take place with a single resistor of 100 to 200 ohm located anywhere on the network. Communication will not work if no resistor is present, or if its value is too high.
No ground connection is necessary in between nodes. However, the ground potential of each node must be within a few volts of each other. If all devices on the network are pow­ered from the same power source, this can be expected to be the case.
CANbus will be operational upon enabling the desired CAN protocol and speed using the PC utility.
Important Warning
A ground difference up to around 10V is acceptable. A difference of 30V or higher can cause damage to one or more nodes. CANbus isolators must be used if a similar ground level cannot be guaranteed between nodes.
8 CANBus Networking Manual V2.0 July 8, 2019

Introduction to CAN Hardware signaling

0
2.5V
1.5V
3.5V
0V
00 0000 00000000011111111 11
1
13
14 25
Introduction to CAN Hardware signaling
CANbus uses differential signals, which is where CAN derives its robust noise immunity and fault tolerance. The two signal lines of the bus, CANH and CANL, are biased to around
2.5 V. A logical “1” (also known as the dominant state) on the bus takes CANH around 1 V higher to around 3.5 V, and takes CANL around 1 V lower to 1.5 V, creating a typical 2V differential signal as shown in Figure 1-2.
Figure 1-2: CANbus signaling

CAN Bus Pinout

FIGURE 1-3. DB9.Connector pin locations
TABLE 1-1. CAN Signals on DB9 connector
Pin Number Signal Description
2 CAN_L CAN bus low
7 CAN_H CAN bus high
Differential signaling reduces noise coupling and allows for high signaling rates over twist­ed-pair cable. The High-Speed CANbus specifications (ISO 11898 Standard) are given for a maximum signaling rate of 1 Mbps with a bus length of 40 m with a maximum of 30 nodes. It also recommends a maximum unterminated stub length of 0.3 m.
Depending on the controller model, the CAN signals are located on the 9-pin, 15-pin or 25-pin DSub connector. Refer to datasheet for details.
69
15
The pins on the DB9 connector are mapped as described in the table below.
CANBus Networking Manual 9
CAN Networking on Roboteq Controllers
18
915
1
13
14 25
FIGURE 1-4. DB15 Connector pin locations
The pins on the DB15 connector are mapped as described in the table below.
TABLE 1-2. CAN Signals on DB15 connector
Pin Number Signal Description
6 CAN_L CAN bus low
7 CAN_H CAN bus high
FIGURE 1-5. DB25 pin locations
The pins on the DB25 connector are mapped as described in the table below.
TABLE 1-3. CAN Signals od DB25 connector
Pin Number Signal Description
8 CAN_L CAN bus low
20 CAN_H CAN bus high

CAN and USB Limitations

On some controller models CAN and USB cannot operate at the same time. On control­lers equipped with a USB connector, if simultaneous connection is not allowed, the con­troller will enable CAN if USB is not connected.
The controller will automatically enable USB and disable CAN as soon as the USB is con­nected to the PC. The CAN connection will then remain disabled until the controller is restarted with the USB unplugged.
See the controller model datasheet to verify whether simultaneous CAN and USB is sup­ported.

Basic Setup and Troubleshooting

CANbus is very easy to setup: Simply connect the CANH and CANL to a pair of wires with at least one resistor somewhere along the cable. Enable the desired CAN protocol and speed using the PC utility.
10 CANBus Networking Manual V2.0 July 8, 2019
Basic Setup and Troubleshooting
If communication cannot be established, it can be difficult to determine the source of the problem. Here are a few ways to diagnose:

Cable polarity, integrity and termination resistor

Verify that the controller’s CANH and CANL are connected to the CANH and CANL wire. Check cable continuity to every node. Verify the presence of a least one resistor and that its value is 120ohm (a value of 60 to 200 ohm would be acceptable)

Check CANbus activity using a voltmeter

The presence of CAN data traffic can be checked using a simple voltmeter and measuring the voltage between GND and CANH, and between GND and CANL. When CAN is dis­abled, both lines should have approximately the same voltage around 2.5V. When CAN is enabled with RoboCAN or MiniCAN protocol selected, the controller will send a continu­ous stream of data frames. This will cause the CANH voltage to rise above, and the CANL voltage to drop below, the 2.5V midpoint. If the idle and active voltages do not match the above, try again on the controller alone disconnected from the network but with a 100 to 200 ohm resistor across its CANH and CANL pins.
The CANOpen and RawCAN protocol should not be used for this test as these do not gen­erate data traffic on their own and will not cause measurable voltage changes.

Check CANbus activity using a CAN sniffer

When working on a CAN system, it is highly recommended to make the acquisition of a USB to CAN adapter such as the PCAN-USB from Peak Systems. Connect the adapter to the CANH and CANL and run the sniffer software with the correct bit rate selected. The figure below shows the expected received data when a Roboteq device is on the network with MiniCAN protocol enabled.
Figure 1-6. USB to CAN adapter and MiniCAN frame capture
Mode Selection and Configuration
Mode selection is done using the CAN menu in the RoborunPlus PC utility.
CANBus Networking Manual 11
CAN Networking on Roboteq Controllers
Common Configurations
CAN Mode: Used to select one of the 4 operating modes. Off disables all CAN receive
and transmit capabilities.
Node ID: CAN Node ID used for transmission from the controller. Value may be be-
tween 1 and 126 included.
Bit Rate: Selectable bit rate. Available speeds are 1000, 800, 500, 250, and 125 kbit/s.
Default is 125kbit and is the recommended speed for RawCAN and Mini­CAN modes.
Heartbeat: Period at which a Heartbeat frame is sent by the controller. The frame is
CANopen compatible 0x700 + NodeID, with one data byte of value 0x05 (Status: Operational). The Heartbeat is sent in any of the selected modes. It can be disabled by entering a value of 0.
MiniCAN Configurations
ListenNodeID: Filters to accept only packets sent by a specific node.
SendRate: Period at which data frames are sent by the controller. Frames are struc-
tured as standard CANopen Transmit Process Data Objects (TPDOs). Trans­mission can be disabled by entering a value of 0.
RawCAN Configurations
In the RawCAN mode, incoming frames may be filtered or not by changing the Listen­NodeID parameter that is shared with the MiniCAN mode. A value of 0 will capture all incoming frames and it will be up to the user to use the ones wanted. Any other value will cause the controller to capture only frames from that sender.

Using RawCAN Mode

In the RawCAN Mode, received unprocessed data packets can be read by the user. Like­wise, the user can build a packet with any content and send it on the CAN network. A FIFO buffer will capture up to 16 frames.
CAN packets are essentially composed by a header and a data payload. The header is an 11 bit number that identifies the sender’s address (bits 0 to 6) and a packet type (bits 7 to
10). Data payload can be 0 to 8 bytes long.

Checking Received Frames

Received frames are first loaded in the 16-frame FIFO buffer. Before a frame can be read, it is necessary to check if any frames are present in the buffer using the ?CF query. The query can be sent from the serial/USB port, or from a MicroBasic script using the getval­ue(_CF) function. The query will return the number of frames that are currently pending, and copy the oldest frame into the read buffer, from which it can then be accessed. Send­ing ?CF again, copies the next frame into the read buffer. The query usage is as follows:
Syntax: ?CF
Reply: CF=number of frames pending
12 CANBus Networking Manual V2.0 July 8, 2019
Using RawCAN Mode

Reading Raw Received Frames

After a frame has been moved to the read buffer, the header, bytecount and data can be read with the ?CAN query. The query can be sent from the serial/USB port, or from a Mi­croBasic script using the getvalue(_CAN, n) function. The query usage is as follows:
When the query is sent from serial or USB, without arguments, the controller replies by outputting all elements of the frame separated by colons.
Syntax: ?CAN [ee]
Reply: CAN=header:bytecount:data0:data1: .... :data7
Where: ee = frame element
1 = header 2 = bytecount 3 to 10 = data0 to data7
Examples: Q: ?CAN
R: CAN=5:4:11:12:13:14:0:0:0:0
Q: ?CAN 3 R: CAN=11
Notes: Read the header to detect that a new frame has arrived. If header is dif-

Transmitting Raw Frames

RawCAN Frames can easily be assembled and transmitted using the CAN Send Com­mand !CS. This command can be used to enter the header, bytecount, and data, one element at a time. The frame is sent immediately after the bytecount is entered, and so it should be entered last.
Syntax: !CS ee nn
Where: ee = frame element
ferent than 0, then a new frame has arrived and you may read the data.
After reading the header, its value will be 0 if read again, unless a new frame has arrived.
New CAN frames will not be received by the controller until a ?CAN query is sent to read the header or any other element.
Once the header is read, proceed to read the other elements of the received frame without delay to avoid data to be overwritten by a new arriving frame.
1 = header 2 = bytecount 3 to 10 = data0 to data7 nn = value
Examples: !CS 1 5 Enter 5 in header
!CS 3 2 Enter 2 in Data 0 !CS 4 3 Enter 3 in Data 1 !CS 2 2 Enter 2 in bytecount. Send CAN data frame
CANBus Networking Manual 13
CAN Networking on Roboteq Controllers

Using MiniCAN Mode

MiniCAN is greatly simplified subset of CANopen. It only supports Heartbeat, and fixed map Received Process Data Objects (RPDOs) and Transmit Process Data Objects (TP­DOs). It does not support Service Data Objects (SDOs), Network Management (NMT), SYNC or other objects.

Transmitting Data

In MiniCAN mode, data to be transmitted is placed in one of the controller’s available In­teger or Boolean User Variables. Variables can be written by the user from the serial/USB using !VAR for Integer Variables, or !B for Boolean Variables. They can also be written from MicroBasic scripts using the setcommand(_VAR, n) and setcommand(_B, n) functions. The value of these variables is then sent at a periodic rate inside four standard CANopen TPDO frames (TPDO1 to TPDO4). Each of the four TPDOs is sent in turn at the time peri­od defined in the SendRate configuration parameter.
Header:
TPDO1: 0x180 + NodeID TPDO2: 0x280 + NodeID TPDO3: 0x380 + NodeID TPDO4: 0x480 + NodeID
Data:
TPDO1 VAR1 VAR2
TPDO2 VAR3 VAR4
TPDO3 VAR5 VAR6 VAR7 VAR8
TPDO4 BVar
Byte and Bit Ordering:
Integer Variables are loaded into a frame with the Least Significant Byte first. Example 0x12345678 will appear in a frame as 0x78 0x56 0x34 0x12.
Boolean Variables are loaded in a frame as shown in the table above, with the lowest Boolean Variable occupying the least significant bit of each byte. Example Boolean Var 1 will appear in byte as 0x01.

Receiving Data

In MiniCAN mode, incoming frames headers are compared to the Listen Node ID number. If matched, and if the other 4 bits of the header identify the frame as a CANopen standard RPDO1 to RPDO4, then the data is parsed and stored in Integer or Boolean Variables ac­cording to the map below. The received data can then be read from the serial/USB using the ?VAR or ?B queries, or they can be read from a MicroBasic script using the getval­ue(_VAR, n) or getvalue(_B, n) functions.
Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8
1-8
BVar 9-16
BVar
17-24
BVar
25-32
14 CANBus Networking Manual V2.0 July 8, 2019
Using MiniCAN Mode
Header:
RPDO1: 0x200 + NodeID RPDO2: 0x300 + NodeID RPDO3: 0x400 + NodeID RPDO4: 0x500 + NodeID
Data:
Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8
RPDO1 VAR9 VAR10
RPDO2 VAR11 VAR12
RPDO3 VAR13 VAR14 VAR15 VAR16
RPDO4 BVar
33-40
Byte and Bit Ordering:
Integer Variables are loaded from frame with the Least Significant Byte first. Example, a frame with data as 0x78 0x56 0x34 0x12 will load in an Integer Variable as 0x12345678.
BVar
41-48
BVar
49-56
BVar
57-64
Boolean Variables are loaded from a frame as shown in the table above, with the lowest Boolean Variable occupying the least significant bit of each byte. Example a received byte of 0x01 will set Boolean Var 33 and clear Vars 34 to 40.

MiniCAN Usage Example

MiniCAN can only be used with the addition of MicroBasic scripts that will give a mean­ing to the general variables in which the CAN data are stored. The following simple script uses VAR1 that is transported in RPDO1 as the incoming motor command and puts the Motor Amp VAR9 so that it is sent in TPDO1.
top: speed = getvalue(_VAR, 9) setcommand(_G, 1, speed) motor_amp = getvalue(_A, 1) setcommand(_VAR, 1, motor_amp) wait(10) goto top:
Note: This script does not check for loss of communication on the CAN bus. It is provided for information only.
CANBus Networking Manual 15
CAN Networking on Roboteq Controllers
16 CANBus Networking Manual V2.0 July 8, 2019
RoboCAN Networking
CAN
USB or RS232
Microcomputer
3rd Party CAN Accessory
Magnetic Guide Sensor
CAN Adapter
SECTION 2
RoboCAN Networking
RoboCAN is a Roboteq proprietary meshed networking scheme allowing multiple Roboteq products to operate together as a single system. This protocol is extremely simple and lean, yet practically limitless in its abilities. It is the preferred protocol to use by a user who just wishes to make multiple controllers work together with minimal effort.
In RoboCAN, every controller can send commands to, and can read operational data from, any other node on the network. One or more controller can act as a USB to CAN or Serial to CAN gateway, allowing several controllers to be thus managed from a single PC or mi­crocomputer.
Using a small set of dedicated Microbasic function, scripts can be written to exchange data between controllers in order to create automation systems without the need for a PLC or external computer.
In addition, RoboCAN includes support for processing raw can data as defined in the RawCAN specification (See page 154), in order to incorporate simple CAN compatible 3rd party devices in the network.
CANBus Networking Manual 17
RoboCAN Networking

Network Operation

RoboCAN requires only that a controller has a unique node number (other than 0) assigned and that the RoboCAN mode is selected and enabled. All nodes must be configured to operate at the same bit rate. Each enabled node will emit a special heartbeat at a set and unchangeable rate of 128ms so that each node can create and maintain a map of all nodes alive in the network.

RoboCAN via Serial & USB

Important notice: On many controller models, CAN and USB cannot be operated at the same time. Please see product datasheet to verify if this is the case on the model used. In case USB is not available, this section only applies to RS232 connections.
RoboCAN commands and queries can be sent from a USB or serial port using a modi­fied syntax of the normal serial protocol: By simply adding the @ character followed by the node as a 2 digit hex address, a command or query is sent to the desired node. This scheme works with every Command (! Character), Query (?), Configuration setting (^), Configuration read (~), and most Maintenance commands (%)

Runtime Commands

Below is a Command example:
!G 1 500
This is the normal command for giving a 50% power level command to motor 1 of the controller that is attached to the computer.
@04!G 1 500
This will send the same 50% command to motor 1 of the controller at node address 4.
The reply to a local command is normally a + or - sign when a command is acknowledged or rejected in normal serial mode.
When a command is sent to a remote node, the reply is also a + or – sign. However, in addition, the reply can be a * sign to indicate that the destination node does not exist or is not alive. Note that the + sign only indicates that the command syntax is valid and that the destination node is alive.

Broadcast Command

Node address 00 is used to broadcast a command simultaneously to all the nodes in the network. For example
@00!G 1 500
Will apply 50% power to all motor 1 at all nodes, including the local node
18 CANBus Networking Manual V2.0 July 8, 2019

Realtime Queries

Queries are handled the same way but the reply to a query includes the responding node’s address. Below is a Query example:
?V 2
This is the normal query for reading the battery voltage of the local controller. The control­ler will reply V=123
@04?V 2
This will send the same query to node address 4
The reply of the remote node is @04 V=123
Replies to remote nodes queries are identical to these to a local controller with the excep­tion of an added latency. Since the reply must be retrieved from the remote node depend­ing on the selected bit rate, the reply may come up to 10ms after the query was sent.
RoboCAN via Serial & USB

Remote Queries restrictions

Remote queries can only return a single value whereas local queries can be used to read an array of values. For example
?AI
Is a local query that will return the values of all analog capture channels in a single string as
AI=123:234:345:567
@04?AI
Is a remote query and it will return only the first analog capture channel as
@04 AI=123
Remote queries are not being added in the Query history.
Broadcast remote queries are not supported. For example @00?V 1 will not be executed.
Queries that return strings, such as ?FID or ?TRN are not supported. They will return the value 0
See the Command Reference section in the manual for the complete list and description of available queries
CANBus Networking Manual 19
RoboCAN Networking
Configurations Read/Writes
Configuration settings, like Amp Limit or Operating Modes can be read and changed on a remote node via the CAN bus. For example
@04^ALIM 1 250 will set the current limit of channel 1 of node 4 at 25.0A
@04~OVL will read the Overvoltage limit of node 4.
Note that changing a configuration via CAN only makes that change temporary until the remote controller is powered down. The %EESAV maintenance command must be send to the remote node to make the configuration change permanent.
A configuration write can be broadcast to all nodes simultaneously by using the node Id
00. For example
@00^OVL 250
Will set the overvoltage limit of all nodes at 25.0 Volts
Configuration reads cannot be broadcast.
See the Commands Reference section for the complete list and description of available configurations
Remote Configurations Read restrictions
Remote Configuration Reads can only return a single value whereas local Configuration Reads can be used to read an array of parameters. For example
~AMOD
Will return the operating mode of all analog capture channels in a single string as
AI=01:01:00:01:02
@04~AMOD
Will return only the mode first analog capture channel as
@04 AI=01
Configuration reads cannot be broadcast.

Remote Maintenance Commands

Maintenance Commands are not supported in RoboCAN.
20 CANBus Networking Manual V2.0 July 8, 2019

RoboCAN via MicroBasic Scripting

Self Addressed Commands and Queries

For sake of consistency commands sent to the local node number are executed the same way as they would be on a remote node. However the no CAN frame is sent to the net­work. For example if node 04 receive the command
@04!G 1 500
No data will be sent on the network and it will be interpreted and executed the same way as
!G 1 500
RoboCAN via MicroBasic Scripting
A set of functions have been added to the MicroBasic language in order to easily send commands to, and read data from any other node on the network. Functions are also available to read and write configurations at a remote node. Maintenance commands are not supported.
Sending Commands and Configuration
Sending commands or configuration values is done using the functions
SetCANCommand(id, cc, ch, vv)
SetCANConfig(id, cc, ch, vv).
Where:
id is the remote Node Id in decimal
cc is the Command code, eg _G
ch is the channel number. Put 1 for commands that do not normally require a channel number
vv is the value
Example:
SetCANCommand(04, _G, 1, 500)
Will apply 50% power to motor 1 of node 4
SetCANConfig(0, _OVL, 1, 250)
CANBus Networking Manual 21
RoboCAN Networking
Will set the overvoltage limit of all nodes to 25.0V. Note that even though the Overvoltage is set for the controller and does not normally require that a Channel, the value 1 must be put in order for the instruction to compile.
Script execution is not paused when one of these function is used. The frame is sent on the CAN network within one millisecond of the function call.
Reading Operating values Configurations
When reading an operating value such as Current Counter or Amps, or a configurations such as Overvoltage Limit from another node, since the data must be fetched from the network, and in order to avoid forcing a pausing of the script execution, data is accessed in the following manner:
1. Send a request to fetch the node data
2. Wait for data to be received
3. Read the data
The wait step can be done using one of the 3 following ways
1. Pause script execution for a few milliseconds using a wait() instruction in line.
2. Perform other functions and read the results a number of loop cycles later
3. Monitor a data ready flag
The following functions are available in microbasic for requesting operating values and configurations from a remote node.
FetchCANValue(id, cc, ch)
FetchCANConfig(id, cc, ch)
Where:
id is the remote Node Id in decimal cc is the Command code, eg _G cc is the channel number. Put 1 for commands that do not normally require a channel number
The following functions can be used to wait for the data to be ready for reading:
IsCANValueReady()
IsCANConfigReady()
These functions return a Boolean true/false value. They take no argument and apply to the last issued FetchCANValue or FetchCANConfig function
The retrieved value can then be read using the following functions:
ReadCANValue()
ReadCANConfig()
These functions return an integer value. They take no argument and apply to the last is­sued FetchCANValue or FetchCANConfig function
22 CANBus Networking Manual V2.0 July 8, 2019
Below is a sample script that continuously reads and print the counter value of node 4
Request value to be issued at every t ms, to buffer location n
[Check if new value arrived] Read from Scan buffer
Remote node
Local Scan Buffer
top: FetchCANValue(4, _C, 1) ‘ request data from remote node while(IsCANValueReady = false) ‘ wait until data is received end while Counter = ReadCANValue() ‘ read value print (Counter, “\r”) ‘ print value followed by new line goto top ‘ repeat forever

Continuous Scan

In many applications, it is necessary to monitor the value of an operating parameter on a remote node. A typical example would be reading continuously the value of a counter. In order to improve efficiency and reduce overhead, a technique is implemented to automat­ically scan a desired parameter from a given node, and make the value available for read­ing without the need to send a Fetch command.
A function is provided to initiate the automatic sending of a value from the remote node, at a specific periodic rate, and to be stored to user selected location in a receive buffer.
RoboCAN via MicroBasic Scripting
The remote node will then send the data continuously without further commands.
A function is then provided to detect the arrival of a new value in that buffer location, and another to read the value from that location.
Since the scan rate is known, the execution of the script can be timed so that it is not necessary to check the arrival of a new value.
A scan is initiated with the function:
ScanCANValue(id, cc, ch, tt, bb)
Where:
id is the remote Node Id in decimal
CANBus Networking Manual 23
RoboCAN Networking
cc is the Query code, eg _V
ch is the channel number. Put 1 for queries that do not normally require a channel number
tt is the scan rate in ms
bb is the buffer location
The scan rate can be up to 255ms. Setting a scan rate of 0 stops the automatic sending from this node.
Unless otherwise specified, the buffer can store up to 32 values.
The arrival of a new value is checked with the function
IsScannedCANReady(aa)
Where
aa is the location in the scan buffer.
The function returns a Boolean true/false value
The new value is then read with the function
ReadScannedCANValue(aa)
Where
aa is the location in the scan buffer.
The function returns an integer value. If no new value was received since the previous read, the old value will be read.
The following example shows the use of the Scan functions
‘ Initiate scan of counter every 10ms from node 4 and store to buffer location 0 ScanCANValue(4, _C, 1, 10, 0) ‘ initiate scan of voltage every 100ms from node 4 and store to buffer location 1 ScanCANValue(5, _V, 1, 100, 1)
top:
wait(10) ‘ Executer loop every 10 ms
‘ check if scanned volts arrived if(IsScannedCANReady(1)) ‘ read and print volts Volts = ReadScannedCANValue(1) print (Volts,”\r”) end if
‘ No need to check if counter is ready since scan rate = loop cy­cle Counter = ReadScannedCANValue(0) print (Counter,”\r”)
goto top ‘ Loop continuously
24 CANBus Networking Manual V2.0 July 8, 2019
RoboCAN via MicroBasic Scripting

Checking the presence of a Node

No error is reported in MicroBasic if an exchange is initiated with a node that does not ex­ist. A command or configuration sent to a non-existent node will simply not be executed. A query sent to a non existing or dead node will return the value 0. A function is therefore provided for verifying the presence of a live node. A live node is one that sends the dis­tinct RoboCAN heartbeat frame every 128ms. The function syntax is:
IsCANNodeAlive(id)
Where:
id is the remote Node Id in decimal The function returns a Boolean true/false value.

Self Addressed Commands and Queries

Functions addressed to the local node have no effect. The following function will not work if executed on node 4
SetCANCommand(04, _G, 1, 500)
The regular function must be used instead
SetCommand(_G, 1, 500)

Broadcast Command

Node address 00 is used to broadcast a command, or a configuration write simultaneous­ly to all the nodes in the network.
The local node, however, will not be reached by the broadcast command.

Remote MicroBasic Script Download

RoboCAN includes a mechanism for loading MicroBasic scripts into any node in the net­work. Use the “To Remote” button in the Scripting Tab of the Roborun PC utility. A win­dow will pop-up asking for the destination node Id. Details of the command used to enter the download mode and transferring scripts is outside the scope of this manual.
CANBus Networking Manual 25
RoboCAN Networking
26 CANBus Networking Manual V2.0 July 8, 2019
Use and benefits of CANopen
Other
SECTION 3
CANopen Interface
This section describes the configuration of the CANopen communication protocol and the commands accepted by the controller using the CANopen protocol. It will help you to en­able CANopen on your Roboteq controller, configure CAN communication parameters, and ensure efficient operation in CANopen mode.
The section contains CANopen information specific to Roboteq controllers. Detailed information on the physical CAN layer and CANopen protocol can be found in the DS402 documentation.
Use and benefits of CANopen
CANopen protocol allows multiple controllers to be connected into an extensible unified network. Its flexible configuration capabilities offer easy access to exposed device param­eters and real-time automatic (cyclic or event-driven) data transfer.
The benefits of CANopen include:
Standardized in EN50325-4
Widely supported and vendor independent
Highly extensible
Offers flexible structure (can be used in a wide variety of application areas)
Suitable for decentralized architectures
Wide support of CANopen monitoring tools and solutions

CAN Connection

Controller Controller
CANH
120 Ohm
CANL
CAN Device
120 Ohm Termination Resistor
FIGURE 3-1. CAN connection
CANBus Networking Manual 27
CANopen Interface
Connection to a CAN bus is as simple as shown on the diagram above. 120 Ohm Termina­tion Resistors must be inserted at both ends of the bus cable. CAN network can be up to 1000m long. See CAN specifications for maximum length at the various bit rates.
CAN Bus Configuration
To configure communication parameters via the RoborunPlus PC utility, your controller must be connected to a PC via an RS232/RS485/TCP/USB port
Use the CAN menu in the Configuration tab in order to enable the CANopen mode. Addi­tionally, the utility can be used to configure the following parameters:
Node ID
Bit rate
Heartbeat (ms)
Autostart
TPDO Enable and Send rate
Node ID
Every CANopen network device must have a unique Node ID, between 1 and 127. The val­ue of 0 is used for broadcast messaging and cannot be assigned to a network node.

Bit Rate

Heartbeat

Autostart

The CAN bus supports bit rates ranging from 10Kbps to 1Mbps. The default rate used in the current CANopen implementation is set to 125kbps. Valid bit bates supported by the controller are:
1000K
800K
500K
250K
125K
A heartbeat message is sent to the bus in millisecond intervals. Heartbeats are useful for de­tecting the presence or absence of a node on the network. The default value is set to 1000ms.
When autostart is enabled, the controller automatically enters the Operational Mode of CANopen. The controller autostart is disabled by default. Disabling the parameter will pre­vent the controller from starting automatically after the reset occurs. When disabled, the controller can only be enabled when receiving a CANopen management command.
28 CANBus Networking Manual V2.0 July 8, 2019

Commands Accessible via CANopen

Commands Accessible via CANopen
Practically all of the controller’s real-time queries and real-time commands that can be ac­cessed via Serial/USB communication can also be accessed via CANopen. The meaning, effect, range, and use of these commands is explained in detail in Commands Reference section of the manual. All supported commands are mapped in a table, or Object Dictionary that is compliant with the CANopen specification. See “Object Dictionary” on page 33 for a complete set of commands.

CANopen Message Types

The controller operating in the CANopen mode can accept the following types of mes­sages:
Service Data Objects, or SDO messages to read/write parameter values
Process Data Objects, or PDO mapped messages to automatically transmit param-
eters and/or accept commands at runtime
Network Management, or NMT as defined in the CANopen specification

Service Data Object (SDO) Read/Write Messages

Runtime queries and runtime commands can be sent to the controller in real-time using the expedited SDO messages.
SDO messages provide generic access to Object Dictionary and can be used for obtaining parameter values on an irregular basis due to the excessive network traffic that is generat­ed with each SDO request and response message.
The list of commands accessible with SDO messages can be found in the “Object Dictio­nary” on page 33.

Transmit Process Data Object (TPDO) Messages

Transmit PDO (TPDO) messages are one of the two types of PDO messages that are used during operation.
TPDOs are runtime operating parameters that are sent automatically on a periodic basis from the controller to one or multiple nodes. TPDOs do not alter object data; they only read internal controller values and transmit them to the CAN bus.
TPDOs are identified on a CANopen network by the bit pattern in the 11-bit header of the CAN frame.
4 bits 7 bits
}
Object Type NodeID
TPDO1: 0x180 + Node ID TPDO2: 0x280 + Node ID TPDO3: 0x380 + Node ID TPDO4: 0x480 + Node ID
}
CANBus Networking Manual 29
CANopen Interface
TABLE 3-1. Commands mapped on TPDOs
TPDO Object Index-Sub Size Default Object Mapped
TPDO1 0x2106-1 S32 User VAR 1
TPDO2 0x2106-3 S32 User VAR 3
TPDO3 0x2106-5 S32 User VAR 5
TPDO4 0x2106-7 S32 User VAR 7
S32: signed 32-bit word
CANopen allows up to four TPDOs for any node ID. Unless otherwise specified in the product datasheet, by default, TPDO1 to TPDO4 are used to transmit up to 8 user vari­ables which may be loaded with any operating parameters using MicroBasic scripting. Each of the 4 TPDO can be mapped with any mappable SDO query. For more details see chapter PDO Mapping below.
Each of the 4 TPDOs can be configured to be sent at user-defined periodic intervals. This is done using the CTPS parameter (See “CTPS - CANOpen TPDO Send Rate” in “Roboteq Controllers User Manual v2.0”).
0x2106-2 User VAR 2
0x2106-4 User VAR 4
0x2106-6 User VAR 6
0x2106-8 User VAR 8

Receive Process Data Object (RPDO) Messages

RPDOs are configured to capture runtime data destined to the controller.
RPDOs are CAN frames identified by their 11-bit header.
4 bits 7 bits
}
Object Type NodeID
RPDO1: 0x200 + Node ID RPDO2: 0x300 + Node ID RPDO3: 0x400 + Node ID RPDO4: 0x500 + Node ID
Roboteq CANopen implementation supports RPDOs. Unless otherwise specified in the product’s datasheet, by default, data received using RPDOs are stored in 8 user variables from where they can be processed using MicroBasic scripting. Each of the 4 RPDO can be mapped with any mappable SDO command. For more details see chapter PDO Map­ping below.
TABLE 3-2. Commands mapped on RPDOs
RPDO Object Index-Sub Size Default Object Mapped
RPDO1 0x2005-9 S32 User VAR 9
0x2005-10 User VAR 10
RPDO2 0x2005-11 S32 User VAR 11
0x2005-12 User VAR 12
}
30 CANBus Networking Manual V2.0 July 8, 2019
CANopen Message Types
RPDO Object Index-Sub Size Default Object Mapped
RPDO3 0x2005-13 S32 User VAR 13
0x2005-14 User VAR 14
RPDO4 0x2005-15 S32 User VAR 15
0x2005-16 User VAR 16
S32: signed 32-bit word

PDO Mapping

The Process Data Object (PDO) service allows exchanging one or several process vari­ables in one single CAN message. The PDO mapping parameter describes which objects in the CANopen object dictionary are transmitted by the sender. The PDO receiver uses also a PDO mapping parameter, which specifies where to store the received process data in the CANopen object dictionary. The PDO mapping parameter of the transmitter and the sender may use different pointers (16-bit index and 8-bit sub-index) depending on the CANopen profile.
In some simple devices, the user does not have the possibility to configure the PDO mapping parameters. This is called static PDO mapping, but our controllers provide vari­able PDO mapping. This means the system designer can re-configure the default PDO mapping or generate new PDOs. Normally, this is done in the NMT pre-operational state, when the PDOs are disabled. Of course, the user can also reconfigure the PDO mapping in the NMT operational state, but then it is necessary to avoid inconsistencies in the PDO mapping on the producer and the consumer side. To avoid this, the PDO must not be pro­duced until the entire reconfiguration is finished.
The CiA 301 application layer specification requires a dedicated re-mapping procedure:
1. “Destroy” the PDO by setting the valid bit to 1b of sub-index 01h of the PDO communi­cation parameter.
2. Disable PDO mapping by setting the sub-index 00h of the PDO mapping parameter to 00h.
3. Modify PDO mapping by changing the values of the corresponding sub-indices of the PDO mapping parameters.
4. Enable PDO mapping by setting the sub-index 00h to the number mapped process data.
5. “Create” a PDO by setting the valid bit to 0b of sub-index 01h of the PDO communica­tion parameter.
If the controller detects that the index and subindex of the mapped object does not exist or the object cannot be mapped during step 3, the controller responds with the SDO abort transfer service (abort code: 06020000h or 06040041h). If the controller detects that the RPDO mapping is not valid or not possible during step 4, the controller responds with the SDO abort transfer service (abort code: 06020000h or 06040042h).
In the following example, we will show how to remap TPDO1 (0x1800) to transfer the fol­lowing:
0x2100
0x2100
0x210D
0x210F
: Motor amps for channel 1 (U16).
01
: Motor amps for channel 2 (U16).
02
: Internal voltage (U16).
01
: MCU temperature (U8).
01
CANBus Networking Manual 31
CANopen Interface
In this example, we suppose that the controller has node-id 01.
1. Destroy TPDO1 by setting the invalid bit of COB-ID (0x180001):
23 00 18 01 81 01 00 C0
2. Disable TPDO1 mapping by setting number of entries mapping parameter to 00 (0x1A0000).
2F 00 1A 00 00 00 00 00
3. Modify TPDO1 mapping by changing (0x1A00
0x210001: Motor amps for channel 1 (U16).
23 00 1A 01 10 01 00 21
0x2100
23 00 1A 02 10 02 00 21
0x210D
23 00 1A 03 10 01 0D 21
0x210F
23 00 1A 04 08 01 0F 21
4. Enable TPDO1 mapping by setting number of entries mapping parameter to 04 ((0x1A0000).
2F 00 1A 00 04 00 00 00
5. Create TPDO1 by setting the invalid bit of COB-ID to 0 (0x180001).
23 00 18 01 81 01 00 40

PDO Transmission Type

The transmission type of a PDO can be set via the second sub-index.
: Motor amps for channel 2 (U16).
02
: Internal voltage (U16).
01
: MCU temperature (U8).
01
01-0 2
):
(1)
0
The Transmit PDO is synchronous. Which specific SYNC Object occurrence triggers the transmission is given in the device profile.
1 – 240 The Transmit PDO is synchronous. It is transmitted after every nth
SYNC Object within the Synchronous Window Length, where n is the transmission type. For example, when using transmission type 34, the PDO is transmitted after every 34th SYNC Object.
241 – 25
252
1(1
(1)
) Reserved.
The data for the PDO is updated on reception of a SYNC Object, but the PDO is not transmitted. The PDO is only transmitted on reception of a Remote Transmission Request.
(1)
253
The data for the PDO is updated and the PDO is transmitted on reception of a Remote Transmission Request.
(2)
254
The conditions that cause the Transmit PDO to be transmitted are manufacturer specific.
255 The Transmit PDO is asynchronous. The transmission is triggered at
defined send rate.
32 CANBus Networking Manual V2.0 July 8, 2019

Object Dictionary

(1)
Not supported in Roboteq controllers.
(2)
In Roboteq controllers, it behaves exactly like value 255.
First it is necessary to distinguish between synchronous and asynchronous PDOs:
Asynchronous PDOs are event-controlled and represent the normal transmission type of PDOs. For this, the values 255 or 254 are to be entered as PDO type.
Synchronous PDOs are only transmitted after prior reception of a synchronization mes­sage (Sync Object). PDO transmission is thus carried out synchronously in the entire net­work, more or less at the same time. But what is much more important is that all device inputs must be sampled on the arrival of the sync object, so that a uniform snapshot of the process results. With the next sync-message, the recorded data are then sent in the synchronous PDOs. Therefore, there is a delay here corresponding to the cycle time of the Sync message, as the consumers receive the process variables at the time of the pre­vious Sync message. In output direction the synchronous PDOs received by a node only become valid on arrival of the next Sync message.
In order that the bus is not blocked up by a large number of synchronous PDOs, which are all sent with every Sync message, the values 1-240 of the cyclic synchronous PDO type are used as dividers for the transmission interval. Accordingly, [18xxsub02] = 4 means that the synchronous PDO is only sent with every fourth Sync message.
Object Dictionary
The CANopen dictionary shown in this section is subject to change. The CANopen EDS file can be downloaded from the roboteq web site.
The Object Dictionary given in the table below contains the runtime queries and runtime commands that can be accessed with SDO/PDO messages during controller operation.
Communication Profile
Index Sub (hex) Entry Name Type Access PDO Command
0x1000 00 Device Type U32 RO No
0x10 01 00 Error Register U8 RO No
0x1008 00 Manufacturer Device Name STR CONST No
0x1009 00 Manufacturer Hardware Version STR CONST No
0x100A 00 Manufacturer Software Version STR CONST No
0x100C 00 Guard Time U16 RW No
0x100D 00 Life Time Factor U8 RW No
0x1016 01-04 Consumer Heartbeat Time U32 RW No
0x1017 00 Producer Heartbeat Time U16 RW No
0x1018 01 Identity Object – Vendor ID U32 CONST No
CANBus Networking Manual 33
CANopen Interface

Runtime Commands

Index Sub (hex) Entry Name Type Access PDO Command
0x2000 01-mm
0x2001 01-mm
0x2002 01-mm
0x2003 01-ee
0x2004 01-mm
0x2005 01-vv
0x2006 01-mm
0x2007 01-mm
0x2008 00 Set All Digital Out bits U8 WO Yes DS
0x2009 00 Set Individual Digital Out bits U8 WO Yes D1
0x200A 00 Reset Individual Digital Out bits U8 WO Yes D0
0x200B 01-ee
0x200C 00 Emergency Shutdown U8 WO Yes EX
0x200D 00 Release Shutdown U8 WO Yes MG
0x200E 00 Stop in all modes U8 WO Yes MS
0x200F 01-mm
0x2010 01-mm
0x2011 01-mm
0x2012 01-mm
0x2013 01-mm
0x2014 01-mm
0x2015 01-bb
0x2016 01-rr
0x2017 00 Save Config to Flash U8 WO Yes EES
0x2018 00 Run MicroBasic Script U8 WO Yes R
0x201F 01-si
(1) mm: Maximum number of motors. (2) ee: Maximum number of encoders. (3) vv: Maximum number of integer variables. (4) bb: Maximum number of boolean variables. (5) rr: Maximum number of RC pulse output. (6) si: Maximum number of SSI encoders.
(1)
(1)
(1)
(2)
(1)
(3)
(1)
(1)
(2)
(1)
(1)
(1)
(1)
(1)
(1)
(4)
(5)
(6)
Set Motor Command S32 WO Yes CANGO
Set Position S32 WO Yes P
Set Velocity S16 WO Yes S
Set Encoder Counter S32 WO Yes C
Set Brushless Counter S32 WO Yes CB
Set User Integer Variable S32 WO Yes VAR
Set Acceleration S32 WO Yes AC
Set Deceleration S32 WO Yes DC
Load Home Counter U8 WO Yes H
Set Pos Relative S32 WO Yes PR
Set Next Pos Absolute S32 WO Yes PX
Set Next Pos Relative S32 WO Yes PRX
Set Next Acceleration S32 WO Yes AX
Set Next Deceleration S32 WO Yes DX
Set Next Velocity S32 WO Yes SX
Set User Boolean Variable U32 WO Yes B
Set RC Pulse Out S32 WO Yes RS
Set Absolute SSI Counter S32 WO Yes CSS

Runtime Queries

Index Sub (hex) Entry Name Type Access PDO Command
0x2100 01-mm(1) Read Motor Amps S16 RO Ye s A
0x2101 01-mm(1) Read Actual Motor Command S16 RO Yes M
0x2102 01-mm(1) Read Applied Power Level S16 RO Ye s P
34 CANBus Networking Manual V2.0 July 8, 2019
Object Dictionary
Index Sub (hex) Entry Name Type Access PDO Command
0x2103 01-ee(2) Read Encoder Motor Speed S32 RO Ye s S
0x2104 01-ee(2) Read Absolute Encoder Counter S32 RO Ye s C
0x2105 01-mm(1) Read Absolute Brushless S32 RO Ye s CB
0x2106 01-vv(3) Read User Integer Variable S32 RO Ye s VAR
0x2107 01-ee(2) Read Relative Encoder Motor Speed S16 RO Ye s SR
0x2108 01-ee(2) Read Encoder Count Relative S32 RO Ye s CR
0x2109 0-mm(1) Read Brushless Count Relative S32 RO Ye s BCR
0x210A 01-mm(1) Read BL Motor Speed in RPM S16 RO Ye s BS
0x210B 01-mm(1) Read Relative BL Motor Speed S 16 RO Yes BSR
0x210C 01-mm(1) Read Battery Amps S16 RO Ye s BA
0x210D 01 Read Internal Voltages U16 RO Ye s V
02 Read Internal Voltages (Battery) U16 RO Ye s V
03 Read Internal Voltages (5Vout) U16 RO Ye s V
0x210E 00 Read All Digital Inputs U32 RO Ye s D
0x210F 01-tt(5) + 1 Read MCU temperature (01) and
each transistor temperature (02, 03, …).
0x2110 01-mm(1) Read Feedback S16 RO Ye s F
0x2111 00 Read Status Flags U16 RO Ye s FS
0x2112 00 Read Fault Flags U16 RO Yes FF
0x2113 00 Read Current Digital Outputs U16 RO Yes DO
0x2114 01-mm(1) Read Closed Loop Error S32 RO Ye s E
0x2115 01-bb(4) Read User Boolean Variable U32 RO Ye s B
0x2116 01-mm(1) Read Internal Serial Command S32 RO Ye s CIS
0x2117 01-mm(1) Read Internal Analog Command S32 RO Ye s CIA
0x2118 01-mm(1) Read Internal Pulse Command S32 RO Ye s CIP
0x2119 00 Read Time U32 RO Yes TM
0x211A 01-kk(6) Read Spektrum Radio Capture U16 RO Ye s K
0x211B 01-mm(1) Destination Pos Reached Flag U8 RO Yes DR
0x211C 01-ma(7) Read MEMS Accelerometer S32 RO Ye s M
0x211D 01-mg(8) Read Magsensor Track Detect U8 RO Ye s MGD
0x211E 01-3×mg(8) Read Magsensor Track Position
(Left, Right, and Active Track)
0x211F 01-2×mg(8) Read Magsensor Markers (Left
and Right)
0x2120 01-mg(8) Read Magsensor Status U 16 RO Ye s MGS
0x2121 01-mg(8) Read Magsensor Gyroscope S16 RO Ye s MGY
0x2122 01-mm(1) Read Motor Status Flags U16 RO Ye s FM
0x2123 01-mm(1) Read Hall Sensor States U8 RO Ye s HS
0x2124 00 Read Lock Status U8 RO Ye s LK
S8 RO Ye s T
S16 RO Ye s MGT
U8 RO Yes MGM
CANBus Networking Manual 35
CANopen Interface
Index Sub (hex) Entry Name Type Access PDO Command
0x2125 01-mm(1) Read Destination Tracking S32 RO Ye s TR
0x2132 01-mm(1) Read Rotor Angle S16 RO Ye s ANG
0x2133 00 Read Script Checksum U32 RO Ye s SCC
0x2134 00 Read Node Is Alive U8 RO Ye s ICL
0x2135 01-mm(1) Read FOC Angle Correction S16 RO Yes FC
0x2136 01-ii(9) Read AC Induction Slip S16 RO Yes SL
0x2137 01 Read Firmware Version U16 RO Yes FIN
02 Read Firmware Month U16 RO Yes FIN
03 Read Firmware Day U16 RO Ye s FIN
04 Read Firmware Year U16 RO Ye s FIN
0x2138 01-mg(8) Read MagSensor Cross Tape U8 RO Ye s MGX
0x213A 00 Read BMS Battery’s State of
Charge
0x213C 01-si(10) Read SSI Sensor Motor Speed S32 RO Ye s SS
0x213D 01-si(10) Read Relative SSI Sensor Motor
Speed
0x213E 01-si(10) Read SSI Absolute Counter S32 RO Ye s CSS
0x213F 01-si(10) Read SSI Relative Counter S32 RO Ye s CSR
0x2141 00 Read BMS State of Charge U8 RO Yes BMC
0x2142 00 Read BMS Status Flags U8 RO Ye s BMF
0x2143 00 Read BMS Operational State U8 RO Ye s BMS
0x2145 01- 13 Read Digital Inputs BOOL RO Yes DI
0x2146 01-di(11) Read Analog Inputs S16 RO Ye s AI
0x2147 01-di(11) Read Analog Inputs Converted S16 RO Ye s AIC
0x2148 01-pi(11) Read Pulse Inputs U 16 RO Ye s PI
0x2149 01-pi(11) Read Pulse Inputs Converted S16 RO Ye s PIC
0x214A 01-fs(11) Read FlowSensor S32 RO Ye s F LW
(1) mm: Maximum number of motors. (2) ee: Maximum number of encoders. (3) vv: Maximum number of integer variables. (4) bb: Maximum number of boolean variables. (5) tt: Maximum number of internal temperature sensors. (6) kk: Maximum number of spectrum radio. (7) ma: Maximum number of MEMS accelerometers. (8) mg: Maximum number of magnetic sensors. (9) ii: Maximum number of AC induction motors. (10) si: Maximum number of SSI sensors. (11) di: Maximum number of digital inputs. (12) pi: Maximum number of pulse inputs. (13) fs: Maximum number of flow sensors.
U8 RO Yes BSC
S16 RO Ye s SSR
36 CANBus Networking Manual V2.0 July 8, 2019
Object Dictionary
DS402 Profile
Index Sub (hex) Entry Name Type Access PDO Command
0x6040 00 Control Word CH1 U16 RW Ye s CW
0x6041 00 Status Word CH1 U16 RO Ye s SW
0x6042 00 Target Velocity CH1 S16 RW Ye s S
0x6043 00 VL Velocity Demand CH1 S16 RO Ye s RMP
0x6044 00 VL Velocity Actual Value CH1 S16 RO Ye s F
0x6046 01 VL Velocity Min Amount CH1 U32 RW Ye s SPL
02 VL Velocity Max Amount CH1 U32 RW Ye s SPL
0x6048 01 Velocity Acceleration Delta Speed CH1 U32 RW Ye s SAC
02 Velocity Acceleration Delta Time CH1 U 16 RW Ye s SAC
0x6049 01 Velocity Deceleration Delta Speed CH1 U32 RW Ye s SDC
02 Velocity Acceleration Delta Time CH1 U 16 RW Ye s SDC
0x6060 00 Modes of Operation CH1 S8 RW Ye s ROM
0x6061 00 Modes of Operation Display CH1 S8 RO No AOM
0x6064 00 Position Actual Value CH1 S32 RO Ye s F
0x606C 00 Velocity Actual Value CH1 S32 RO Ye s F
0x6071 00 Target Torque CH1 S16 RW Ye s TC
0x6077 00 Torque Actual Value CH1 S16 RO Ye s TRQ
0x607A 00 Target Position CH1 S32 RW Ye s POS
0x6081 00 Profile Velocity CH1 U32 RW Ye s PSP
0x6083 00 Profile Acceleration CH1 U32 RW Ye s PAC
0x6084 00 Profile Deceleration CH1 U32 RW Ye s PDC
0x6087 00 Torque Slope CH1 U32 RW Ye s TSL
0x60FF 00 Target Profile Velocity CH1 U32 RW Ye s S
0x6502 00 Supported Drive Modes CH1 U32 CONST No SDM
0x67FE 00 Version Number CH1 U32 CONST No VNM
0x6840 00 Control Word CH2 U16 RW Ye s CW
0x6841 00 Status Word CH2 U16 RO Ye s SW
0x6842 00 Target Velocity CH2 S16 RW Ye s S
0x6843 00 VL Velocity Demand CH2 S16 RO Ye s RMP
0x6844 00 VL Velocity Actual Value CH2 S16 RO Ye s F
0x6046 01 VL Velocity Min Amount CH2 U32 RW Ye s SPL
02 VL Velocity Max Amount CH2 U32 RW Ye s SPL
0x6048 01 Velocity Acceleration Delta Speed CH2 U32 RW Ye s SAC
02 Velocity Acceleration Delta Time CH2 U 16 RW Ye s SAC
0x6049 01 Velocity Deceleration Delta Speed CH2 U32 RW Ye s SDC
02 Velocity Acceleration Delta Time CH2 U 16 RW Ye s SDC
0x6860 00 Modes of Operation CH2 S8 RW Ye s ROM
CANBus Networking Manual 37
CANopen Interface
Index Sub (hex) Entry Name Type Access PDO Command
0x6861 00 Modes of Operation Display CH2 S8 RO No AOM
0x6864 00 Position Actual Value CH2 S32 RO Ye s F
0x686C 00 Velocity Actual Value CH2 S32 RO Ye s F
0x6871 00 Target Torque CH2 S16 RW Ye s TC
0x6877 00 Torque Actual Value CH2 S16 RO Ye s TRQ
0x687A 00 Target Position CH2 S32 RW Ye s POS
0x6881 00 Profile Velocity CH2 U32 RW Ye s PSP
0x6883 00 Profile Acceleration CH2 U32 RW Ye s PAC
0x6884 00 Profile Deceleration CH2 U32 RW Ye s PDC
0x6887 00 Torque Slope CH2 U32 RW Ye s TSL
0x68FF 00 Target Profile Velocity CH2 U32 RW Ye s S
0x6D02 00 Supported Drive Modes CH2 U32 CONST No SDM
0x6FFE 00 Version Number CH2 U32 CONST No VNM
0x7040 00 Control Word CH3 U16 RW Ye s CW
0x7041 00 Status Word CH3 U16 RO Ye s SW
0x7042 00 Target Velocity CH3 S16 RW Ye s S
0x7043 00 VL Velocity Demand CH3 S16 RO Ye s RMP
0x7044 00 VL Velocity Actual Value CH3 S16 RO Ye s F
0x6046 01 VL Velocity Min Amount CH3 U32 RW Ye s SPL
02 VL Velocity Max Amount CH3 U32 RW Ye s SPL
0x6048 01 Velocity Acceleration Delta Speed CH3 U32 RW Ye s SAC
02 Velocity Acceleration Delta Time CH3 U 16 RW Ye s SAC
0x6049 01 Velocity Deceleration Delta Speed CH3 U32 RW Ye s SDC
02 Velocity Acceleration Delta Time CH3 U 16 RW Ye s SDC
0x7060 00 Modes of Operation CH3 S8 RW Ye s ROM
0x7061 00 Modes of Operation Display CH3 S8 RO No AOM
0x7064 00 Position Actual Value CH3 S32 RO Ye s F
0x706C 00 Velocity Actual Value CH3 S32 RO Ye s F
0x7071 00 Target Torque CH3 S16 RW Ye s TC
0x7077 00 Torque Actual Value CH3 S16 RO Ye s TRQ
0x707A 00 Target Position CH3 S32 RW Ye s POS
0x7081 00 Profile Velocity CH3 U32 RW Ye s PSP
0x7083 00 Profile Acceleration CH3 U32 RW Ye s PAC
0x7084 00 Profile Deceleration CH3 U32 RW Ye s PDC
0x7087 00 Torque Slope CH3 U32 RW Ye s TSL
0x70FF 00 Target Profile Velocity CH3 U32 RW Ye s S
0x7502 00 Supported Drive Modes CH3 U32 CONST No SDM
0x77FE 00 Version Number CH3 U32 CONST No VNM
38 CANBus Networking Manual V2.0 July 8, 2019

SDO Construction Details

SDO Construction Details
CANOpen SDO frames can easily be created manually and used to send commands and queries to a Roboteq device. The directives below are a simplified description of the CANOpen SDO mechanism. For more details please advise the CANOpen standard.
A CANOpen command/query towards a Roboteq device can be analyzed as shown below:
Payload
Byte0
Header DLC
0x600+nd 8 css n xx index subindex data
nd is the destination node id.
ccs is the Client Command Specifier, if 2 it is command if 4 it is query.
n is the Number of bytes in the data part, which do not contain data
xx not necessary for basic operation. For more details advise CANOpen standard.
index is the object dictionary index of the data to be accessed
subindex is the subindex of the object dictionary variable
data contains the data to be uploaded.
Byte1-2 Byte 3 Bytes4-7bits 4-7 bits2-3 bits0-1
The Response from the roboteq device is as shown below:
Payload
Byte0
Header DLC
Byte1-2 Byte 3 Bytes4-7bits 4-7 bits2-3 bits0-1
0x580+nd 8 css n xx index subindex Data
nd is the source node id.
ccs is the Client Command Specifier, if 4 it is query response, 6 it is a successful
response to command, 8 is an error in message received.
n is the Number of bytes in the data part, which do not contain data
xx not necessary for the simplistic way. For more details advise CANOpen standard.
index is the object dictionary index of the data to be accessed.
subindex is the subindex of the object dictionary variable
data contains the data to be uploaded. Applicable only if css=4.

SDO Example 1: Set Encoder Counter 2 (C) of node 1 value 10

nd = 1, since the destination’s node id is 1.
ccs = 2, since it is a command.
n = 0 since all 4 bytes of the data are used (signed32).
index = 0x2003 and subindex = 0x02 according to object dictionary.
CANBus Networking Manual 39
CANopen Interface
Payload
Byte0
Header DLC
Byte1-2 Byte 3 Bytes4-7bits 4-7 bits2-3 bits0-1
0x600+1 8 2 0 0 0x2003 0x02 0x0A
601h 8 20 03 20 02 0A 00 00 00
The respective response will be:
Payload
Byte0
Header DLC
Byte1-2 Byte 3 Bytes4-7bits 4-7 bits2-3 bits0-1
0x580+1 8 6 0 0 0x2003 0x02 0x00
581h 8 60 03 20 02 00 00 00 00

SDO Example 2: Activate emergency shutdown (EX) for node 12

nd = 12, since the destination’s node id is 12.
ccs = 2, since it is a command.
n = 3 since only one byte of the data is used (unsigned8).
index = 0x200C and subindex = 0x00 according to object dictionary.
Payload
Byte0
Header DLC
0x600+12 8 2 3 0 0x200C 0x00 0x01
601Ch 8 2C 0C 20 00 01 00 00 00
Byte1-2 Byte 3 Bytes4-7bits 4-7 bits2-3 bits0-1
The respective response will be:
Payload
Byte0
Header DLC
Byte1-2 Byte 3 Bytes4-7bits 4-7 bits2-3 bits0-1
0x580+1 8 6 0 0 0x200C 0x00 0x00
58Ch 8 60 0C 20 00 00 00 00 00

SDO Example 3: Read Battery Volts (V) of node 1.

nd = 1, since the destination’s node id is 1.
ccs = 4, since it is a query.
n = 2 since 2 bytes of the data are used (unsigned16).
index = 0x210D and subindex = 0x02 according to object dictionary.
40 CANBus Networking Manual V2.0 July 8, 2019
SDO Construction Details
Payload
Byte0
Header DLC
Byte1-2 Byte 3 Bytes4-7bits 4-7 bits2-3 bits0-1
0x600+1 8 4 2 0 0x210D 0x02 0x00
601h 8 48 0D 21 02 0A 00 00 00
The respective response will be:
nd = 1, since the source node id is 1.
ccs = 4, since it is a query response.
n = 2 since 2 bytes of the data are used (unsigned16).
index = 0x210D and subindex = 0x02 according to object dictionary.
data = 0x190 = 400 = 40 Volts.
Payload
Byte0
Header DLC
Byte1-2 Byte 3 Bytes4-7bits 4-7 bits2-3 bits0-1
0x580+1 8 4 2 xx 0x210D 0x02 0x190
581h 8 48 0D 21 02 90 01 00 00
CANBus Networking Manual 41
CANopen Interface
42 CANBus Networking Manual V2.0 July 8, 2019

Abbreviations

SECTION 4
Abbreviations
C Constant
CiA CAN in Automation
FSA Finite State Automation
PDS Power Drive System
PP Profile Position Mode
PV Profile Velocity Mode
RO Read Only
RW Read Write
SDO Service Data Object
TQ Torque Mode
VL Velocity Mode
DS402 Implementation on Roboteq Motor Controllers

Introduction

This documentation will describe the implementation of CiA DS402 standard on Roboteq motor controllers.

What is DS402

DS402 is an open standard, that is designed specifically for motion control. There are a number of CANOpen SDOs with which one can control the motor by commanding the motor controller.
CANBus Networking Manual 43
CAN Networking on Roboteq Controllers
The standard describes all the required SDOs, as long as the actions the motor controller should take upon receiving these SDOs. Additionally the standard describes a Finite State Machine (FSA) which should run on motor controller.

Implementation

The implementation has been directed under standard version 4.1.0.

Index Range & Channel Selection

All the SDOs described in DS402 standard range from index 0x600 - 0x67FF. However these are only for controlling one motor channel. For multi channel controllers the control­ler should be able to accept index ranges for the other channels as well. These index rang­es are shifted ranges of the abovementioned one as shown below:
0x6000 - 0x67FF, for channel 1.
0x6800 - 0x6FFF, for channel 2.
0x7000 - 0x77FF, for channel 3.
There are Roboteq motor controllers with up to three channels available.

Modes of Operation

Roboteq Controllers support the following operation Modes:
A. Open Loop B. Closed Loop Speed, controls Speed using Speed as feedback. C. Closed Loop Speed Position, controls Speed using Position as feedback. D. Closed Loop Count Position, controls Position. E. Closed Loop Position Relative, controls Position within specific boundaries. F. Closed Loop Position Tracking, controls Position within specific boundaries, with
abrupt transition.
In order to conform the above operation modes to the operation modes described, the DS402 modes of operation supported by Roboteq are shown in Table 4-1 - Operation Table 1. Any other mode described in DS402 standard is not supported by Roboteq controllers.
TABLE 4-1. Operation Modes
Value Definition Roboteq Operation Mode
-4¹ Velocity Mode Closed Loop Speed Position
1
-3
1
-2
1
-1
0 No Mode Open Loop Mode
1 Profile Position Mode Closed Loop Count Position Mode
2 Velocity Mode Closed Loop Speed Mode
3 Profile Velocity Mode Closed Loop Speed Mode
4 Torque Profile Mode Closed Loop torque Mode
¹Roboteq Specific Modes
2
Not all Profile Position features can be supported with this mode.
Profile Velocity Mode Closed Loop Speed Position
Profile Position Mode Closed Loop Position Tracking Mode²
Profile Position Mode Closed Loop Position Relative Mode
2
44 CANBus Networking Manual V2.0 July 8, 2019

Supported SDOs

Table 4-2 shows the SDOs described in DS402 standard and supported by Roboteq Motor Controllers.
TABLE 4-2. Supported SDO
Object Description
6040
6041
6042
6043
6044
6046
6048
6049
6060
6061
6064
606C
6071
6077
607A
6081
6083
6084
6087
60FF
6502
67FE
Control Word CW
00
Status Word SW
00
Target velocity (vl) S
00
vl velocity demand RMP
00
vl velocity actual value F
00
vl velocity min max amount SPL
XX
vl velocity acceleration SAC
XX
vl velocity deceleration SDC
XX
Modes of Operation ROM
00
Modes of Operation Display AOM
00
Position actual value F
00
Velocity actual value F
00
Target torque TC
00
Torque actual value A
00
Target position POS
00
Profile velocity PSP
00
Profile acceleration PAC
00
Profile deceleration PDC
00
Torque slope TSL
00
Target velocity (pv) S
00
Supported Drive Modes SDM
00
Version Number VNM
00
Implementation
Roboteq
Command
Profile
Position Velocity
Profile
Velocity
Torque
Profile

PDS FSA

The standard requires the implementation of a specific finite state machine called FSA. The FSA is designed not only to react to CANOpen commands (Controlword and Sta­tusword), but also to local commands (in this case the use of CW command and SW query). For backward compatibility reasons, the FSA is not active by default. It can be acti­vated by using a special configuration command (^FSA 1, see Figure 4-1).
CANBus Networking Manual 45
CAN Networking on Roboteq Controllers
FIGURE 4-1. FSA Configuration
Figure 4-2 describes The states and the transitions of the finite state machine, while Table 4-3 describes the actions and the events of the transitions.
FIGURE 4-2. Power Drive System Finite State Automation
TABLE 4-3. Transition Events and Actions
Transition Event(s) Action(s)
Automatic Transition after power on or reset
0
1 Automatic transition None
2 Shutdown Command None
46 CANBus Networking Manual V2.0 July 8, 2019
application (if ^FSA 1), or when ^FSA is set from 0 to 1.
None

SDO Description

Transition Event(s) Action(s)
3 Switch On Command None
4 Enable Operation Command
5 Disable Operation Command The drive function shall be disabled
6 Shutdown Command None
7 Quick Stop or Disable Voltage Command None
8 Shutdown Command The drive function shall be disabled
9 Disable Voltage Command The drive function shall be disabled
10 Quick Stop or Disable Voltage Command None
11 Quick Stop Command Quick Stop process is initiated
12
13 Fault Signal None
14 Automatic Transition The drive function shall be disabled
15 Fault Reset Command The drive function shall be enabled
Automatic transition when the quick stop func­tion is completed
The drive function shall be enabled and all internal set-points cleared.
The drive function shall be disabled
SDO Description

0x6040 - Control Word

TABLE 4-4. Control Word
Sub-Index 00 Optional N Type U16 Access RW PDO R
Value Range Discrete Default Operation specific
RoboCommand CW
Description The received command in order to control the PDS FSA.
Table 4-4 gives a short description of the object, Table 4-5 the mapping of the respective variable and Table 4-6 the usage of the bits that are independent to operation mode.
TABLE 4-5. Control Word Mapping
15 11 10 9 8 7 6 4 3 2 1 0
R R OMS H FR OMS EO QS EV SO
MSB LSB
R Reserved, OMS Operation mode specific, H Halt, FR Fault reset, EO Enable operation QS Quick stop, EV Enable voltage, and SO Switch on
CANBus Networking Manual 47
CAN Networking on Roboteq Controllers
TABLE 4-6. Command Coding
Bits of the Control Word
Command
Shutdown 0 X 1 1 1 2,6,8
Switch On 0 0 1 1 1 3
Switch On + Enable Operation 0 1 1 1 1 3+4
Disable Voltage 0 X X 0 X 7,9,10,12
Quick Stop 0 X 0 1 X 7,10,11
Disable Operation 0 0 1 1 1 5
Enable Operation 0 1 1 1 1 4,16
Fault Reset 0->1 X X X X 15
Bits 9, 6, 5, and 4 of the ControlWord are operation mode specific. The halt function (bit
8) behavior is operation mode specific. If the bit is 1, the commanded motion shall be
interrupted, After releasing the halt function, the commanded motion shall be continued if possible, see Table 4-7.
TABLE 4-7. Halt bit (bit 8)
TransitionBit 7 Bit 3 Bit 2 Bit 1 Bit 0
Bit Value Definition
8
Profile Position Mode
TABLE 4-8. control word mapping in profile position mode
15 10 9 8 7 6 5 4 3 0
see
Table 4-4
MSB LSB
In Profile Position Mode the operation specific bits are mapped in Table 4-8. With bits 4, 5 and 9, user can define when the command for next Position (0x607A - POS) will be pro­cessed. Bit 6 defines whether the command is absolute or relative to the current position.
Table 4-9. Definition of bits 4,5,6 and 9 in profile position Mode
Bit 9 Bit 5 Bit 4 Definition
0 0 0->1
X 1 0->1 Next positioning shall be started immediately
1 0 0->1
Bit Value Definition
6
0 Positioning shall be executed or continued
Axis shall be stopped. Slow down on quick stop ramp (EDEC) and
1
stay in operation enabled
Change on
set-point
0 Target position shall be an absolute value
1
Halt
Target position shall be a relative value. Positioning moves shall be performed relative to the preceding (internal absolute) target position
see
Table 4-4
Positioning shall be completed (target reached) before the next one gets started.
Positioning with the current profile velocity up to the current set-point shall be proceeded and then next positioning shall be applied
Abs/
rel
Change Set Immediately
New Set
Point
see Table 4
48 CANBus Networking Manual V2.0 July 8, 2019
Velocity Mode
SDO Description
TABLE 4-10. control word mapping in Velocity Mode
15 9 8 7 6 5 4 3 0
see Table 4 Halt
MSB LSB
In Velocity Mode the operation specific bits are mapped on Table 4-10. With bits 4, 5 and 6, user can configure the available ramp related options as shown in Table 4-11.
TABLE 4-11. Definition of bits 4,5 and 6 in Velocity Mode
Bit Value Definition
Motor shall be halted. Slow down on quick stop ramp (EDEC) and
0
4
5
6
stay in operation enabled
1 Velocity demand value shall accord with ramp output value
0 Ramp output value shall be locked to current output value
1 Ramp output value shall follow ramp input value
0 Ramp input value shall be set to zero
1 Ramp input value shall accord with ramp reference
see
Table 4
Reference
Ramp
Unlock
Ramp
Enable
Ramp
see Table 4

0x6041 - Status Word

Table 4-12 gives a short description of the object, Table 4-13 the mapping of the respective variable and Table 4-14 the usage of the bits that are independent to operation mode.
TABLE 4-12. Status Word
Sub-Index 00 Optional N Type U16 Access RO PDO T
Value Range Discrete Default -
RoboCommand SW
Description The status of the PDS FSA.
TABLE 4-13. Status Word Mapping
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NU OMS ILA TR RM MS W SOD QS VE F OE SO RTSO
MSB LSB
NU Not Used, OMS Operation mode specific, ILA Internal limit active TR Target reached, RM Remote, W Warning, SOD Switch on disabled, QS Quick stop, VE Voltage enabled, F Fault, OE Operation Enabled, SO Switch on RTSO Ready to switch on.
If bit 4 (voltage enabled) of the status word is always 1. If bit 5 (quick stop) of the status word is 0, this shall indicate that the PDS is reacting on a quick stop request (quick stop mode is always 2). Bit 7 (warning) is always 0. Bit 9 (remote) of the status word is al­ways 1. If bit 10 (target reached) of the status word is 1, this shall indicate that the PDS has reached the set-point. Bit 10 shall also be set to 1, if the operation mode has been changed. The change of a target value by software shall alter this bit. If halt occurred and the PDS has halted then bit 10 shall be set to 1, too. If the same internal value is
CANBus Networking Manual 49
CAN Networking on Roboteq Controllers
commanded then bit 10 shall not alter, if bit 10 is supported(see Table 4-15). If bit 11 (in­ternal limit active) of the statusword is 1, this shall indicate that an current limit has been reached.
TABLE 4-14. State Coding
Status Word PDS FSA state
xxxx xxxx x0xx 0000
xxxx xxxx x1xx 0000
xxxx xxxx x01x 0001
xxxx xxxx x01x 0011
xxxx xxxx x01x 0111
xxxx xxxx x00x 0111
xxxx xxxx x0xx 1111
xxxx xxxx x0xx 1000
b
b
b
b
b
b
b
b
TABLE 4-15. Definition of bit 10
Bit Value Definition
Halt (bit 8 in controlword) = 0: Speed or Position Target not reached
0
10
Halt (bit 8 in controlword) = 1: Axis decelerates
Halt (bit 8 in controlword) = 0: Speed or Position Target reached
1
Halt (bit 8 in controlword) = 1: Velocity of axis is 0
Not ready to switch on
Switch on disabled
Ready to switch on
Switched on
Operation enabled
Quick stop active
Fault reaction active
Fault
Profile Position Mode
TABLE 4-16. Status word mapping in profile position mode
15 14 13 12 11 10 9 0
see Table 12 Not Used
MSB LSB
In Profile Position Mode the operation specific bits are mapped in Table 4-16. With bits 10 and 12 user can acknowledge the status of the controller as shown in Table 4-15 and Table 4-17. Bit 13 is always 0.
TABLE 4-17. Definition of bit 12 in Profile Position Mode
Bit Value Definition
12
Profile Velocity Mode
TABLE 4-18. Status Word Mapping in Profile Velocity Mode
15 14 13 12 11 10 9 0
see Table 12
MSB LSB
Set-Point
Acknowledge
see Table 12
Target
Reached
see Table 12
0 Previous set-point already processed, waiting for new set-point
Previous set-point still in process, set-point overwriting shall be
1
accepted
Not
Used
Speed see Table 12
Target
Reached
see Table 12
50 CANBus Networking Manual V2.0 July 8, 2019
SDO Description
In Profile Velocity Mode the operation specific bits are mapped in Table 4-18. With bits 10 and 12 user can acknowledge the status of the controller as shown in Table 4-15 and Table 4-19. Bit 13 is always 0.
TABLE 4-19. Definition of bit 12 in Profile Velocity Mode
Bit Value Definition
12
0 Speed is not equal 0
1 Speed is equal 0

0x6042 - VL Target Velocity

Table 20 gives a short description of the object.
TABLE 4-20. Target Velocity
Sub-Index 00 Optional N Type S16 Access RW PDO R
Value Range Default 0
RoboCommand S
Description This object shall indicate the required velocity of the system in RPM.
Positive values shall indicate forward direction and negative values shall indicate reverse direction.

0x6043 - VL Velocity Demand

Table 21 gives a short description of the object.
TABLE 4-21. Velocity Demand
Sub-Index 00 Optional N Type S16 Access RO PDO T
Value Range Default
RoboCommand RMP
Description This object shall provide the instantaneous velocity in RPM generated
by the ramp function. It is an internal object of the drive device. Pos­itive values shall indicate forward direction and negative values shall indicate reverse direction.

0x6044 - VL Velocity Actual Value

Table 4-22 gives a short description of the object.
TABLE 4-22. Velocity Actual Value
Sub-Index 00 Optional N Type S16 Access RO PDO T
Value Range Default
RoboCommand RMP
Description This object shall provide the velocity in RPM at the motor spindle
or load. Depending on the implementation (simple drive device, without sensor, with sensor, etc.), the drive shall provide the ap­propriate image of the actual velocity derived for example from velocity demand or a sensor signal.
CANBus Networking Manual 51
CAN Networking on Roboteq Controllers

0x6046 - VL Velocity Min Max Amount

Table 4-23 gives a short description of the object.
TABLE 4-23. Velocity Min Max Amount
Sub-Index 01 Optional N Type U32 Access RW PDO R
Value Range Default 0
RoboCommand SPL
Description VL velocity min amount.
Sub-Index 02 Optional N Type U32 Access RW PDO R
Value Range Default 1000
RoboCommand SPL
Description VL velocity max amount.
Figure 4-3. Velocity Min Max Amount
This object shall indicate the configured minimum and maximum amount of velocity in RPM. The vl velocity max amount sub-object shall be mapped internally to the vl velocity max positive and vl velocity max negative values. The vl velocity min amount sub-object shall be mapped internally to the vl velocity min positive and vl velocity min negative val­ues. as shown Figure 4-3.

0x6048 - VL Velocity Acceleration

Table 4-24 gives a short description of the object.
TABLE 4-24. Velocity Acceleration
Sub-Index 01 Optional N Type U32 Access RW PDO R
Value Range Default MAC(20000)
RoboCommand SAC
Description Delta speed in RPM*10.
Sub-Index 02 Optional N Type U16 Access RW PDO R
Value Range Default 1
RoboCommand SAC
Description Delta time in seconds.
52 CANBus Networking Manual V2.0 July 8, 2019
SDO Description

0x6049 - VL Velocity Deceleration

Table 4-25 gives a short description of the object.
TABLE 4-25. Velocity Deceleration
Sub-Index 01 Optional N Type U32 Access RW PDO R
Value Range Default MDEC(20000)
RoboCommand SDC
Description Delta speed in RPM*10.
Sub-Index 02 Optional N Type U16 Access RW PDO R
Value Range Default 1
RoboCommand SDC
Description Delta time in seconds.

0x6060 - Modes of Operation

Table 4-22 gives a short description of the object and Table 1shows the available modes.
TABLE 4-26. Modes of Operation
Sub-Index 00 Optional CND Type S8 Access RW PDO R
Value Range Default MMOD(0)
RoboCommand ROM
Description The requested operation mode.

0x6061 - Modes of Operation Display

Table 4-27 gives a short description of the object and Table 1 shows the available modes.
TABLE 4-27. Modes of Operation Display
Sub-Index 00 Optional CND Type S8 Access RO PDO
Value Range Default MMOD(0)
RoboCommand AOM
Description The actual operation mode.

0x6064 - Position Actual Value (PP)

Table 4-28 gives a short description of the object.
TABLE 4-28. Position Actual Value
Sub-Index 00 Optional CND Type S32 Access RO PDO T
Value Range Default
RoboCommand F
Description This object shall provide the actual value of the position measure-
ment device.
The position unit are in sensor counts in Closed Loop Count Position mode. In Closed Loop Position Relative mode and in Closed Loop Tracking Position mode the position unit is in range -1000 to 1000 scaled by the minimum and maximum sensor value.
CANBus Networking Manual 53
CAN Networking on Roboteq Controllers

0x606C - Velocity Actual Value (PV)

Table 4-29 gives a short description of the object.
TABLE 4-29. Velocity Actual Value
Sub-Index 00 Optional CND Type S32 Access RO PDO T
Value Range Default
RoboCommand F
Description This object shall provide the actual velocity value, in RPM, derived
either from the velocity sensor or the position sensor.

0x6071 - Target Torque (TQ)

Table 4-30 gives a short description of the object.
TABLE 4-30. Target Torque
Sub-Index 00 Optional CND Type S 16 Access RW PDO R
Value Range Default 0
RoboCommand TC
Description This object shall indicate the configured input value, in Nm*100, for
the torque controller in profile torque mode.

0x6077 - Torque Actual Value (TQ)

Table 4-31 gives a short description of the object.
TABLE 4-31. Torque Actual Value
Sub-Index 00 Optional CND Type S16 Access RO PDO T
Value Range Default
RoboCommand TRQ
Description This object shall provide the actual value of the torque, in Nm*100. It
shall correspond to the instantaneous torque in the motor.

0x607A - Target Position (PP)

Table 4-32 gives a short description of the object.
TABLE 4-32. Target Position
Sub-Index 00 Optional CND Type S32 Access RW PDO R
Value Range Default 0
RoboCommand POS
Description The commanded position that the drive should move to in position
profile mode using the current settings of motion control parameters such as velocity, acceleration, deceleration, motion profile type etc. The value of this object shall be interpreted as absolute or relative de­pending on the abs/rel flag in the ControlWord.
The position unit are in sensor counts in Closed Loop Count Position mode. In Closed Loop Position Relative mode and in Closed Loop Tracking Position mode the position unit is in range -1000 to 1000 scaled by the minimum and maximum sensor value.
54 CANBus Networking Manual V2.0 July 8, 2019
SDO Description
0x6081 - Profile Velocity (PP)
Table 4-33 gives a short description of the object.
TABLE 4-33. Profile Velocity
Sub-Index 00 Optional CND Type U32 Access RW PDO R
Value Range Default MVEL(1000)
RoboCommand PSP
Description This object shall indicate the configured velocity, in RPM, normally
attained at the end of the acceleration ramp during a profiled motion and shall be valid for both directions of motion.
0x6083 - Profile Acceleration (PP)
Table 4-34 gives a short description of the object.
TABLE 4-34. Profile Acceleration
Sub-Index 00 Optional CND Type U32 Access RW PDO R
Value Range Default MAC(20000)
RoboCommand PAC
Description This object shall indicate the configured acceleration, in (RPM*10)/
second.
0x6084 - Profile Deceleration (PP)
Table 4-35 gives a short description of the object.
TABLE 4-35. Profile Deceleration
Sub-Index 00 Optional Y Type U32 Access RW PDO R
Value Range Default MDEC(20000)
RoboCommand PAC
Description This object shall indicate the configured deceleration, in (RPM*10)/
second.

0x6087 - Torque Slope (TQ)

Table 4-36 gives a short description of the object.
TABLE 4-36. Profile Deceleration
Sub-Index 00 Optional CND Type U32 Access RW PDO R
Value Range Default MAC(20000)*
RoboCommand TSL
Description This object shall indicate the configured rate of change of torque,
in (miliNm*10)/second.
*As long as the Torque Constant (TNM) is 1000 miliNm/A.
CANBus Networking Manual 55
CAN Networking on Roboteq Controllers

0x60FF - Target Velocity (PV)

Table 4-37 gives a short description of the object.
TABLE 4-37. Target Velocity
Sub-Index 00 Optional CND Type U32 Access RW PDO R
Value Range Default 0
RoboCommand S
Description This object shall indicate the configured target velocity, in RPM, and
shall be used as input for the trajectory generator.

0x6502 - Supported Drive Modes

Table 4-38 gives a short description of the object.
TABLE 4-38. Supported Drive Modes
Sub-Index 00 Optional REQ Type U32 Access C PDO N
Value Range Default 0x0000000F
RoboCommand SDM
Description The supported drive modes.
Roboteq Controllers support:
Profile Position Mode (PP).
Velocity Mode (VL).
Profile Velocity Mode (PV).
Torque Mode (TQ).

0x67FE - Version Number

Table 4-39 gives a short description of the object.
TABLE 4-39. Version Number
Sub-Index 00 Optional REQ Type U32 Access C PDO N
Value Range Default 0x00040100
RoboCommand VNM
Description This object shall provide the version number of the CiA 402 profile,

References

. CiA® 402 Draft Standard Proposal, v4.1.0, https://www.can-cia.org/can-knowledge/
1
canopen/cia402/
which is implemented in the device.
56 CANBus Networking Manual V2.0 July 8, 2019
Loading...