Class 5 CANopen Guide
Class 5 CANopen Guide
Class 5 CANopen Guide
Class 5 SmartMotor
Technology with
TM
Copyright Notice
2013-2016, Moog Inc., Animatics.
Moog Animatics Class 5 SmartMotor CANopen Guide, Rev. E, PN:SC80100001-001.
This manual, as well as the software described in it, is furnished under license and may be
used or copied only in accordance with the terms of such license. The content of this manual is
furnished for informational use only, is subject to change without notice and should not be construed as a commitment by Moog Inc., Animatics. Moog Inc., Animatics assumes no responsibility or liability for any errors or inaccuracies that may appear herein.
Except as permitted by such license, no part of this publication may be reproduced, stored in a
retrieval system or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Moog Inc., Animatics.
The programs and code samples in this manual are provided for example purposes only. It is
the user's responsibility to decide if a particular code sample or program applies to the application being developed and to adjust the values to fit that application.
Moog Animatics and the Moog Animatics logo, SmartMotor and the SmartMotor logo, Combitronic and the Combitronic logo are all trademarks of Moog Inc., Animatics. CiA and
CANopen are registered community trademarks of CAN in Automation e.V. Other trademarks
are the property of their respective owners.
Please let us know if you find any errors or omissions in this manual so that we can improve it
for future readers. Such notifications should contain the words "CANopen Guide" in the subject
line and be sent by e-mail to: [email protected]. Thank you in advance for
your contribution.
Contact Us:
Moog Inc., Animatics
1421 McCarthy Boulevard
Milpitas, CA 95035
USA
Tel: 1 (408) 965-3320
Fax: 1 (408) 965-3319
Support: 1 (888) 356-0357
www.animatics.com
Table of Contents
Introduction
11
Purpose
12
Combitronic Technology
12
12
13
Abbreviations
15
Safety Information
16
Safety Symbols
16
16
18
Additional Documents
19
Additional Resources
20
CANopen Overview
21
CANopen Description
22
22
CANopen
22
23
SDO
23
PDO
24
COB-ID Allocation
25
NMT States
27
NMT Control
28
NMT Summary
28
29
PDOCommunications
29
Peer-to-Peer Communications
29
Synchronous Communications
30
Supported Features
31
Supported
32
Motion Modes
32
32
33
33
PDOTransmit on Sync
33
Dynamic PDOMapping
33
Heartbeat Producer
33
Sync Producer
33
Not Supported
34
Emergency Messages
34
Saving Parameters
34
Heartbeat Consumer
34
MPDO Communications
34
34
34
Node Guarding
34
TIME Service
34
Sync Start
34
35
36
36
37
Cable Diagram
38
38
Bus Termination
38
39
Status LEDs
40
41
Manufacturer-Specific Objects
43
I/O
44
User Variables
44
Calling Subroutines
46
47
Command Interface
47
Program Upload/Download
48
49
50
50
51
52
Motion Profiles
53
Position Mode
53
Velocity Mode
57
Torque Mode
59
61
Homing Mode
67
PDO Mapping
71
Overview
72
73
74
75
Mapping Entries
75
Mapping Procedure
76
76
78
79
80
CADDR=frm
80
CBAUD=frm
80
80
=CAN, RCAN
80
RB(2,4), x=B(2,4)
84
84
CANCTL(action, value)
84
NMT
86
SDORD
86
SDOWR
87
87
Troubleshooting
89
Object Reference
93
Object Categories
97
Communication Profile
98
100
101
102
104
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
Manufacturer-Specific Profile
133
135
136
137
138
139
140
141
142
143
144
145
146
147
148
150
151
152
153
154
155
156
157
158
159
160
169
170
171
172
173
174
175
176
177
178
179
180
182
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
203
204
205
206
207
208
209
210
213
214
215
216
217
219
220
221
223
224
226
228
229
230
231
Reference Documents
232
Introduction
Introduction
This chapter provides information on the purpose and scope of this manual. It also provides
information on safety notation, related documents and additional resources.
Purpose
12
Combitronic Technology
12
12
13
Abbreviations
15
Safety Information
16
Safety Symbols
16
16
18
Additional Documents
19
Additional Resources
20
Purpose
Purpose
This manual explains the Moog Animatics Class 5 SmartMotor support for the CANopen protocol. It describes the major concepts that must be understood to integrate a SmartMotor
slave with a PLC or other CANopen master. However, it does not cover all the low-level details
of the CANopen protocol.
NOTE: The feature set described in this version of the manual refers to motor firmware 5.x.4.30 or later.
This manual is intended for programmers or system developers who have read and understand the CiA 402 CANopen specification. Therefore, this manual is not a tutorial on that specification or the CANopen protocol. Instead, it should be used to understand the specific
implementation details for the Moog Animatics SmartMotor. Additionally, examples are
provided for the various modes of motion and accessing those modes through CANopen to
operate the SmartMotor.
The Object Reference chapter of this manual includes details about the specific objects available in the SmartMotor through CANopen. The objects include those required by CANopen, the
CiA 402 motion profile, and manufacturer-specific objects added by Moog Animatics. For
details, see Object Reference on page 93.
Combitronic Technology
The most unique feature of the SmartMotor is its ability to communicate with other SmartMotors and share resources using Moog Animatics Combitronic technology. Combitronic is a
protocol that operates over a standard CAN interface. It may coexist with either CANopen or
DeviceNet protocols. It requires no single dedicated master to operate. Each SmartMotor connected to the same network communicates on an equal footing, sharing all information, and
therefore, sharing all processing resources.
For additional details, see the SmartMotor Developer's Guide.
Dynamically map SmartMotor PDOs, map another device's PDOs, start the NMTstate
Read/write SDOs in expedited mode only, which works for up to 32-bit data
Motor to Motor
Be sure to follow proper guidelines for CAN bus cabling and termination.
1005h: Specifies the COB-ID used for the Synchronization object (transmit or receive).
1006h: Defines the communication cycle period in microseconds for transmission of the
sync message.
2207h: Defines the encoder modulo limit in units of encoder counts.
2208h: Accepts data from a network (CANopen) based encoder. Three different data
sizes are provided to handle PDO mapping to data sources of 8, 16, and 32 bits.
2209h: Defines the encoder control for the mode of following a network encoder.
220Ah: Specifies the multiplier for external encoder mode follow with ratio
MFMUL/MFDIV.
220Bh: Specifies the divisor for external encoder mode follow with ratio MFMUL/MFDIV.
220Ch: Sets the ascend ramp to the specified sync ratio from a ratio of zero.
220Dh: Sets the descend ramp from the specified sync ratio to a ratio of zero.
For details on these objects, refer to the corresponding object descriptions in the Object Reference chapter of this guide.
For a detailed description of motor following, electronic gearing and camming operations,
refer to the SmartMotor Developer's Guide.
For an example PDOmapping and application start up sequence, see Time Sync Motors Mapping Procedure on page 76. This is based on an external PLC/master.
An example user program is shown in the SmartMotor Developer's Guide, Part 3: Examples.
This is based on a SmartMotor acting as the CANopen master.
Abbreviations
Abbreviations
The following table provides a list of abbreviations used in this manual and their descriptions.
Abbreviation
Description
ACK
Acknowledgment
ADU
Acceleration/Deceleration Units
CiA
CAN in Automation
COB
Communication Object
COB-ID
CSP
CST
CSV
DC
Direct Current
FSA
HM
Homing (mode)
IN
Input
INIT
Initialization (state)
NMT
OP
Operational (state)
OUT
Output
PDO
PDS
PDS FSA
PP
PREOP
Pre-Operational (state)
PU
Position Units
PV
RxPDO
Receive PDO
SDO
SMI
TQ
Torque (mode)
TxPDO
Transmit PDO
VU
Velocity Units
Safety Information
Safety Information
This section describes the safety symbols and other safety information.
Safety Symbols
The manual may use one or more of the following safety symbols:
WARNING: This symbol indicates a potentially non-lethal mechanical hazard,
where failure to follow the instructions could result in serious injury to the
operator or major damage to the equipment.
CAUTION: This symbol indicates a potential minor hazard, where failure to follow the instructions could result in slight injury to the operator or minor damage to the equipment.
Motor Sizing
It is the responsibility of the machine/system designer to select SmartMotors that are properly sized for the specific application. Undersized motors may: perform poorly, cause excessive downtime or cause unsafe operating conditions by not being able to handle the loads
placed on them. The Moog Animatics Product Catalog, which is available on the Moog Animatics website, contains information and equations that can be used for selecting the appropriate motor for the application.
Replacement motors must have the same specifications and firmware version used in the
approved and validated system. Specification changes or firmware upgrades require the
approval of the system designer and may require another Risk Assessment.
Environmental Considerations
It is the responsibility of the machine/system designer to evaluate the intended operating
environment for dust, high-humidity or presence of water (for example, a food-processing
environment that requires water or steam wash down of equipment), corrosives or chemicals
Machine Safety
In order to protect personnel from any safety hazards in the machine or system, the
machine/system builder must perform a "Risk Assessment", which is often based on the ISO
13849 standard. The design/implementation of barriers, emergency stop (E-stop) mechanisms and other safeguards will be driven by the Risk Assessment and the safety standards
specified by the governing authority (for example, ISO, OSHA, UL, etc.) for the locale where
the machine is being installed and operated. The methodology and details of such an assessment are beyond the scope of this manual. However, there are various sources of Risk Assessment information available in print and on the internet.
NOTE: The following list is an example of items that would be evaluated when performing the Risk Assessment. Additional items may be required. The safeguards
must ensure the safety of all personnel who may come in contact with or be in the
vicinity of the machine.
In general, the machine/system safeguards must:
l
Provide a barrier to prevent unauthorized entry or access to the machine or system. The
barrier must be designed so that personnel cannot reach into any identified danger
zones.
Position the control panel so that it is outside the barrier area but located for an unrestricted view of the moving mechanism. The control panel must include an E-stop mechanism. Buttons that start the machine must be protected from accidental activation.
Provide E-stop mechanisms located at the control panel and at other points around the
perimeter of the barrier that will stop all machine movement when tripped.
Provide appropriate sensors and interlocks on gates or other points of entry into the protected zone that will stop all machine movement when tripped.
Ensure that if a portable control/programming device is supplied (for example, a handheld operator/programmer pendant), the device is equipped with an E-stop mechanism.
NOTE: A portable operation/programming device requires many additional
system design considerations and safeguards beyond those listed in this section. For details, see the safety standards specified by the governing authority (for example, ISO, OSHA, UL, etc.) for the locale where the machine is
being installed and operated.
Prevent contact with moving mechanisms (for example, arms, gears, belts, pulleys,
tooling, etc.).
Prevent contact with a part that is thrown from the machine tooling or other part-handling equipment.
Prevent contact with any electrical, hydraulic, pneumatic, thermal, chemical or other
hazards that may be present at the machine.
Prevent unauthorized access to wiring and power-supply cabinets, electrical boxes, etc.
Provide a proper control system, program logic and error checking to ensure the safety
of all personnel and equipment (for example, to prevent a run-away condition). The control system must be designed so that it does not automatically restart the machine/system after a power failure.
Prevent unauthorized access or changes to the control system or software.
All operators, maintenance technicians, programmers and other personnel are tested
and qualified before acquiring access to the machine or system.
The above personnel perform their assigned functions in a responsible and safe manner
to comply with the procedures in the supplied documentation and the company safety
practices.
The equipment is maintained as described in the documentation and training supplied by
the machine/system designer.
Additional Documents
Additional Documents
The Moog Animatics website contains additional documents that are related to the information
in this manual. Please refer to the following list:
l
SmartMotor ULCertification
http://www.animatics.com/download/MA_UL_online_listing.pdf
Additional Resources
Additional Resources
The Moog Animatics website contains additional resources such as product information, documentation, product support and more. Please refer to the following addresses:
l
Product information:
http://www.animatics.com/products.html
Product support (Downloads, How To videos, Forums, Knowledge Base, and FAQs):
http://www.animatics.com/support.html
CANopen Overview
CANopen Overview
This chapter provides an overview of the CANopen communications protocol implementation
on the Moog Animatics SmartMotor.
CANopen Description
22
22
CANopen
22
23
SDO
23
PDO
24
COB-ID Allocation
25
NMT States
27
NMT Control
28
NMT Summary
28
29
PDOCommunications
29
Peer-to-Peer Communications
29
Synchronous Communications
30
CANopen Description
CANopen Description
CANopen is a standard that allows industrial devices to communicate over the CAN bus (the
CAN bus alone does not provide enough functionality for most industrial applications).
The terms CANopen, CAN and CAN bus are often used interchangeably in technical conversations, but they are not the same. Therefore, it is important to understand their differences, which are described in the next two sections.
CANopen
CANopen builds onto the basic CAN bus functionality. It also defines events driven by timers
and synchronization signals.
An address is assigned to each device on the network. This address allows a client-server relationship to be established from a master to each device (SDO, NMT, etc.). This relationship
allows device configuration at startup so that process-specific data can be exchanged later
through PDO communications.
All data in a device is organized into a common list of available objects. This is called the
"object library" or "object dictionary". It allows the master to obtain some basic information
directly from the device such as range limits and descriptions.
Electronic Data Sheet (EDS) files provide details to PLCs and system integrators that describe
this organization:
l
SMARTMOTOR
OBJECT DICTIONARY
Communications
Objects
Baud Rate
SmartMotor Motion
and Motor Control
Etc.
F
i
e
l
d
b
u
s
SDO
CiA402 Motion
Objects
Velocity
Position
Etc.
SmartMotor User
Program
PDO
SmartMotor-Specific
Objects
I/O
SmartMotor I/O
Command Interface
Etc.
SDO
A Service Data Object (SDO) communication is intended for initial setup and occasional access
to objects that are seldom needed. Also, some CANopen masters may use SDO communications if they don't intend to configure any PDO communications.
l
SDO communications have more overhead per communication due to the following reasons:
l
The full object and sub-index value are encoded in each SDO communication. This
allows easy access to any object, but it limits the amount of payload space available for
data in each packet.
PDO
l
SDO communications also expect a response from the slave back to the master. Both
read and write operations confirm by either sending the requested data (read) or confirming that a command was received (write).
SDO communications have the ability to send lengthy amounts of data. For example, string
data types are best sent through SDO. In these cases, the data is split up and sent using several CAN bus packets. The recipient of the data will reassemble the CAN bus packets and process the object normally.
PDO
A Process Data Object (PDO) communication allows for minimal overhead when transmitting
frequently-used data. Typically, this is used for information that is critical to an ongoing process, which could include the speed, position, control word, etc.
The PDO communication does not specifically encode the object and sub-object information in
each packet. This information is agreed on between the master and the slave before entering
the Operational state. For further information, see PDO Mapping on page 71.
The following is a list of considerations for using and configuring PDO communication.
l
Not all objects are suitable for access through PDO communication. Therefore, many
objects are disabled from PDO access.
Some objects may be overwhelmed if they are only intended to be called intentionally.
For example, object 2500h should only be written to occasionally and the response must
be examined by the host.
Data types that are too large to fit in a PDO communication will not work.
PDO communications do not give a response when received. This makes each transaction more efficient but also does not provide feedback (for example, if a value is out
of range).
COB-ID Allocation
l
To facilitate user programs in the SmartMotor, the arrival of PDOs are indicated by a
status bit in Status Word 10, see Object 2304h: Motor Status on page 160. This feature
allows user programs to handle the arrival of data as an event. The user program
should clear these status bits with a Z(10,bit) command, where bit is values 15, after
the event handler part of the user program is executed, for example:
WHILE 1
IF B(10,1)==1
Z(10,1) ' Clear event
PRINT("Rx PDO 1",#13)
ENDIF
IF B(10,2)==1
Z(10,2) ' Clear event
PRINT("Rx PDO 2",#13)
ENDIF
IF B(10,3)==1
Z(10,3) ' Clear event
PRINT("Rx PDO 3",#13)
ENDIF
IF B(10,4)==1
Z(10,4) ' Clear event
PRINT("Rx PDO 4",#13)
ENDIF
IF B(10,5)==1
Z(10,5) ' Clear event
PRINT("Rx PDO 5",#13)
ENDIF
LOOP
END
flag
flag
flag
flag
flag
NOTE: Status Word 10, bit 0 cannot be clearedit is an indication of the master status, see Network Control Commands on page 84. Also, the ZS command will have no effect on these bits.
For more details on the B, Z and ZS commands, see the SmartMotor Developer's Guide.
COB-ID Allocation
A Communication Object Identifier (COB-ID) is the unique identifier assigned to a CAN packet.
CAN packets do not have a specific destination or source identifier. The sender of a packet,
whether a master or slave, will attach an identifier depending on the purpose of the packet. In
many cases, the COB-ID is a combination of the node ID and a function code. In other cases,
the COB-ID is assigned to a special purpose and does not specifically include a node ID. Many
COB-IDs are permanently assigned or reserved.
For example, the SDO communication channel between the master and a particular motor has
a COB-ID for master-to-slave packets, and another COB-ID for slave-to-master packets.
l
While it is possible to reassign many COB-IDs, it is not recommended. The "default connection
set" is a common way to assign these COB-IDs to a particular function and is adequate (and
recommended) for most purposes. Typically, the term "default connection set" is used to
COB-ID Allocation
describe a scheme where receive and transmit PDO numbers 1 through 4 are allocated sequentially for the 127 nodes.
NOTE: While recommended, it is not a requirement to follow the default connection
set.
The sync packet is an example where the node ID is not relevant to the COB-ID. In other
words, it is a COB-ID that is not constructed from the node ID of the slave (in contrast with
the SDOcommunications, described above, where the node ID is included as part of the COBID). The sync packet provides a network pulse that is used by the master and all nodes to
coordinate activity. The sync producer simply sends the COB-ID of the sync packet, and its
own node ID is not part of the sync's COB-ID.
The only recommended exception to using the default connection set is in the assignment of
COB-IDs to PDOs. Note that when configuring PDO communications, there are some choices to
make in the assignment of COB-IDs to specific PDOs. There are enough available COB-IDs to
assign at least eight to each of 127 nodes. The following are some typical reasons why a network may require a change to the default assignment of COB-IDs to PDOs:
1. If a device needs PDOs other than PDO numbers 1 through 4, then the higher-numbered
PDOs must be assigned COB-IDs. For instance, the SmartMotor has a PDO number of 5.
However, the default connection set does not provide enough COB-IDs for PDO numbers
above 4.
2. By carefully assigning COB-IDs to PDOs, it is possible to have the transmit PDO of one
motor be received by other motors. This is accomplished by assigning the same COB-ID
to one transmitting motor and one or more receiving motors. This does not follow the
default connection set because a COB-ID that would typically be a transmit PDO fills the
receiving role in other motors.
3. Lower-numbered COB-IDs have a higher priority in the event of network congestion. It
may be important for an application to assign COB-IDs to a particular PDO on a particular node that are lower than those provided by the default connection set.
The following table shows the assigned COB-ID ranges.
COB-ID
Decimal
Hex
Description
NMT control
Reserved
128
80
Sync event
129255
81FF
Emergency
256
100
Timestamp
257384
101180
Reserved
3851407
18157F
14091535
5815FF
15371663
60167F
1760
6E0
17931919
70177F
20202047
7807FF
Reserved
2047
7FF
Reserved
NMT States
The following table shows the default connection set for PDO communications based on the
CANopen standards.
NOTE: These are recommendations, but they do not need to be strictly followed.
COB-ID
Decimal
Hex
Description
385511
1811FF
513639
20127F
641767
2812FF
769895
30137F
8971023
3813FF
10251151
40147F
11531279
4814FF
12811407
50157F
NMT States
The network management state (NMT) is used to control the general communication functions
in the CANopen devices on the network.
The primary states that are used are Pre-Operational and Operational; there are also the Initialization and Stopped states:
l
Pre-Operational state allows SDO read/writes to the motor but prevents PDO communications.
Initialization state starts up the SmartMotor and sets the internal parameters.
The Initialization state is typically not of concern because the motor will automatically transition to the Pre-Operational state. During this transition, the motor will send a startup message. This startup message uses the same COB-ID as a heartbeat message, but it is a
one-time event with a data value of 0.
It is also possible to restart the network stack of the motor or to reboot the motor entirely
through the NMT control. These are considered initialization states that will return to the
Pre-Operational state automatically.
The Stopped state can be used to block commands except the NMT command itself. This
means that SDO and PDO access to objects ceases to function. The SYNC, TIME, and EMCY services are also stopped for devices that support these services.
If the heartbeat function of the motor is activated, then the motor will report the current NMT
state with each heartbeat message.
NMT Control
NMT Control
The current NMT state is set when the NMT master sends a special packet with a COB-ID of 0.
This packet contains two individual bytes of data: the first byte indicates the commanded
state that the addressed devices will switch to; the second byte addresses the nodes, either
globally or individually.
Byte 1 Value
Byte 1 Command
80h
Go to Pre-Operational state
01h
Go to Operational state
02h
Go to Stopped state
82h
81h
Byte 2 Value
0h
017Fh
NMT Summary
The following table provides a summary of the NMTstates. Also, see the NMTState Machine
diagram in the next section. The SmartMotor =CAN and RCAN commands can be used to
assign/report the value of the NMT state, control word (object 6040h) and status word (object
6041h). For details, see =CAN, RCAN on page 80.
NMT State
Reported
SDO func- PDO func- Automatically
Value
tional
tional
transitions to:
(heartbeat)
Effect
Initialization
(power up)
N/A
No
No
Pre-Operational
Sends startup
message
Initialization
(Reset communication)
N/A
No
No
Pre-Operational
Clears objects in
the 1xxxh range
Initialization
(Reset Application)
N/A
Pre-Operational
127
Yes
No
Operational
Yes
Yes
Stopped
No
No
Sends startup
message
No
No
Pre-Operational
Reboots the
SmartMotor
Sends startup
message
Initialization State
Startup ID
(Boot-up Message)
Pre-Operational
State
Stopped State
Operational State
NMTState Machine
For more details on CANopen network management, see the CAN in Automation (CiA) website
at:
http://www.can-cia.org/index.php?id=155
PDOCommunications
There are two methods of PDO communications: peer-to-peer (versus master-to-slave), and
synchronous (versus asynchronous). These communication methods are described in the following sections. Note that these communications methods are not mutually exclusive. For
example, peer-to-peer means that motor 1 and send a PDO and motor 2 can receive that
same PDO. This can be done through either of the following methods:
l
Peer-to-Peer Communications
An advantage to the peer-to-peer method of PDO communication is that any node can be a
recipient of any PDO. This allows for data to flow peer-to-peer rather than always going to the
master. It also allows for broadcasting to multiple nodes (for example, there may be an I/O
input device on the CANopen network that all devices wish to monitor for a button press).
The CANopen master must configure this peer-to-peer relationship. However, once it is configured and the network is in the Operational state, the process will continue without constant
intervention from the master.
To establish a peer-to-peer relationship, one node will transmit a data object using a particular COB-ID. Any device that wishes to receive this information should allocate this COB-ID
Synchronous Communications
to a receive PDO and map that PDO to the desired object to accept the data. For details about
how PDOs are mapped, see PDO Mapping on page 71 and COB-ID Allocation on page 25.
Synchronous Communications
PDOs may be configured to transmit from a node's own internal timer, or they may be transmitted based on the sync event on the network. The sync event is simply a special CAN frame
produced by the node or master that is assigned as the sync producer. PDO Mapping on page
71 describes the details for configuring these two modes of PDO transmission.
When the sync method is chosen, it is possible to transmit on every sync message, or to subdivide the transmission rate by up to 240. In other words, transmission can be set to occur on
every sync, every other sync, every third sync, and so on... up to every 240th sync.
Supported Features
Supported Features
This chapter provides information on the supported and unsupported features of the CANopen
specification.
Supported
32
Motion Modes
32
32
33
33
PDOTransmit on Sync
33
Dynamic PDOMapping
33
Heartbeat Producer
33
Sync Producer
33
Not Supported
34
Emergency Messages
34
Saving Parameters
34
Heartbeat Consumer
34
MPDO Communications
34
34
34
Node Guarding
34
TIME Service
34
Sync Start
34
Supported
Supported
This section describes the CANopen features that are supported by the SmartMotor.
Motion Modes
The following motion modes are supported:
l
Profile Position (PP, CANopen mode of operation:1) behaves like the SmartMotor MP
mode; supports "single setpoint" and "set of setpoints" modes
Profile Velocity (PV, CANopen mode of operation:3) behaves like the SmartMotor MV
mode
Interpolation (IP, CANopen mode of operation:7) behaves like the SmartMotor MD
mode
Torque (TQ, CANopen mode of operation:4) behaves like the SmartMotor MTmode
Homing: only methods 1, 2, 17, 18, 33, 34 and 35 are supportedall others are not supported; homing offset, homing speeds and homing acceleration are supported
Follow with Ratio (electronic gearing) & Cam (electronic camming): Allows one or more
SmartMotors to receive data from an encoder on the CANopen bus, and then rotate at a
specific ratio relative to the input encoder. Includes objects to support gearing over
CANopen, such as MFMUL, MFDIV, MFA and MFD, and to select follow or cam modes of
operation. Related objects are: 2207h, 2208h, 2209h, and 220Ah-220Dh.
The SupportedDrive Modes object (6502h) is used to report the modes of operation that are
available. The Modes of Operation object (6060h) is used to request the desired mode of operation before setting the Control Word object (6040h).
NMT control
Related objects are: 2220h, 2221h and 2204h. For details, see Object Reference on page 93.
Related commands are: NMT, SDORD, SDOWR, CANCTL, and B/RB. For details, see the
descriptions in this guide and in the SmartMotor Developer's Guide.
Example user programs are shown in the SmartMotor Developer's Guide, Part 3: Examples.
The transmission type is set using sub-index 2 of objects 1800h, 1801h, 1802h, 1803h
and 1804h.
The transmission timer is set using sub-index 5 of objects 1800h, 1801h, 1802h, 1803h
and 1804h.
The transmission type is set using sub-index 2 of objects 1800h, 1801h, 1802h, 1803h
and 1804h.
The transmission timer is set using sub-index 5 of objects 1800h, 1801h, 1802h, 1803h
and 1804h.
PDOTransmit on Sync
Transmit PDOs can be configured to transmit in response to a sync packet. Transmit types 1240 in the transmission type setting are used to configure this. The value of the transmission
type controls how often the transmit PDO is sent in response to a sync (e.g., transmit type = 1
is sent in every sync packet; transmit type = 240 is sent in every 240th sync packet).
The transmission type is set using sub-index 2 of objects 1800h, 1801h, 1802h, 1803 and
1804h.
Dynamic PDOMapping
There are objects used to simultaneously configure (map) up to five Receive PDOs and five
Transmit PDOs. These mappings are dynamic any object with "PDO mappable" in its description can be mapped to a PDO through the standard CANopen mapping procedure.
Dynamic mapping of objects to PDO is configured using objects 1600h, 1601h, 1602h, 1603h,
1604h, 1A00h, 1A01h, 1A02, 1A03h and 1A04h. For details, see PDO Mapping on page 71.
Heartbeat Producer
The motor can be configured to transmit a heartbeat at a configurable rate. For details, see
Object 1017h: Producer Heartbeat Time on page 110.
Sync Producer
The SmartMotor can produce sync messages. This requires setting the Communication Cycle
Period object (1006h) and the COB-ID SYNC object (1005h). There is a specific order to configuring these objects, and object 1005h requires an additional bit setting. Therefore, it is
important to review the descriptions of both objects. For details, see Object 1005h: COB-ID
SYNC on page 102 and Object 1006h: Communication Cycle Period on page 104.
Not Supported
Not Supported
This section describes the CANopen features that are not supported by the SmartMotor.
Emergency Messages
Emergency (EMCY) object messages are not produced or consumed by the SmartMotor. The
associated objects, 1014h and 1015h, do not exist.
Saving Parameters
The SmartMotor does not support parameter data saving. Objects 1010h and 1011h are not
implemented.
Heartbeat Consumer
The SmartMotor does not consume heartbeat messages. Therefore, it will not take action on
the presence or absence of any heartbeat messages. However, the SmartMotor can be a heartbeat producer. For details, see Object 1017h: Producer Heartbeat Time on page 110.
MPDO Communications
The SmartMotor does not support the multiplexed-PDO (MPDO) method of communication.
Ordinary transmit and receive PDOs are supported.
Node Guarding
Node Guarding is not supported.
TIME Service
TIME service is not supported.
Sync Start
Sync Start value is not present or supported. This refers specifically to sub-index 6 of the
Transmit PDO Communication Parameter objects1800h1804h.
36
36
37
Cable Diagram
38
38
Bus Termination
38
39
Status LEDs
40
41
PIN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DESCRIPTION
I/O-0
I/O-1
I/O-2
I/O-3
I/O-4
I/O-5
I/O-6
Encoder A Out
Encoder B Out
RS-232 Transmit
RS-232 Receive
+5VDC Out
Ground
Power Ground
Power
15 14 13 12 11 10 9
Trajectory LED
PIN
A1
A2
1
2
3
4
5
DESCRIPTION
+20V to +48V DC
Power Ground
I/O-6
+5VDC Out
RS-232 Transmit
RS-232 Receive
RS-232 Ground
PWR/Servo LED
DESCRIPTION
I/O-16 GP
I/O-17 GP
I/O-18 GP
I/O-19 GP
I/O-20 GP
I/O-21 GP
I/O-22 GP
I/O-23 GP
I/O-24 GP
I/O-25 GP
+24VDC Input
GND I/O
1 2
A2
3 4 5
PIN
1
2
3
4
5
DESCRIPTION
NC
+V (NC except DeviceNet)
-V (Isolated GND )
CAN-H
CAN-L
NOTE: The DE power option is recommended. For details, see the Class 5 SmartMotor Installation and Startup Guide.
1
2
3
4
5
6
7
8
15 14 13 12 11 10 9
Trajectory
LED (Bt)
Power/Servo
LED
I/O Connector
Pin Numbers
Shield Drain
9
10
11
12
13
14
15
10 CAN Low
11 CAN Hi
Shield Drain
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
10 CAN Low
11 CAN Hi
Terminating Node
5-Pin CANopen
(female is standard)
5-Pin
Limit Inputs
LIMIT INPUTS
PIN
1
2
3
4
5
CANOPEN
RUN LED
DESCRIPTION
+24VDC Out
I/O-3 or -Limit
GND-Common
I/O-2 or +Limit
I/O-10
CANOPEN
ERROR LED
I/Os
DESCRIPTION
I/O-0
I/O-1
I/O-4
I/O-5
I/O-6
I/O-7
I/O-8
I/O-9
Not Fault Out
Drive Enable In
+24VDC Out
GND-Common
DESCRIPTION
NC
+V (NC except DeviceNet)
-V (Unisolated Ground)
CAN-H
CAN-L
COMMUNICATION
8-Pin
COM Encoder Bus
PIN
1
2
3
4
5
6
7
8
9
10
11
12
PIN
1
2
3
4
5
12-Pin I/O
SERVO-AMPLIFIER
LED
PIN DESCRIPTION
GND-Common
1
RS-485B CH0
2
RS-485A CH0
3
ENC A+ (In/Out)
4
ENC B- (In/Out)
5
ENC A- (In/Out)
6
+5VDC Out
7
ENC B+ (In/Out)
8
RS-485 serial communication uses a
voltage differential signal. Appropriate
terminating resistors should be included
on the RS-485 network to ensure reliable
performance.
POWER INPUT
TRAJECTORY
LED
PIN
1
2
3
4
DESCRIPTION
Control Power In 24Vmax
Chassis GND/Earth
GND-Common
Amplifier Power 48Vmax
Cable Diagram
Cable Diagram
CAN bus wiring is most reliable when a straight bus is used (see the following figure).
Common problems with CAN bus wiring are often traced to branches or star configurations.
These configurations often create multipath signal reflections that cause communication
errors.
CAUTION: If a branch is absolutely necessary due to wiring constraints, it is
the responsibility of the system designer to test and prove the layout is not
causing communication errors. Moog Animatics cannot ensure the success of
branched layouts.
The following figure shows a straight network with no branches. The short drop to each motor
is acceptable. These drops from the Y connector to the motor should be 0.3 meters or less.
CAUTION: If drops from the Y connecter to the motor need to exceed 0.3
meters, it is up to the system designer to test and prove the additional drop
length is not causing communication errors. Moog Animatics cannot ensure the
success of longer drops.
The wire length between any two motors should be at least 0.1 meter, including the drop
length. For details, see Maximum Bus Length on page 39.
CAN Bus
Terminator
Terminator*
CANopen Master*
- PC,
- PLC,
- etc.
Moog Animatics
SmartMotor
Moog Animatics
SmartMotor
*Master may have termination option; see masters documentation for details.
Bus Termination
Proper termination is critical for successful network communications. There must be two terminators (120 Ohms each), and they must be located at the two ends of the network. Because
the network is a straight line, there are exactly two ends of the network to place the terminators.
In the event that the master device specifically provides a terminating resistor, then that may
be used instead of the terminator plug. However, the master must be at the end of the network in that case; it cannot be in the middle.
Bus length
(meters)
1000000
25
800000
50
500000
100
250000
250
125000
500
50000
1000
20000
2500
NOTE: Bus lengths exceeding 200 meters may have additional requirements such
as the use of repeaters or optocouplers. For details, see the CiA 301 specifications.
Status LEDs
Status LEDs
The Status LEDs provide the same functionality for the D-style and M-style (including
IP-sealed) SmartMotors.
P5
(CANopen)
LED 3
LED 2
P4
(Limit Inputs)
P3
(I/O Connector)
LED 1
P2 (COM
Encoder Bus)
P3 (CANopen option)
LED 0
P1 (Power Input)
Indication
Trajectory LED = Off
Trajectory LED = Green
Manufacturer-Specific Objects
Manufacturer-Specific Objects
This chapter provides details on manufacturer-specific objects.
I/O
44
User Variables
44
Calling Subroutines
46
47
Command Interface
47
Program Upload/Download
48
I/O
I/O
The CiA 402 motion profile provides limited access to the onboard I/O of the SmartMotor.
However, there are other manufacturer-specific objects that provide more I/O control.
As part of the CiA 402 motion profile, objects 60FDh and 60FEh are provided. For details, see
Object 60FDh: Digital Inputs on page 224 and Object 60FEh: Digital Outputs on page 226.
For the D-style motor, object 2100h is highly specific to the multiplexed role of the seven I/O
pins. This function is not supported on the M-style motor. For more details, see Object 2100h:
Port Configuration on page 137.
For general access to individual I/O pins, the Bit I/O object (2101h) offers a more specific way
to send commands. This feature works on the M-style and D-style motors. It can be used to
disable the limit inputs if desired. For more details, see Object 2101h: Bit IO on page 138.
NOTE: The limit-switch inputs for all SmartMotors must be satisfied before motion
is allowed. The inputs must either be physically wired or disabled if not connected.
Additionally, M-style motors require the drive-enable input to be true (high) for
motion to start.
User Variables
The SmartMotor has an array of user variables that are accessible to user programs and are
visible as CANopen objects. This provides a common area where information can be shared
between a user program and the CANopen network.
The variables use predefined names: az, aazz and aaazzz, which comprise a total of 78
variables; these are 32-bit signed integers.
Additionally, there is a 204-byte array. It can be accessed as 8, 16 or 32-bit signed values.
For more details, see the SmartMotor Developer's Guide.
There are 12 variables that are available as "mappable" variables. This feature allows a
CANopen SmartMotor in slave or master mode to accept PDO mappings to data of size 8, 16,
or 32 bits:
l
Mappable Variables object (2220h) offers access to 8-bit user variables ab[0], ab[1], ab
[2] and ab[3]. For more details, see Object 2220h: 8-Bit Mappable Variables on page
154.
Mappable Variables object (2221h) offers access to 16-bit user variables aw[32], aw
[33], aw[34] and aw[35]. For more details, see Object 2221h: 16-Bit Mappable Variables on page 155.
Mappable Variables object (2204h) offers access to 32-bit user variables aaa, bbb, ccc
and ddd. For more details, see Object 2204h: Mappable 32-bit Variables on page 143.
These mappable variables are available for applications such as general-purpose I/O blocks
using PDO communications. Also, note that the "master" does not always need to be the
SmartMotor receiving all data.
A wider range of user variables is accessible through the CANopen User Variable object
(2201h). However, this mechanism does not allow PDO communications object 2201 is only
available through SDO communications. Therefore, it is typically used to pass constants or
other configuration data at startup, when a PLC may pass SDO data. During the Operational
state, a master may continue to pass data to variables through object 2201h if it is capable of
User Variables
SDO communication at that time. For more details, see the Object 2201h: User Variable on
page 140.
A typical use of user variables in combination with CANopen is to receive information from
another motor or sensor device on the network. For example, variable aaa could be mapped
to a receive PDO (RxPDO). If that PDO is allocated a COB-ID of a sensor on the network, then
that information can be used in a SmartMotor user program.
Another common use of the mapping variables is to report information that does not have a
CANopen object. For instance, a user may want to perform a calculation in a user program
and report the result back to the master. In this case, the user program would set a variable
such as bbb=<expr>. The variable bbb should be mapped to a transmit PDO (TxPDO). Then
the master or other nodes on the network can access that information.
It is possible to use the SmartMotor as a bridge by combining the two techniques: receiving
data into a user variable and transmitting information from a user variable. This allows interfacing of two devices that need intermediate computation. For example, a temperature sensor
could feed into the SmartMotor, and a process control loop in a SmartMotor program could
use that information to control a cooling fan through an I/O device. This may be advantageous
if there are applications that are easier to program in the SmartMotor instead of the CANopen
master.
Often, the mapping variable is used to send or receive a field of bits. When receiving, the bitwise program operators can be used: | (or), & (and), !| (xor). For example, the following IF
expression will be true when bit 3 is set:
IF (ddd&8)!=0
... do action
ENDIF
When transmitting, the following are some simple techniques for setting bitwise values:
aaa=aaa|8
aaa=aaa|bbb
aaa=aaa!|64
aaa=aaa&-9
aaa=aaa&(-3&-9)
aaa=aaa|(2|8)
'Set bit 3.
'Logical OR all bits from aaa and bbb; save to aaa.
'Toggle bit 6 (XOR).
'Clear bit 3 and leave other bits alone.
'Clear bit 1 and 3 at the same time.
'Set bit 1 and 3 at the same time.
Calling Subroutines
The following table lists the bit numbers and the corresponding decimal values used to set
with OR (for 16 bits, only) or clear with AND (for 16 bits, only).
Bit number
(015)
Decimal value to
set bit with OR
(for 16 bits, only)
Decimal value to
clear bit with AND
(for 16 bits, only)
16
17
32
33
64
65
128
129
256
257
512
513
10
1024
1025
11
2048
2049
12
4096
4097
13
8192
8193
14
16384
16385
15
32768
32769
Calling Subroutines
The functionality of the SmartMotor can be extended by creating and loading a user program
into the motor. There are two ways to control the running of this program: a GOSUB call, or a
RUN command to run the entire program from the top of the program.
NOTE: A user program will always automatically run from the start when the motor
is powered on or reset unless the RUN? command is included at the top of the user
program. The RUNcommand is not the same as the RUN? command. For details on
these commands, see the SmartMotor Developer's Guide.
The GOSUB R2 object (2309h) provides access to the GOSUB, RUN and END commands. It is
PDO mappable, and it only reacts to a change of value. For details, see Object 2309h: GOSUB
R2 on page 173. This object replaces the functionality of objects 2305h and 2306h.
Bit 8 of the CANopen Status Word object (6041h) can be used to determine when the subroutine called with object 2309h has finished. When the bit clears, the subroutine has completed.
Calls to subroutines using object 2309h are automatically blocked if a previous call made
through object 2309h is still busy. When that subroutine returns, bit 8 of the Status Word
object (6041h) will clear.
NOTE: Unlike GOSUB, there is no CANopen access to the GOTOfunction.
Command Interface
This section describes the command interface for the Encapsulated Animatics Command
object (2500h). This object provides an interface to the SmartMotor command language.
Please note the following:
l
The status information must read back from sub-index 3 of object 2500h.
Sub-index
Description
2500h
2500h
2500h
2500h
Description
Command in progress.
Overflow.
3-7
Reserved.
Program Upload/Download
Program Upload/Download
The Encapsulated Animatics Command object (2500h) behaves like a string command. Therefore, it can support the upload and download of user programs. The following sections
describe the upload and download procedures.
Download to Motor
The following steps are used to download a user program from the host to the SmartMotor:
1. The host writes to motor's sub-index 1 of object 2500h with the LOAD command. Strings
need to be null-terminated like most commands.
2. The host waits for the "Command in progress" flag in sub-index 3 of object 2500h to
return to 0.
3. The host writes the program data to sub-index 1 of object 2500h, first 32 bytes, with no
null terminator. This can include a header and anything after the header. The CAN command manager will consume the header and whatever follows it.
4. The host waits for the "Command in progress" flag in sub-index 3 of object 2500h to
return to 0. This serves as the ACK (acknowledgment) signal. There is no reading of
sub-index 2 of object 2500h.
NOTE: Do not attempt to read sub-index 2 of object 2500h because that buffer is used for other purposes during this procedure.
5. The host writes more program data to sub-index 1 of object 2500h, 32 bytes at a time,
with no null terminator. Handshaking continues through the "Command in progress"
flag. Transmission may be ended at any time by sending 0xFF 0xFF 0x20 in the character stream.
NOTE: This sequence does not need to fall in the same buffer segment. There is no
need to pad the buffer.
50
50
51
52
Motion Profiles
53
Position Mode
53
Velocity Mode
57
Torque Mode
59
61
Homing Mode
67
Not ready to
switch on
Status Word:
xxxx_xxxx_x0xx_0000
Start
Successful
initialization
Control Word:
Bit 7 = 1
Fault
Switch on
disabled
Control Word:
Bit 1 = 1
Bit 2 = 1
Control Word:
Bit 1 = 0
Status Word:
xxxx_xxxx_x0xx_1000
Automatic
transition
Status Word:
xxxx_xxxx_x1xx_0000
Control Word:
Bit 2 = 0
or
Bit 1 = 0
Control Word:
Bit 2 = 0
or
Bit 1 = 0
Control Word:
Bit 1 = 0
Ready to
switch on
Fault
reaction
complete
Status Word:
xxxx_xxxx_x01x_0001
Control Word:
Bit 0 = 1
Control Word:
Bit 0 = 0
Quick stop
active
Control Word:
Bit 0 = 0
Switched on
Control Word:
Bit 0 = 1
Bit 3 = 1
Status Word:
xxxx_xxxx_x01x_0011
Control Word:
Bit 3 = 1
Status Word:
xxxx_xxxx_x00x_0111
Control Word:
Bit 3 = 0
Fault reaction
active
Automatic
transition
through
Switched on
state
Status Word:
xxxx_xxxx_x0xx_1111
Control Word:
Bit 2 = 0
Operation
enabled
Status Word:
xxxx_xxxx_x01x_0111
(16 bits)
Meaning
Drive is off
Switch on disabled
Drive is off
Ready to switch on
Drive is off
Switched on
Drive is off
Operation enabled
Drive is enabled
Drive is enabled
Drive is enabled
Fault
Drive is off
The state "Operation enabled" is the only one allowing normal operation (motion) of the
motor.
The quick stop will automatically transition out of the "Quick stop active" state to the "Switch
on disabled" state.
The "Fault reaction active" state will automatically transition to the "Fault" state unless the
fault reaction is "slow to a stop" rather than OFF or MTB.
For more details, see Object 6041h: Status Word on page 184.
Allowed from
Bit 7
Bit 3
Bit 2
Bit 1
Bit 0
Switch on disabled
Ready to switch on
Switch on disabled,
Switched on,
Operation enabled
Switched on
Operation Enabled
Operation enabled,
Ready to switch on,
Switched on
Switch on disabled
N/A
N/A
N/A
N/A
N/A
Switch on disabled
0 to 1
transition
Fault
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
NOTE:Rising edge of bit 7 clears the fault unless a fault condition still exists.
Motion Profiles
A typical startup sequence of values to write to the control word is:
1. 0000h Starting value.
2. 0080h Clear past faults.
3. 0006h Enter "Ready to Switch On" state.
4. 000Fh Enter "Operation Enabled" state; for velocity or torque mode, this starts
motion.
5. 001Fh Start a homing or position move.
Motion Profiles
This section provides example values written to CANopen objects for various motion profiles.
In these examples, it can be assumed that the writes are made through either PDO or SDO
communications. Typically, objects like the Control Word object (6040h) would be written cyclically with PDO communications. However, it is also possible for a single SDO write to set
these values. If PDO communications are used, it is assumed that the master is writing values
continuously, and the noted sequence indicates when a value should be changed to a new
value.
Position Mode
This section describes the process for creating a motion using Absolute Position mode and Relative Position mode.
It is assumed that either the SmartMotor's drive-enable input and hardware limit switch
inputs are in the ready state, or the user has issued the appropriate I/O commands to disable
the limits. For details, see Object 2100h: Port Configuration on page 137 and Object 2101h:
Bit IO on page 138.
Position Mode
Index
Object
Code
SubIndex
Length
Hex
Dec
EIGN(2)
2101h
03
02
0002
EIGN(3)
2101h
03
02
0003
ZS
6040h
00
02
0080
SMI
Command
Data
CAUTION: Skip
this step if limit
switches are in
use.
Disable negative limit
switch input
CAUTION: Skip
this step if limit
switches are in
use.
Reset status word
128
0000 0000 1000 0000
MP
6060h
00
01
01
VT=xxxx
6081h
00
04
0000C350
50000
PT=0
607Ah
00
04
00000000
Set acceleration
AT=xxxx
6083h
00
04
00000064
100
Set deceleration
DT=xxxx
100
6084h
00
04
00000064
6040h
00
02
0006
6040h
6040h
6040h
6040h
6
0000000000000110
00
02
0007
7
0000000000000111
00
02
002F
47
0000000000101111
00
02
003F
63
0000000000111111
00
02
002F
47
0000000000101111
PT=1000
607Ah
00
04
000003E8
6040h
00
02
003F
1000
63
0000000000111111
Position Mode
1. Clear the faults by setting the Control Word object (6040h) to the following values:
a. 0
b. 0080h (128 decimal)
c. 0
2. Set the Modes of Operation object (6060h) to the value 1 (decimal).
3. Set the Profile Velocity object (6081h) to the desired speed in VU (for example, the
decimal value 100000). This is always a positive value. The target position determines
the direction of motion.
4. Set the Profile Acceleration object (6083h) to the desired acceleration in ADU (for
example, the decimal value 10).
5. Set the Profile Deceleration object (6084h) to the desired deceleration in ADU (for
example, the decimal value 10).
6. Set the Target Position object (607Ah) to the desired absolute position in PU.
7. Initialize and start the motion by setting the Control Word object (6040h) to the values:
a. 0006h (6 decimal) This is required to satisfy the CiA 402 drive state machine.
For details, see CiA 402 Profile Motion State Machine on page 50.
b. 002Fh (47 decimal) This configures the single-setpoint positioning mode.
c. 003Fh (63 decimal) The motion begins.
8. Wait for the motion to complete.
9. Set the Target Position object (607Ah) to a new absolute position in PU. Motion will not
begin at this time.
10. Initialize, start and stop the motion by setting the Control Word object (6040h) to the following values:
a. 002Fh (47 decimal) Bit 4 must be transitioned for the new setpoint to begin. By
writing that value to the Control Word object (6040h), bit 4 will begin in the low
state. The next step will write a different value to that object, which will transition
bit 4 to a high state.
b. 003Fh (63 decimal) Starts the motion.
c. 013Fh (319 decimal) Stops the motion. The motor will decelerate before reaching the target.
11. Initialize and resume the motion by setting the Control Word object (6040h) to the following values:
a. 002Fh (47 decimal) bit 4 must be transitioned for the motion to resume. By writing that value to the Control Word object (6040h), bit 4 will begin in the low state.
The next step will write a different value to that object, which will transition bit 4
to a high state.
b. 003Fh (63 decimal) the motion resumes.
12. Turn off motor by setting the Control Word object (6040h) to the value 0.
Position Mode
Velocity Mode
12. Initialize and resume the motion by setting the Control Word object (6040h) to the following values:
a. 006Fh (111 decimal) Bit 4 must be transitioned for the motion to resume. By
writing that value to the Control Word object (6040h), bit 4 will begin in the low
state. The next step will write a different value to that object, which will transition
bit 4 to a high state.
b. 007Fh (127 decimal) The motion resumes. It performs a relative move from
the current position (not the original position).
13. Turn off motor by setting the Control Word object (6040h) to the value 0.
Velocity Mode
This section describes the process for creating a motion using Velocity mode.
It is assumed that either the SmartMotor's drive-enable input and hardware limit switch
inputs are in the ready state, or the user has issued the appropriate I/O commands to disable
the limits. For details, see Object 2100h: Port Configuration on page 137 and Object 2101h:
Bit IO on page 138.
Velocity Mode
Index
Object
Code
SubIndex
Length
Hex
Dec
EIGN(2)
2101h
03
02
0002
EIGN(3)
2101h
03
02
0003
ZS
6040h
00
02
0080
SMI
Command
Data
CAUTION: Skip
this step if limit
switches are in
use.
Disable negative limit
switch input
CAUTION: Skip
this step if limit
switches are in
use.
Reset status word
128
0000 0000 1000 0000
MV
6060h
00
01
03
VT=xxxx
60FFh
00
04
0000C350
50000
Set acceleration
AT=xxxx
6083h
00
04
00000064
100
Set deceleration
DT=xxxx
6084h
00
04
00000064
100
6040h
00
02
0006
6040h
Start command
6
0000000000000110
00
02
0007
7
0000000000000111
6040h
00
02
000F
15
0000000000001111
VT=xxxx, G
60FFh
00
04
000186A0
X (default)
6040h
00
02
010F
271
xxxxxxx100001111
See object
605Dh
Start command
100000
6040h
00
02
000F
15
0000000000001111
Quick stop
then OFF
6040h
00
02
000B
11
xxxxxxxx00001011
See objects
6085h,
605Ah
Torque Mode
1. Clear the faults by setting the Control Word object (6040h) to the following values:
a. 0
b. 0080h (128 decimal)
c. 0
2. Set the Modes of Operation object (6060h) to the value 3 (decimal).
3. Set the Target Velocity object (60FFh) to the desired speed in VU (for example, the
decimal value 100000). To reverse the direction of motion, use a negative value.
4. Set the Profile Acceleration object (6083h) to the desired acceleration in ADU (for
example, the decimal value 10).
5. Set the Profile Deceleration object (6084h) to the desired deceleration in ADU (for
example, the decimal value 10).
6. Set the Control Word object (6040h) to the value 0006h (6 decimal). This is required to
satisfy the CiA 402 drive state machine. For details, see CiA 402 Profile Motion State
Machine on page 50.
7. Start, stop and resume the motion by setting the Control Word object (6040h) to the following values:
a. 000Fh (15 decimal) Starts the motion
b. 010Fh (271 decimal) Stops the motion
c. 000Fh (15 decimal) Resumes the motion
8. Change the speed by setting the Target Velocity object (60FFh) to the desired speed in
VU (for example, the decimal value 200000). The motor will immediately accelerate /decelerate to the new speed. To reverse the direction of motion, use a negative value.
9. Turn off motor by setting the Control Word object (6040h) to the value 0.
Torque Mode
This section describes the process for creating a motion using Torque mode.
It is assumed that either the SmartMotor's drive-enable input and hardware limit switch
inputs are in the ready state, or the user has issued the appropriate I/O commands to disable
the limits. For details, see Object 2100h: Port Configuration on page 137 and Object 2101h:
Bit IO on page 138.
Torque Mode
Index
Object
Code
SubIndex
Length
Hex
Dec
EIGN(2)
2101h
03
02
0002
EIGN(3)
2101h
03
02
0003
ZS
6040h
00
02
0080
SMI
Command
Data
CAUTION: Skip
this step if limit
switches are in
use.
Disable negative limit
switch input
CAUTION: Skip
this step if limit
switches are in
use.
Reset status word
128
0000 0000 1000 0000
MT
6060h
00
01
04
TS=xxxx
6087h
00
04
000000C8
200
T=xxxx
100
6071h
00
02
0064
6040h
00
02
0006
6040h
Start command
6
0000000000000110
00
02
0007
7
0000000000000111
6040h
00
02
000F
15
0000000000001111
T=xxxx, G
6071h
00
02
0096
X (default)
6040h
00
02
010F
271
xxxxxxx100001111
See object
605Dh
Start command
150
6040h
00
02
000F
15
0000000000001111
Quick stop
then OFF
6040h
00
02
000B
11
xxxxxxxx00001011
See object
605Ah
Time synchronization should be used. Because of clock drifts, the individual motors will
consume position data at slightly different rates. Over a period of several hours, motors
could be significantly out of step (for example, one motor gets several data points
ahead of another). With time synchronization, the high-resolution timestamp object is
used to coordinate clocks in this process, and the motors will adjust their clocks accordingly.
Buffer level of data points must be maintained. There are specific objects to monitor,
and the host must not allow the buffer of data points to run empty or to overflow. Therefore, the host must be able to accurately monitor and control the flow of data points.
Data points are entered as absolute positions. However, they are processed in a relative
format that depends on the position of the motor at a specific time during the setup and
configuration of IP mode.
Index
Object
Code
SubIndex
Length
Hex
Dec
EIGN(2)
2101h
03
02
0002
EIGN(3)
2101h
03
02
0003
ZS
6040h
00
02
0080
SMI
Command
Data
128
0000 0000 1000 0000
6060h
00
01
07
6040h
00
02
0006
6040h
Clear buffer
60C4h
01
00
Enable buffer
60C4h
01
01
60C2h
01
01
60C2h
01
00
60C1h
04
00000000
60C1h
04
000003E8
1000
60C1h
04
00000BB8
3000
60C1h
04
000007D0
2000
60C1h
04
000003E8
1000
60C1h
04
00000000
60C2h
01
00
60C1h
04
00000000
6040h
00
02
000F
Begin motion
6040h
6
0000000000000110
00
02
0007
7
0000000000000111
15
0000000000001111
00
02
001F
31
0000000000011111
Synchronization
When running multiple motors in Interpolation mode, the rate at which data points are consumed can vary by several parts per million. While this sounds small, over time it will lead to
the SmartMotors not reaching a coordinated point simultaneously.
The following brief example is for a network of two motors with the master producing a sync
every 10 milliseconds. It is also possible for the time-producer motor to be the sync producer
if the CANopen master cannot do so (this method is not shown here).
NOTE: This is an advanced topic that requires an understanding of PDO mapping.
For details, see PDO Mapping on page 71.
1. Configure one motor as the time producer:
a. Map transmit PDO 4 to object 1013h.
b. Set the transmission type to 100 (to transmit at once per second because the sync
rate is 100/second). The exact rate is not critical, but it is typically on the order of
one second.
User Bits
A special feature is provided by the SmartMotor that allows status bits to be correlated with
specific data points in the buffer. The status bit can be used to indicate when a particular segment between two points is achieved. This can be used to call special program routines or to
set outputs to control external devices. For example, a laser-engraving tool may need a
simple on/off state at certain points in the motion path. This event is correlated with the specific range of positions in the buffer.
To write the bits, write to object 2403h the range of values is 0 to 3Fh, which represents six
bits. These are associated with the next data record written to the Interpolation Data Record
object (60C1h), sub-index 1. When the associated data point is reached, the new value (bit pattern) will be visible in SmartMotor status word 8 (object 2304h, sub-index 9) as bits 813.
The following procedure provides an example of the user bits feature. The value of object
2403h is initially 0. The buffer is populated either initially or in a continuous run situation:
1. Put data in the buffer by writing the following values to sub-index 1 of the Interpolation
Data Record object (60C1h):
a. 2000
b. 3000
2. Set the Interpolation User Bits object (2403h) to the value 1.
3. Put data in the buffer by writing the value 4000 to the Interpolation Data Record object
(60C1h), sub-index 1.
4. Set the Interpolation User Bits object (2403h) to the value 0.
Homing Mode
5. Put data in the buffer by writing the following values to sub-index 1 of the Interpolation
Data Record object (60C1h):
a. 5000
b. 6000
In the previous example, the user bit indicates when the motor position is between 3000 and
4000. The user bit is accessible in SmartMotor status word 8 (object 2304h, sub-index 9). This
can be read in a user program with the following code:
IF B(8,8)
OS(0)
ELSE
OR(0)
ENDIF
Splining
By default, object 60C0h is set to 0. This commands the linear form of interpolation. To
smooth data points, splined motion can be enabled by setting object 60C0h to the value 3.
The change to this mode takes effect with the next data point written through object 60C1h,
sub-index 1.
NOTE: While it is outside the scope of this manual, it is possible to mix splined and
linear interpolation per written data point. This provides interpolation control in
cases where spline interpolation does not provide the desired motion path.
Variable-Length Segments
It is possible to vary the length (in time) of the interpolation segment between data points.
Object 60C2h, sub-index 1 and 2, control the interpolation timer period. There are some cases
where it may be beneficial to reduce the required number of points. For example, rounded
areas require more points, but straight segments require less points. The application of this
technique is outside the scope of this manual. However, note that any change to object 60C2h
will be associated with the next position data record written through object 60C1h, sub-index
1.
Homing Mode
This section describes the process for activating the SmartMotor homing process.
l
For homing modes 1, and 17 there must be a negative limit switch connected and
enabled. The positive limit may also be present or not, but it cannot be faulted.
For homing modes 2, and 18 there must be a positive limit switch connected and
enabled. The negative limit may also be present or not, but it cannot be faulted.
For other homing modes, the limit switches must either be cleared of faults, or they
must be disabled.
Homing Mode
Homing Summary
The following table provides a summary of settings for activating the homing process. For a
different example in step format, see the next section.
Description
SMI
Command
Index
Object
Code
SubIndex
Length
Hex
6040h
00
02
0080
Data
Dec
ZS
128
0000 0000 1000 0000
6060h
00
01
06
6098h
00
01
01
6099h
01
04
000186A0
100000
6099h
02
04
00002710
10000
609Ah
00
04
00000064
100
607Ch
00
04
000003E8
1000
6040h
00
02
0006
6040h
Enable operation
6040h
6
0000000000000110
00
02
0007
7
0000000000000111
00
02
000F
15
0000000000001111
Start command
6040h
00
02
001F
31
0000000000011111
Homing Example
The following procedure shows the steps for activating the homing process.
NOTE:
Position Units (PU): encoder counts
Acceleration/Deceleration Units(ADU): (encoder counts per (sample2)) * 65536
Velocity Units (VU): encoder counts per sample * 65536
1. Clear the faults by setting the Control Word object (6040h) to the following values:
a. 0
b. 0080h (128 decimal)
c. 0
2. Set the Modes of Operation object (6060h) to the value 6 (decimal).
3. Set the Homing Method object (6098h) to the method desired. For details, see Object
6098h: Homing Method on page 210.
Homing Mode
4. Set sub-index 1 of the Homing Speed object (6099h) to the desired speed in VU (for
example, the decimal value 100000). This is always a positive value. The Homing mode
determines the direction of motion.
5. Set sub-index 2 of the Homing Speed object (6099h) to the desired speed in VU (for
example, the decimal value 100000). This is always a positive value. The Homing mode
determines the direction of motion.
6. Set the Homing Acceleration object (609Ah) to the desired acceleration in ADU (for
example, the decimal value 10).
7. (Optional) Set the Home Offset object (607Ch) to the desired homing offset in PU.
8. Initialize and start the motion by setting the Control Word object (6040h) to the following values:
a. 0006h (6 decimal) This is required to satisfy the CiA 402 drive state machine.
For details, see CiA 402 Profile Motion State Machine on page 50.
b. 000Fh (15 decimal)
c. 001Fh (31 decimal) The motion begins.
9. Wait for the motion to complete. The Status Word object (6041h) will report when the
home position has been located. When the motor has come to a stop, then bit 10 =1 (target reached) and bit 12 = 1 (home position found).
If bit 13 = 1 in the Status Word object (6041h), there was an error and homing was not
completed.
PDO Mapping
PDO Mapping
This chapter provides information on the Process Data Objects (PDOs)and the PDOmapping
process. It also describes the low-level steps that must occur at startup between the master
and the motor to enable PDOcommunications.
Overview
72
73
74
75
Mapping Entries
75
Mapping Procedure
76
76
78
Overview
Overview
Process Data Objects (PDOs) are containers that hold one or more data objects. The set of
objects in a PDO can be configured through the process of dynamic mapping. In a SmartMotor, this means that data objects such as the Velocity Actual Value object (606Ch) and the
Status Word object (6041h) can be placed in the same PDO transmission from the SmartMotor. The same can be done for receive PDOs the motor will unpack the received PDO according to the mapping configuration and consume the data objects.
A CAN packet contains a maximum payload of 8 bytes. This creates a limit to the amount of
data that is mapped into a single PDO. For example, a PDO can contain one INTEGER32 and
two INTEGER16 objects. Other combinations are allowed, but the number of bytes must be 8
or less.
A set of objects is available for performing object mapping. These objects are included in the
set known as the Communication Profile objects (1000h-1FFFh). This is the standard for any
CANopen devices that support dynamic mapping. For details on the Communication Profile
objects, see Communication Profile on page 98.
NOTE: Some CANopen masters may have a graphical interface or automated
means of performing this mapping.
hex
Description
5120
1400
5121
1401
5122
1402
5123
1403
5124
1404
5632
1600
5633
1601
5634
1602
5635
1603
5636
1604
6144
1800
6145
1801
6146
1802
6147
1803
6148
1804
6656
1A00
6657
1A01
6658
1A02
6659
1A03
6660
1A04
Description
COB-ID:This PDO will listen for CAN packets with this identifier (Receive
PDO) or transmit CAN packets with this identifier (Transmit PDO).
Transmission Type:
Value 0: N/A
Value 1: Transmit on sync packet (Transmit PDO). Accept data on sync
packet (Receive PDO). The Transmit PDO is sent when a sync packet is
seen.
Values 2240:Same as value 1, except the rate is divided (e.g., the value
2 specifies every other sync packet).
Values 241251: Reserved.
Values 252, 253: Not supported.
Value 254: Transmit if the self-timer has expired. This mode simply transmits this PDO at the rate of the event timer.
Value 255: Transmit if either the event timer period expires or an object
mapped in the PDO changes value. The event timer for each PDO resets
each time a transmission occurs through either mechanism. Therefore, the
event timer is a maximum time between transmissions; the inhibit time is
a minimum time between transmissions.
Description
Number of Entries: Defines the number of objects that are mapped within
this PDO. For instance, if "Mapping Entry 1" and "Mapping Entry 2" have
been set up, then write the value 2.
Mapping Entry 1: Points to the mapped object. For details, see the following sections.
Mapping Entry 2: Points to the mapped object. For details, see the following sections.
Mapping Entry 3: Points to the mapped object. For details, see the following sections.
Mapping Entry 4: Points to the mapped object. For details, see the following sections.
Mapping Entries
Only four mapping entries are allocated for the SmartMotor. Therefore, a maximum of four
objects can be mapped into a PDO. The mapping entries must be filled contiguously starting
from mapping entry 1. For example, for three entries, use mapping entry 1, 2 and 3.
All of these mapping entries are UNSIGNED32-bit values. There are three pieces of data
packed into each of these fields to represent the object being mapped:
l
n: object number
i: sub-index
s: size
The following example uses the Velocity Actual Value object (606Ch):
(hex) 606c0020
CAUTION: There is a specific procedure defined by the CANopen specification
for mapping a variable. This procedure must be followed or an error will occur,
which will prevent the change to the mapping.
Mapping Procedure
Mapping Procedure
The following procedure uses the previous Velocity Actual Value object example. Transmit
PDO 1 is mapped to contain the Velocity Actual Value object (606Ch) and the Status Word
object (6041h).
1. Enter the NMT Pre-Operational state.
2. Set bit 31 of the COB-ID set sub-index 1 of the Transmit PDO Communication Parameter 1 object (1800h) to the value C0000180h. This assumes that sub-index 1 of object
1800h has been set to the default value 40000180h.
3. Set the number of entries to 0 in sub-index 0 of the Transmit PDO Mapping Parameter 1
object (1A00h).
4. Using the same object (1A00h), set the mapping object. It uses a 32-bit value with the
following order: highest 2 bytes: object; next byte: sub-index; the last byte: length in
bits.
a. For the status word, set sub-index 1 = 60410010h.
b. For the actual velocity, set sub-index 2 = 606c0020h.
5. Using the same object (1A00h), set the number of entries back to the number of items
created in the previous step set sub-index 0 to the value 2.
6. Clear bit 31 of the COB-ID set sub-index 1 of object 1800h to the value 40000180h.
This will specify this PDO to transmit with the COB-ID of 180h.
7. Set the Transmission Type in sub-index 2 of object 1800h to "sync" (1-240) or "event
timer" (254-255).
If the "event timer" is chosen, then also specify the number of milliseconds between
transmissions in sub-index 5 of object 1800h.
8. Enter the NMT Operational state.
80
CADDR=frm
80
CBAUD=frm
80
80
=CAN, RCAN
80
RB(2,4), x=B(2,4)
84
84
CANCTL(action, value)
84
NMT
86
SDORD
86
SDOWR
87
87
CADDR=frm
Set can address
Where frm is a number from 1 to 127. The value is stored in the SmartMotor's EEPROM.
However, the SmartMotor must be powered off and on for it to take effect.
CBAUD=frm
Set CANbaud rate
Where frm may be one of the following bit rates (bits/second): 1000000, 800000, 500000,
250000, 125000, 50000 and 20000. The value is stored in the SmartMotor's EEPROM.
However, the SmartMotor must be powered off and on for it to take effect.
The setting of 10000 bits/second is not supported. For details on other unsupported CANopen
features, see Not Supported on page 34.
=CAN, RCAN
Get CANerror
The =CANand RCAN commands are used to assign/report errors and certain status information for the CAN bus.
l
As a report: RCAN(y)
=CAN, RCAN
Assignment
=CAN(0)
Report
Description
Description
CAN power okay (not used by CANopen)
Reserved
Pre-Operational:127
Operational: 5
Stopped: 4
=CAN(2)
=CAN(3)
=CAN, RCAN
Assignment
=CAN(4)
Report
Description
RCAN(4) Gets the result code of the most recent SDO read or write, or NMT
command as a master.
Code
0
Description
No error (operation succeeded).
Type
SDO
NMT
SDO
-1
Timeout
SDO
-2
SDO
-3
-4
-5
-6
SDO
read
-20
SDO
NMT
-21
SDO
-22
SDO
-23
SDO
-24
NMT
The =CAN(0)and RCAN(0) commands are used to report a bit map of conditions that could
occur over the CAN bus. Not all bits are error bits. Therefore, it cannot be assumed that a
nonzero value for RCAN is an error.
RCAN,which is the same as RCAN(0), reports a decimal number that is a combination of the
bits shown in the =CAN(0)/RCAN(0) row of the previous table. Use the CAN command, which
is the same as =CAN(0), in a program to assign the decimal number to a variable, for
example:
x=CAN
=CAN, RCAN
A calculator with a binary display function can convert this decimal number to indicate the set
of bits shown. Also, the SmartMotor Developer's Worksheet can be used for this conversion. It
is available from the Moog Animatics website at:
http://www.animatics.com/support/download-center.html
NOTE: Object 2304h, sub-index 3, bit 4 (CAN error) reports true if any of the error
indications above are set. In a user program, this is a simpler test than attempting
to filter the result of RCAN for the error conditions.
Description
Hex
Dec
0503 0000h
84082688
0504 0000h
84148224
SDO protocol timed out. Note that the SmartMotor uses the
RCAN(4) -1 value to indicate a timeout. Refer to RCAN(4) on
page 82.
0504 0001h
84148225
0504 0002h
84148226
0504 0003h
84148227
0504 0004h
84148228
0504 0005h
84148229
Out of memory.
0601 0000h
0601 0001h
0601 0002h
0602 0000h
0604 0041h
0604 0042h
0604 0043h
0604 0047h
0606 0000h
0607 0010h
101122064 Data type does not matchlength of service parameter does not
match.
0607 0012h
101122066 Data type does not matchlength of service parameter too high.
0607 0013h
101122067 Data type does not matchlength of service parameter too low.
0609 0011h
0609 0030h
RB(2,4), x=B(2,4)
Code
Hex
Description
Dec
0609 0031h
0609 0032h
0609 0036h
0800 0000h
0800 0020h
0800 0021h
0800 0022h
0800 0023h
134217763 Object dictionary dynamic generation fails or no object dictionary is present (e.g. object dictionary is generated from file
and generation fails because of a file error).
RB(2,4), x=B(2,4)
Determine if CAN error has occurred
Report/get if an error state has occurred over CAN, CANopen or Combitronic. Further investigation through RCAN(0) will give more details. This can be cleared using the Z(2,4) or ZS
command.
For more details, see the SmartMotor Developer's Guide.
CANCTL(action, value)
Control network features
Commands execute based on the action argument, which controls CAN functions.
CANCTL(action, value)
Action =
Description
12
13
16a
NMT
Action =
Description
17a,b
Description
Disable master commands (default)
Reserved
Enable master commands; "simple mode" (no flying master, no monitoring of
nodes, no EMCY support, no LSS support)
Reserved
NMT
Transmit NMTmessage to network
The NMTcommand transmits an NMT message to the network; it can command a specific
slave or all slaves to enter the commanded state. The command uses the form:
NMT(target address, desired state)
NMT(0,1)
'Tell everyone to go operational.
NMT(2,128) 'Tell motor 2 to go pre-operational.
x=CAN(4)
IF x!=0
' NMT command failed.
ENDIF
SDORD
Read value from SDO
The SDORD command gets (reads) the value from the specified SDO on a specified device.
SDOWR
EXAMPLE: Read an SDO
x=SDORD(1, 24592,0,2)
e=CAN(4)
y=SDORD(1, 24608,0,2)
ee=CAN(4)
IF (e|ee)==0
ELSE
GOSUB(8) ' Go do something to deal with error when read fails.
ENDIF
SDOWR
Write value to SDO
The SDOWR command writes a value to the specified SDO on a specified device.
EXAMPLE: Write an SDO
a=1234
SDOWR(1,9029,0,4,a) ' Write 4 bytes to address 1,
IF CAN(4)==0
' Confirm the status of the most recent SDO operation.
' Success
GOSUB(4) ' Some routine to take action when the write succeeds.
ELSE
GOSUB(9) ' Go do something to deal with error when write fails.
ENDIF
No Combitronic version of these commands, i.e., there is no ":" operator form of the
command, for example:
x=SDORD():3
is not allowed. Refer to each command's description in Part 2 of this guide.
No monitoring the heartbeat of other network nodes.
No special commands for sending or receiving PDOs. PDOs must be mapped to existing
objects to send or receive data as a slave device. Even the SmartMotor designated as a
master must configure its own PDO mappings.
NOTE: SmartMotors currently have 5 transmit and 5 receive PDOs.
No capability to read EDS files. The user is responsible for writing a program with the
relevant object index, sub-index and data type.
No LSS host behavior is provided from the SmartMotor. Each slave device is expected to
have the properly configured address and baud rate. Each device must have a unique
address; all devices must use the same baud rate. Any need to set the baud rate or
address is not the responsibility of Moog Animatics.
Only one SmartMotor may fill the master role. No other SmartMotors on the network
may issue these commands, because this implementation does not support a multCANopen-master functionality.
No support for master read/write of segmented or block SDO protocol. Only Expedited
(32-bit or smaller) data transmission are supported by the master functionality.
For more details and example programs, see the SmartMotor Developer's Guide.
Troubleshooting
Troubleshooting
The following table provides troubleshooting information for solving SmartMotor problems
that may be encountered when using CANopen. For additional support resources, see the
Moog Animatics Support page at:
http://www.animatics.com/support.html
Issue
Cause
Solution
Check Drive Status LED. If LED is not
lit, check wiring.
Check that CANopen connector is correctly wired and connected to motor.
For details, see Connections, Wiring
and Status LEDs on page 35.
Set CBAUDsetting and then reboot
motor. For details, see Address and
Baud Rate Commands on page 80.
Set CADDR setting and then reboot
motor. For details, see Address and
Baud Rate Commands on page 80.
Contact Moog Animatics for the correct
firmware version.
The CAN bus should be a linear bus
topology. For details, see Connections,
Wiring and Status LEDs on page 35.
Decrease line and/or drop lengths. For
details, see Connections, Wiring and
Status LEDs on page 35.
Set master temporarily to the
Pre-Operational state. Stop user programs in all motors. For details, see
NMT States on page 27.
Check CAN Bus Network Fault LED A
blinking red LED may indicate occasional issues from any of the causes listed above; a solid red LED indicates
that these issues have occurred frequently, which causes the motor to
stop communicating (bus off condition). In this case, the SmartMotor
must be reset after fixing the cause of
the problem.
Troubleshooting
Issue
Communication and
Motor control power
light does not illuminate.
Motor disconnects
from SMI sporadically.
Overcurrent
occurred.
Excessive position
error.
Cause
Solution
Control Issues
Motor is equipped with the
DE option.
Motor has routed drive
power through driveenable pins.
Transmit, receive, or
ground pins are not connected correctly.
Motor program is stuck in
a continuous loop or is disabling communications.
Troubleshooting
Issue
Historical positive/negative hardware limit faults.
Cause
A limit switch was tripped
in the past.
Motor does not have limit
switches attached.
Solution
Clear errors with the ZS command.
Configure the motor to be used without
limit switches by setting their inputs as
general use.
Use the "Compiler default firmware
version option" in the SMI software
Compile menu to select the default
firmware version closest to the motor
firmware version. In the SMI software,
view the motor firmware version by
right-clicking the motor and selecting
Properties.
Object Reference
Object Reference
This chapter provides details on the CANopen objects used with the Moog Animatics SmartMotor. The following TOCgroups the objects by category.
Object Categories
97
Communication Profile
98
100
101
102
104
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Object Reference
Object 1A00h: Transmit PDO Mapping Parameter 1
128
129
130
131
132
Manufacturer-Specific Profile
133
135
136
137
138
139
140
141
142
143
144
145
146
147
148
150
151
152
153
154
155
156
157
158
159
160
169
Object Reference
Object 2306h: Motor Subroutine Index
170
171
172
173
174
175
176
177
178
179
180
182
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
203
204
Object Reference
Object 6083h: Profile Acceleration
205
206
207
208
209
210
213
214
215
216
217
219
220
221
223
224
226
228
229
230
231
Object Categories
Object Categories
The CANopen object descriptions are grouped by the following categories.
l
Communication Profile
Communication Profile
This section describes the objects in the Communication Profile. This set of objects in the
range 1000h to 1FFFh implement the 301 specification for general CANopen communications.
This configures CANopen services and PDO behavior.
Object 1000h: Device Type
100
101
102
104
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
Communication Profile
Object 1A01h: Transmit PDO Mapping Parameter 2
129
130
131
132
SubIndex
1000h
000
Description
Device Type
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
FFFFFFFFh
00020192h
No
Unsigned
32-bit
Read
Only
This object is required by CANopen to provide information about this device. The value of this
object does not change.
Bit
Meaning
1623 (8 bits)
2431 (8 bits)
SubIndex
1001h
000
Description
Error Register
Low
Limit
High
Limit
00h
FFh
Default
PDO
Map
Data
type
Access
No
Unsigned
8-bit
Read
Only
The value read from this object contains a bit field with the following meaning:
Bit
0
Function
General error
Includes any of the following:
l
l
l
l
l
l
17
motion fault
drive not ready
CAN communication errors
program command error
program checksum error
serial communication error
Reserved
SubIndex
1005h
000
Description
COB-ID SYNC
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000001h
FFFFFFFFh
00000080h
No
Unsigned
32-bit
Read
Write
This object specifies the COB-ID used for the Synchronization object (transmit or receive).
Bit
010
1128
Setting
COB-ID of the Synchronization object.
Set to 0.
29
30
31
EXAMPLE: (for the complete program, see the example "CAN Bus - Time Sync Follow
Encoder" in Chapter 3 of the SmartMotor Developer's Guide)
'++++ HEX Coded
. . .
#define x1005
#define x1006
. . .
mmm=1
fff=mmm
eee=2
. . .
NMT(0,128)
GOSUB10
' Network broadcast to go pre-operational state.
' Setup the sync producer/consumers and set timebase. Provides time sync so
' motor clocks keep in step, and data is transmitted/accepted on sync also.
SDOWR(mmm,x1006,0,4,10000) GOSUB10 ' define Cycle period object 0x1006:0,
' size 4, 10ms
SDOWR(eee,x1006,0,4,10000) GOSUB10 ' define Cycle period object 0x1006:0,
' size 4, 10ms
IF mmm!=fff
' If follow motor is not the master.
GOSUB10
GOSUB10
SubIndex
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1006h
000
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
This object defines the communication cycle period in microseconds for transmission of the
sync message. Set to 0 to disable the sync message transmission. Also, refer to Object
1005h: COB-ID SYNC on page 102.
For certain applications, this object can be used to provide the following features:
l
Network encoder following: When receiving encoder data, it will arrive at a rate of several milliseconds between samples. For smooth motion, the SmartMotor must interpolate this data internally at a faster rate to take smaller steps per PID cycle. The motor
will know the time interval based on object 1006h, cycle period.
Synchronization: When the SmartMotors should all have a common timebase, this
allows data to be produced and consumed one-for-one. The arrival time of sync packets
from the master and the value set as the cycle period by object 1006h will coordinate
this behavior.
EXAMPLE: (for the complete program, see the example "CAN Bus - Time Sync Follow
Encoder" in Chapter 3 of the SmartMotor Developer's Guide)
'++++ HEX Coded
. . .
#define x1005
#define x1006
. . .
mmm=1
fff=mmm
eee=2
. . .
NMT(0,128)
GOSUB10
' Network broadcast to go pre-operational state.
' Setup the sync producer/consumers and set timebase. Provides time sync so
' motor clocks keep in step, and data is transmitted/accepted on sync also.
SDOWR(mmm,x1006,0,4,10000) GOSUB10 ' define Cycle period object 0x1006:0,
' size 4, 10ms
SDOWR(eee,x1006,0,4,10000) GOSUB10 ' define Cycle period object 0x1006:0,
' size 4, 10ms
IF mmm!=fff
' If follow motor is not the master.
SDOWR(fff,x1006,0,4,10000)
GOSUB10 ' define Cycle period object
' 0x1006:0, size 4, 10ms
ENDIF
SDOWR(mmm,x1005,0,4,128)
GOSUB10 ' define Cycle ID x0000 0080 (required
' to avoid error in next line.)
SDOWR(mmm,x1005,0,4,1073741952) GOSUB10 ' define Cycle ID, producer
' x4000 0080
SDOWR(eee,x1005,0,4,128)
GOSUB10 ' define Cycle ID, consumer x0000 0080
IF mmm!=fff
SubIndex
1008h
000
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
SMClass5
No
String
Read
Only
This object contains the manufacturer device name. This value does not change and reports
as:
SMClass5
SubIndex
Description
1009h
000
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
01.00
No
String
Read
Only
This object contains the device hardware version. This value does not change and reports as:
01.00
SubIndex
Description
100Ah
000
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
No
String
Read
Only
This object contains the firmware version of the motor. It reports a string in the format:
5.x.y.z
Where x can be:
l
The y and z positions represent the major and minor software release version, respectively.
The string is 16 bytes long; it is padded with null characters at the end.
Similar SmartMotor Commands: RFW, RSP (firmware) info
SubIndex
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1013h
000
High-Resolution Timestamp
00000000h
FFFFFFFFh
00000000h
Yes
Unsigned
32-bit
Read
Write
This object contains a timestamp with a resolution of 1 microsecond. It can be mapped into a
PDO in order to define a high-resolution timestamp.
Typically, one motor is configured to transmit its object 1013, and one or more other motors
receive this value for the purpose of synchronization.
When this object is read, it is the captured value of the high-resolution timer at the most
recent sync; therefore, it is not the current value.
NOTE: The captured value is not the current value of the high-resolution timer.
When this object is written, it is used to skew the motor's internal timing to stay synchronized
with other motors.
For more details, see Synchronization on page 65.
SubIndex
1017h
000
Description
Producer Heartbeat Time
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
This object defines the cycle time of the heartbeat transmission from the motor in milliseconds. Transmission begins as soon as the value is set. If the value is 0, nothing is transmitted.
The heartbeat contains information that tells the master (or other devices) that the heartbeat
came from this device and what network state it is in (Operational, Pre-Operational,
Stopped).
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1018h
000
Number of Entries
01h
04h
04h
No
Unsigned
8-bit
Read
Only
1018h
001
Vendor ID
00000000h
FFFFFFFFh
00000226h
No
Unsigned
32-bit
Read
Only
1018h
002
Product Code
00000000h
FFFFFFFFh
00000003h
No
Unsigned
32-bit
Read
Only
1018h
003
Revision Number
00000000h
FFFFFFFFh
Revision
number
No
Unsigned
32-bit
Read
Only
1018h
004
Serial Number
00000000h
FFFFFFFFh
Motor serial
number
No
Unsigned
32-bit
Read
Only
Description
This object contains general information about the device. These values are constant and do
not change.
l
Sub-index 4 contains the unique serial number of this SmartMotor. This number is the
same as the serial number printed on the SmartMotor label, except that the leading
alpha character is dropped. Only the 24-bit numeric digits are reported.
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1200h
000
Number of Entries
02h
02h
02h
No
Unsigned
8-bit
Read
Only
1200h
001
00000600h
BFFFFFFFh
00000600
+ node ID
No
Unsigned
32-bit
Read
Only
1200h
002
00000580h
BFFFFFFFh
00000580
+ node ID
No
Unsigned
32-bit
Read
Only
Description
These are the COB-ID values used for SDO communications from the CANopen master to the
SmartMotor. The value is automatically updated based on the node ID (motor address) according to the default connection set. This information cannot be changed; it is provided for informative purposes only.
SubIndex
1400h
000
Number of Entries
1400h
001
COB-ID
1400h
002
Transmission Type
1400h
003
Inhibit Time
1400h
004
Compatibility Entry
1400h
005
Event Timer
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
02h
05h
05h
No
Unsigned
8-bit
Read
Only
00000001h
FFFFFFFFh
00000200h
+ node ID
No
Unsigned
32-bit
Read
Write
00h
FFh
FFh
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
Sub-index 1: COB-ID used for this PDO; when set, bit 31 is used to disable the PDO
Sub-index 5: Event time, in milliseconds, for transmit PDOs type 254 and 255
SubIndex
1401h
000
Number of Entries
1401h
001
COB-ID
1401h
002
Transmission Type
1401h
003
Inhibit Time
1401h
004
Compatibility Entry
1401h
005
Event Timer
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
02h
05h
05h
No
Unsigned
8-bit
Read
Only
00000001h
FFFFFFFFh
80000300h
+ node ID
No
Unsigned
32-bit
Read
Write
00h
FFh
FFh
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
Sub-index 1: COB-ID used for this PDO; when set, bit 31 is used to disable the PDO
Sub-index 5: Event time, in milliseconds, for transmit PDOs type 254 and 255
SubIndex
1402h
000
Number of Entries
1402h
001
COB-ID
1402h
002
Transmission Type
1402h
003
Inhibit Time
1402h
004
Compatibility Entry
1402h
005
Event Timer
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
02h
05h
05h
No
Unsigned
8-bit
Read
Only
00000001h
FFFFFFFFh
80000400h
+ node ID
No
Unsigned
32-bit
Read
Write
00h
FFh
FFh
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
Sub-index 1: COB-ID used for this PDO; when set, bit 31 is used to disable the PDO
Sub-index 5: Event time, in milliseconds, for transmit PDOs type 254 and 255
SubIndex
1403h
000
Number of Entries
1403h
001
COB-ID
1403h
002
Transmission Type
1403h
003
Inhibit Time
1403h
004
Compatibility Entry
1403h
005
Event Timer
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
02h
05h
05h
No
Unsigned
8-bit
Read
Only
00000001h
FFFFFFFFh
80000500h
+ node ID
No
Unsigned
32-bit
Read
Write
00h
FFh
FFh
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
Sub-index 1: COB-ID used for this PDO; when set, bit 31 is used to disable the PDO
Sub-index 5: Event time, in milliseconds, for transmit PDOs type 254 and 255
SubIndex
1404h
000
Number of Entries
1404h
001
COB-ID
1404h
002
Transmission Type
1404h
003
Inhibit Time
1404h
004
Compatibility Entry
1404h
005
Event Timer
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
02h
05h
05h
No
Unsigned
8-bit
Read
Only
00000001h
FFFFFFFFh
80000000h
No
Unsigned
32-bit
Read
Write
00h
FFh
FFh
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
Sub-index 1: COB-ID used for this PDO; when set, bit 31 is used to disable the PDO
Sub-index 5: Event time, in milliseconds, for transmit PDOs type 254 and 255
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1600h
000
Number of Entries
00h
04h
01h
No
Unsigned
8-bit
Read
Write
1600h
001
Mapping Entry 1
00000000h
FFFFFFFFh
60400010h
No
Unsigned
32-bit
Read
Write
1600h
002
Mapping Entry 2
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1600h
003
Mapping Entry 3
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1600h
004
Mapping Entry 4
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
Description
This object controls which objects are mapped into receive PDO 1.
For the following items, refer to Mapping Parameters Objects on page 75:
l
Sub-index 0: Number of valid sub-index objects in this object. This is set according to
the filled mapping entries starting from sub-index 1.
Sub-indexes 14: These provide information about the object mapped in this PDO. They
contain the indexes, the sub-indexes and the lengths of the mapped object. Fill these
starting from sub-index 1. The structure is:
Bit
Meaning
Sub-index of the
object to map
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1601h
000
Number of Entries
00h
04h
02h
No
Unsigned
8-bit
Read
Write
1601h
001
Mapping Entry 1
00000000h
FFFFFFFFh
60400010h
No
Unsigned
32-bit
Read
Write
1601h
002
Mapping Entry 2
00000000h
FFFFFFFFh
60600008h
No
Unsigned
32-bit
Read
Write
1601h
003
Mapping Entry 3
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1601h
004
Mapping Entry 4
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
Description
This object controls which objects are mapped into receive PDO 2.
For the following items, refer to Mapping Parameters Objects on page 75:
l
Sub-index 0: Number of valid sub-index objects in this object. This is set according to
the filled mapping entries starting from sub-index 1.
Sub-indexes 14: These provide information about the object mapped in this PDO. They
contain the indexes, the sub-indexes and the lengths of the mapped object. Fill these
starting from sub-index 1. The structure is:
Bit
Meaning
Sub-index of the
object to map
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1602h
000
Number of Entries
00h
04h
02h
No
Unsigned
8-bit
Read
Write
1602h
001
Mapping Entry 1
00000000h
FFFFFFFFh
60400010h
No
Unsigned
32-bit
Read
Write
1602h
002
Mapping Entry 2
00000000h
FFFFFFFFh
607A0020h
No
Unsigned
32-bit
Read
Write
1602h
003
Mapping Entry 3
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1602h
004
Mapping Entry 4
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
Description
This object controls which objects are mapped into receive PDO 3.
For the following items, refer to Mapping Parameters Objects on page 75:
l
Sub-index 0: Number of valid sub-index objects in this object. This is set according to
the filled mapping entries starting from sub-index 1.
Sub-indexes 14: These provide information about the object mapped in this PDO. They
contain the indexes, the sub-indexes and the lengths of the mapped object. Fill these
starting from sub-index 1. The structure is:
Bit
Meaning
Sub-index of the
object to map
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1603h
000
Number of Entries
00h
04h
02h
No
Unsigned
8-bit
Read
Write
1603h
001
Mapping Entry 1
00000000h
FFFFFFFFh
60400010h
No
Unsigned
32-bit
Read
Write
1603h
002
Mapping Entry 2
00000000h
FFFFFFFFh
60FF0020h
No
Unsigned
32-bit
Read
Write
1603h
003
Mapping Entry 3
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1603h
004
Mapping Entry 4
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
Description
This object controls which objects are mapped into receive PDO 4.
For the following items, refer to Mapping Parameters Objects on page 75:
l
Sub-index 0: Number of valid sub-index objects in this object. This is set according to
the filled mapping entries starting from sub-index 1.
Sub-indexes 14: These provide information about the object mapped in this PDO. They
contain the indexes, the sub-indexes and the lengths of the mapped object. Fill these
starting from sub-index 1. The structure is:
Bit
Meaning
Sub-index of the
object to map
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1604h
000
Number of Entries
00h
04h
02h
No
Unsigned
8-bit
Read
Write
1604h
001
Mapping Entry 1
00000000h
FFFFFFFFh
60400010h
No
Unsigned
32-bit
Read
Write
1604h
002
Mapping Entry 2
00000000h
FFFFFFFFh
60710010h
No
Unsigned
32-bit
Read
Write
1604h
003
Mapping Entry 3
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1604h
004
Mapping Entry 4
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
Description
This object controls which objects are mapped into receive PDO 5.
For the following items, refer to Mapping Parameters Objects on page 75:
l
Sub-index 0: Number of valid sub-index objects in this object. This is set according to
the filled mapping entries starting from sub-index 1.
Sub-indexes 14: These provide information about the object mapped in this PDO. They
contain the indexes, the sub-indexes and the lengths of the mapped object. Fill these
starting from sub-index 1. The structure is:
Bit
Meaning
Sub-index of the
object to map
SubIndex
1800h
000
Number of Entries
1800h
001
COB-ID
1800h
002
Transmission Type
1800h
003
Inhibit Time
1800h
004
Compatibility Entry
1800h
005
Event Timer
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
02h
05h
05h
No
Unsigned
8-bit
Read
Only
00000001h
FFFFFFFFh
40000180h
+ node ID
No
Unsigned
32-bit
Read
Write
00h
FFh
FFh
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
Sub-index 1: COB-ID used for this PDO; when set, bit 31 is used to disable the PDO
Sub-index 5: Event time, in milliseconds, for transmit PDOs type 254 and 255
SubIndex
1801h
000
Number of Entries
1801h
001
COB-ID
1801h
002
Transmission Type
1801h
003
Inhibit Time
1801h
004
Compatibility Entry
1801h
005
Event Timer
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
02h
05h
05h
No
Unsigned
8-bit
Read
Only
00000001h
FFFFFFFFh
C0000280h
+ node ID
No
Unsigned
32-bit
Read
Write
00h
FFh
FFh
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
Sub-index 1: COB-ID used for this PDO; when set, bit 31 is used to disable the PDO
Sub-index 5: Event time, in milliseconds, for transmit PDOs type 254 and 255
SubIndex
1802h
000
Number of Entries
1802h
001
COB-ID
1802h
002
Transmission Type
1802h
003
Inhibit Time
1802h
004
Compatibility Entry
1802h
005
Event Timer
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
02h
05h
05h
No
Unsigned
8-bit
Read
Only
00000001h
FFFFFFFFh
C0000380h
+ node ID
No
Unsigned
32-bit
Read
Write
00h
FFh
01h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
Sub-index 1: COB-ID used for this PDO; when set, bit 31 is used to disable the PDO
Sub-index 5: Event time, in milliseconds, for transmit PDOs type 254 and 255
SubIndex
1803h
000
Number of Entries
1803h
001
COB-ID
1803h
002
Transmission Type
1803h
003
Inhibit Time
1803h
004
Compatibility Entry
1803h
005
Event Timer
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
02h
05h
05h
No
Unsigned
8-bit
Read
Only
00000001h
FFFFFFFFh
C0000480h
+ node ID
No
Unsigned
32-bit
Read
Write
00h
FFh
01h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
Sub-index 1: COB-ID used for this PDO; when set, bit 31 is used to disable the PDO
Sub-index 5: Event time, in milliseconds, for transmit PDOs type 254 and 255
SubIndex
1804h
000
Number of Entries
1804h
001
COB-ID
1804h
002
Transmission Type
1804h
003
Inhibit Time
1804h
004
Compatibility Entry
1804h
005
Event Timer
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
02h
05h
05h
No
Unsigned
8-bit
Read
Only
00000001h
FFFFFFFFh
C0000000h
No
Unsigned
32-bit
Read
Write
00h
FFh
01h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
Sub-index 1: COB-ID used for this PDO; when set, bit 31 is used to disable the PDO
Sub-index 5: Event time, in milliseconds, for transmit PDOs type 254 and 255
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1A00h
000
Number of Entries
00h
04h
01h
No
Unsigned
8-bit
Read
Write
1A00h
001
Mapping Entry 1
00000000h
FFFFFFFFh
60410010h
No
Unsigned
32-bit
Read
Write
1A00h
002
Mapping Entry 2
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1A00h
003
Mapping Entry 3
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1A00h
004
Mapping Entry 4
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
Description
This object controls which objects are mapped into transmit PDO 1.
For the following items, refer to Mapping Parameters Objects on page 75:
l
Sub-index 0: Number of valid sub-index objects in this object. This is set according to
the filled mapping entries starting from sub-index 1.
Sub-indexes 14: These provide information about the object mapped in this PDO. They
contain the indexes, the sub-indexes and the lengths of the mapped object. Fill these
starting from sub-index 1. The structure is:
Bit
Meaning
Sub-index of the
object to map
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1A01h
000
Number of Entries
00h
04h
02h
No
Unsigned
8-bit
Read
Write
1A01h
001
Mapping Entry 1
00000000h
FFFFFFFFh
60410010h
No
Unsigned
32-bit
Read
Write
1A01h
002
Mapping Entry 2
00000000h
FFFFFFFFh
60610008h
No
Unsigned
32-bit
Read
Write
1A01h
003
Mapping Entry 3
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1A01h
004
Mapping Entry 4
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
Description
This object controls which objects are mapped into transmit PDO 2.
For the following items, refer to Mapping Parameters Objects on page 75:
l
Sub-index 0: Number of valid sub-index objects in this object. This is set according to
the filled mapping entries starting from sub-index 1.
Sub-indexes 14: These provide information about the object mapped in this PDO. They
contain the indexes, the sub-indexes and the lengths of the mapped object. Fill these
starting from sub-index 1. The structure is:
Bit
Meaning
Sub-index of the
object to map
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1A02h
000
Number of Entries
00h
04h
02h
No
Unsigned
8-bit
Read
Write
1A02h
001
Mapping Entry 1
00000000h
FFFFFFFFh
60410010h
No
Unsigned
32-bit
Read
Write
1A02h
002
Mapping Entry 2
00000000h
FFFFFFFFh
60640020h
No
Unsigned
32-bit
Read
Write
1A02h
003
Mapping Entry 3
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1A02h
004
Mapping Entry 4
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
Description
This object controls which objects are mapped into transmit PDO 3.
For the following items, refer to Mapping Parameters Objects on page 75:
l
Sub-index 0: Number of valid sub-index objects in this object. This is set according to
the filled mapping entries starting from sub-index 1.
Sub-indexes 14: These provide information about the object mapped in this PDO. They
contain the indexes, the sub-indexes and the lengths of the mapped object. Fill these
starting from sub-index 1. The structure is:
Bit
Meaning
Sub-index of the
object to map
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1A03h
000
Number of Entries
00h
04h
02h
No
Unsigned
8-bit
Read
Write
1A03h
001
Mapping Entry 1
00000000h
FFFFFFFFh
60410010h
No
Unsigned
32-bit
Read
Write
1A03h
002
Mapping Entry 2
00000000h
FFFFFFFFh
606C0020h
No
Unsigned
32-bit
Read
Write
1A03h
003
Mapping Entry 3
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1A03h
004
Mapping Entry 4
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
Description
This object controls which objects are mapped into transmit PDO 4.
For the following items, refer to Mapping Parameters Objects on page 75:
l
Sub-index 0: Number of valid sub-index objects in this object. This is set according to
the filled mapping entries starting from sub-index 1.
Sub-indexes 14: These provide information about the object mapped in this PDO. They
contain the indexes, the sub-indexes and the lengths of the mapped object. Fill these
starting from sub-index 1. The structure is:
Bit
Meaning
Sub-index of the
object to map
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
1A04h
000
Number of Entries
00h
04h
02h
No
Unsigned
8-bit
Read
Write
1A04h
001
Mapping Entry 1
00000000h
FFFFFFFFh
60410010h
No
Unsigned
32-bit
Read
Write
1A04h
002
Mapping Entry 2
00000000h
FFFFFFFFh
60770010h
No
Unsigned
32-bit
Read
Write
1A04h
003
Mapping Entry 3
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
1A04h
004
Mapping Entry 4
00000000h
FFFFFFFFh
00000000h
No
Unsigned
32-bit
Read
Write
Description
This object controls which objects are mapped into transmit PDO 5.
For the following items, refer to Mapping Parameters Objects on page 75:
l
Sub-index 0: Number of valid sub-index objects in this object. This is set according to
the filled mapping entries starting from sub-index 1.
Sub-indexes 14: These provide information about the object mapped in this PDO. They
contain the indexes, the sub-indexes and the lengths of the mapped object. Fill these
starting from sub-index 1. The structure is:
Bit
Meaning
Sub-index of the
object to map
Manufacturer-Specific Profile
Manufacturer-Specific Profile
This section describes the objects in the Manufacturer-Specific Profile. This set of objects in
the range 2000h to 5FFFh implement manufacturer-specific objects, which do not follow a
common standard. They provide access to SmartMotor commands and data.
Object 2000h: Node Id
135
136
137
138
139
140
141
142
143
144
145
146
147
148
150
151
152
153
154
155
156
157
158
159
160
169
170
Manufacturer-Specific Profile
Object 2307h: Sample Period
171
172
173
174
175
176
177
178
179
SubIndex
2000h
000
Description
Node Id
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00h
FFh
Loaded from
EEPROM at
boot-up
Yes
Unsigned
8-bit
Read
Only
SubIndex
2001h
000
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00h
08h
Loaded from
EEPROM at
boot-up
Yes
Unsigned
8-bit
Read
Only
This object reports the current CAN bit rate setting. The value is reported as an index representing the bit rate. Refer to the following table:
Index
Bit rate
(kilobits/sec)
1000
800
500
250
125
N/A
50
20
N/A
SubIndex
2100h
000
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
7FFFFFFFh
000000A0h
Yes
Unsigned
32-bit
Read
Write
Description
Port Configuration
This object controls the configuration of I/O ports 0 through 6 (formerly named A through G)
on a D-style motor. Due to constraints, some of the inputs are grouped together. For
example, ports 4 and 5 (formerly named E and F) can be configured together for RS-485. For
more details, see I/O on page 44.
This object is not supported in M-style firmware (5.98.x.x). For details, see I/O on page 44.
Object 2100
Bits
03 (4 bits)
Binary Bits
Value
Port
Port
Effect
Effect
0 (A)
1 (B)
input
input
output
input
input
output
output
output
2 (C)
45 (2 bits)
input
output
positive
limit
3 (D)
67 (2 bits)
810 (3 bits)
input
output
negative
limit
4 (E)
5 (F)
input
input
output
input
input
output
output
IC
RS-485
output
6 (G)
1112 (2 bits)
1315 (3 bits)
input
output
go
N/A
N/A
Reserved
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
2101h
000
Number of Entries
0003h
0003h
0003h
No
Unsigned
8-bit
Read
Only
2101h
001
Set Output
0000h
7FFFh
0000h
Yes
Unsigned
16-bit
Read
Write
2101h
002
Clear Output
0000h
7FFFh
0000h
Yes
Unsigned
16-bit
Read
Write
2101h
003
Make Input
0000h
7FFFh
0000h
Yes
Unsigned
16-bit
Read
Write
Description
This object allows individual control of each I/O point. It is designed for SDO-type communications at startup. It is not intended for cyclic PDO communications.
The value written is the identifier of the I/O port to be controlled. The action to take on that
port is a function of the specified sub-index object:
l
For D-style motor ports 06, drive the specified I/O low
For D-style motor ports 1625, turn off the specified I/O
For M-style motor ports 010, turn off the specified I/O
Sub-index 3: Turn off the specified I/O and disable any special function such as a limit
input. The specified I/O point will simply become a generic input.
For example, to make I/O port 2 (formerly named port C) a generic input, write the
value 2 to sub-index 3.
SubIndex
2200h
000
Number of Entries
2200h
001
EEPROM index
2200h
002
2200h
003
EEPROM value
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00h
FFh
03h
No
Unsigned
8-bit
Read
Only
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
00h
FFh
00h
No
Unsigned
8-bit
Read
Write
No
String:8
bytes.
Read
Write
This object provides access to user non-volatile EEPROM memory. Through SDO commands, a
value can be written to the user EEPROM. To do this:
1. Set the EEPROM index (sub-index 1) to the EEPROM location where the new value will be
written. Typical values are 0 to 32339.
2. Set sub-index 2 to the number of bytes that will be written.
3. Write the binary data to the EEPROM in sub-index 3. Up to 8 bytes may be written at a
time.
SubIndex
2201h
000
Number of Entries
2201h
001
Index
2201h
002
Data Type
2201h
003
Value
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00h
FFh
03h
No
Unsigned
8-bit
Read
Only
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Write
80h
7Fh
00h
No
Signed
8-bit
Read
Write
80000000h
7FFFFFFFh
00000000h
No
Signed
32-bit
Read
Write
This object provides access to user variables through SDO commands. To do this:
1. Set the index (sub-index 1) to the user variable that a value will be written to or read
from. Refer to the following table to determine the correct index.
2. Set sub-index 2 according to the table for the desired variable-type access.
3. Read or write the data using sub-index 3.
Only one variable is written at a time. If the data type is ab[] or aw[], a single byte or word is
written, respectively.
Data type
(sub-index 2)
Index
(sub-index 1)
Variable's
data type
Variables
accessed
025
long (32-bit)
az
2651
long (32-bit)
aazz
5277
long (32-bit)
aaazzz
050
long (32-bit)
al[Index]
0101
word (16-bit)
aw[Index]
0203
byte (8-bit)
ab[Index]
The variable arrays: al[index], aw[index] and ab[index] overlap the same physical memory
of 204 bytes. This allows different access to common memory based on data size. For
instance, al[0] is the same region as ab[0] through ab[3]. The byte order is little-endian, such
that ab[0] is the lowest byte of al[0].
For more details, see User Variables on page 44.
SubIndex
2202h
000
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Write
Description
Set Position Origin
The value written to this object becomes the new position value. Both the commanded position (RPC) and actual position (RPA) are shifted by this value minus the current command
value. The value read from this object is the most recent value written to this object it is
not an indication of the motor's current state.
Similar SmartMotor Commands: O=
SubIndex
2203h
000
Description
Shift Position Origin
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Write
This object shifts the absolute position (RPA) and the commanded position (RPC) by the specified value. Each time this value is written, the position is shifted by that amount. The value
read from this object is the most recent value written to this object it is not an indication of
the motor's current state.
Similar SmartMotor Commands: OSH=
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
2204h
000
Number of Entries
00000004h
00000004h
00000004h
No
Unsigned
8-bit
Read
Only
2204h
001
aaa
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Write
2204h
002
bbb
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Write
2204h
003
ccc
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Write
2204h
004
ddd
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Write
Description
This object provides direct read or write access to user variables aaaddd. This object is
provided to fill the need for PDO access to user variables. SDO access is also allowed. Also,
see Object 2220h: 8-Bit Mappable Variables on page 154and Object 2221h: 16-Bit Mappable
Variables on page 155.
For more details, see User Variables on page 44.
SubIndex
2205h
000
Description
Negative Software Position
Limit
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
80000000h
Yes
Signed
32-bit
Read
Write
This object defines the negative software position limit in units of encoder counts. If the software position limits are enabled and the actual position is out of range, then a software-limit
fault occurs.
The term "negative" does not imply the value must be negative. Positive values are permitted; however, they should be a lower value than the positive software position limit.
Similar SmartMotor Commands: SLN=, RSLN
SubIndex
2206h
000
Description
Positive Software Position
Limit
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
7FFFFFFFh
Yes
Signed
32-bit
Read
Write
This object defines the positive software position limit in units of encoder counts. If the software limits are enabled and the actual position is out of range, then a software-limit fault
occurs.
The term "positive" does not imply the value must be positive. Negative values are permitted;
however, they should be a higher value than the negative software position limit.
Similar SmartMotor Commands: SLP=, RSLP
SubIndex
2207h
000
Description
Encoder Modulo Limit
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
FFFFFFFFh
FFFFFFFFh
No
unsigned
32-bit
Read
Write
This object defines the encoder modulo limit in units of encoder counts.
An encoder will have some maximum value (modulo limit) before a roll-over of values. The
modulo limit must be known by the motor to correctly interpret the incoming encoder data.
Object 2207h supports this. The number is unsigned and based at 0. For example, an encoder
with a resolution of 4096 will have this register configured with the value 4095, because that
is the largest possible value (i.e., the value range is 0-4095 inclusive).
EXAMPLE:
'++++ HEX Coded Objects for CAN +++++
. . .
#define x2207
8711
'Object 2207h: External encoder follow max value
'(where encoder rolls over) i.e., 10 bit encoder
'would be 1023
. . .
fff=mmm
' following motor's address. In this demo, it is the network
' master. But you can make it a 3rd-party
. . .
' Set other objects in follow motor relating to follow mode.
SDOWR(fff,x2207,0,4,xffffffff)
GOSUB10 'Set encoder modulo limit
. . .
C10
' Code to check for CAN error and display it
. . .
RETURN
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
2208h
000
Number of objects
No
unsigned
8-bit
Read
Only
2208h
001
FFh
Yes
unsigned
8-bit
Read
Write
2208h
002
FFFFh
Yes
unsigned
16-bit
Read
Write
2208h
003
FFFFFFFFh
Yes
unsigned
32-bit
Read
Write
Description
This object is provided to accept data from a network (CANopen) based encoder. Three different data sizes are provided to handle PDO mapping to data sources of 8, 16, and 32 bits.
Also, see object 2207h for configuring the resolution of this external encoder so that the
SmartMotor knows when the encoder has rolled-over its number space.
l
EXAMPLE:
Refer to the example program "CAN Bus - Time Sync Follow Encoder" in Chapter 3 of the
SmartMotor Developer's Guide.
SubIndex
2209h
000
Description
Encoder control
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
FFFFh
0000h
Yes
unsigned
16-bit
Read
Write
This object defines the encoder control for the mode of following a network encoder. Refer to
the following table.
Bit
Meaning
Halt CANopen encoder follow/cam mode.
Bit 0
Bit 1
Bit 3
Bit 4-15
Reserved. Write as 0.
For certain applications, object 2209h provides a start/stop capability used to maintain relative position offset between motors:
l
Start: When starting in this mode with the G(2) command (object 2209h), the next
encoder value received after this command will be the first master position. After that,
the following encoder value received will be used to compute a difference from the first,
and so on. This avoids a sudden jump in position when restarting after a stop (i.e., the
firmware must ignore the master encoder while the motors are stopped).
Stop: To ensure multiple following motors stop while remembering position offset relative to each other, the encoder data should be received through a single synchronous
PDO to all motors. The control command object 2209h should be configured as a single
synchronous PDO from the master that all motors receive at the same time using the
same COB-ID. This allows the motors to receive the encoder data and control commands in a uniform way, relative to each other, when the sync packet arrives to all
motors.
SubIndex
220Ah
000
Description
MFMUL (Mode Follow Multiplier)
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
-32767
32767
No
unsigned
16-bit
Read
Write
This object specifies the multiplier for external encoder mode follow with ratio MFMUL/MFDIV.
Both MFMUL and MFDIV may be positive or negative; this controls the resulting direction of
shaft rotation.
For more details on MFMUL, see the SmartMotor Developer's Guide.
EXAMPLE:
'++++ HEX Coded Objects for CAN +++++
. . .
#define x220A
8714 ' Object 220Ah: External encoder follow MFMUL
. . .
fff=mmm
' following motor's address. In this demo, it is the network
' master. But you can make it a 3rd-party
. . .
' Set other objects in follow motor relating to follow mode.
. . .
SDOWR(fff,x220A,0,2,100)
GOSUB10 ' set MFMUL
. . .
C10
' Code to check for CAN error and display it
. . .
RETURN
Similar SmartMotor Commands: MFMUL=, RMFMUL, MFDIV
SubIndex
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
220Bh
000
-32767
32767
No
unsigned
16-bit
Read
Write
This object specifies the divisor for external encoder mode follow with ratio MFMUL/MFDIV.
Both MFMUL and MFDIV may be positive or negative; this controls the resulting direction of
shaft rotation.
For more details on MFDIV, see the SmartMotor Developer's Guide.
EXAMPLE:
'++++ HEX Coded Objects for CAN +++++
. . .
#define x220B
8715 ' Object 220Bh: External encoder follow MFDIV
. . .
fff=mmm
' following motor's address. In this demo, it is the network
' master. But you can make it a 3rd-party
. . .
' Set other objects in follow motor relating to follow mode.
. . .
SDOWR(fff,x220B,0,2,100)
GOSUB10 ' set MFDIV
. . .
C10
' Code to check for CAN error and display it
. . .
RETURN
Similar SmartMotor Commands: MFDIV=, RMFDIV, MFMUL
SubIndex
220Ch
000
Description
MFA (Mode Follow Ascend)
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
7FFFFFFFh
0 (disabled)
No
Signed
32-bit
Read
Write
This object sets the ascend ramp to the specified sync ratio from a ratio of zero.
For more details on MFA, see the SmartMotor Developer's Guide.
EXAMPLE:
'++++ HEX Coded Objects for CAN +++++
. . .
#define x220C
8716 ' Object 220Ch: External encoder follow MFA
. . .
fff=mmm
' following motor's address. In this demo, it is the network
' master. But you can make it a 3rd-party
. . .
' Set other objects in follow motor relating to follow mode.
. . .
SDOWR(fff,x220C,0,4,20000)
GOSUB10 ' set MFA control word x2209
' determines if master or slave units.
. . .
C10
' Code to check for CAN error and display it
. . .
RETURN
Similar SmartMotor Commands: MFA, MFD
SubIndex
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
220Ch
000
7FFFFFFFh
0 (disabled)
No
Signed
32-bit
Read
Write
This object sets the descend ramp from the specified sync ratio to a ratio of zero.
For more details on MFD, see the SmartMotor Developer's Guide.
EXAMPLE:
'++++ HEX Coded Objects for CAN +++++
. . .
#define x220D
8717 ' Object 220Ch: External encoder follow MFD
. . .
' Set other objects in follow motor relating to follow mode.
. . .
fff=mmm
' following motor's address. In this demo, it is the network
' master. But you can make it a 3rd-party
. . .
SDOWR(fff,x220D,0,4,10000)
GOSUB10 ' set MFD control word x2209
' determines if master or slave units.
. . .
C10
' Code to check for CAN error and display it
. . .
RETURN
Similar SmartMotor Commands: MFD, MFA
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
2220h
000
Number of Entries
00000004h
00000004h
00000004h
No
Unsigned
8-bit
Read
Only
2220h
001
ab[0]
00000080h
0000007Fh
00000000h
Yes
Signed
8-bit
Read
Write
2220h
002
ab[1]
00000080h
0000007Fh
00000000h
Yes
Signed
8-bit
Read
Write
2220h
003
ab[2]
00000080h
0000007Fh
00000000h
Yes
Signed
8-bit
Read
Write
2220h
004
ab[3]
00000080h
0000007Fh
00000000h
Yes
Signed
8-bit
Read
Write
Description
This object provides direct read or write access to user variables ab[0]ab[3]. This object is
provided to fill the need for PDO access to user variables. SDO access is also allowed. Also,
see Object 2221h: 16-Bit Mappable Variables on page 155and Object 2204h: Mappable 32-bit
Variables on page 143.
For more details, see User Variables on page 44.
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
2221h
000
Number of Entries
00000004h
00000004h
00000004h
No
Unsigned
8-bit
Read
Only
2221h
001
aw[32]
00008000h
00007FFFh
00000000h
Yes
Signed
16-bit
Read
Write
2221h
002
aw[33]
00008000h
00007FFFh
00000000h
Yes
Signed
16-bit
Read
Write
2221h
003
aw[34]
00008000h
00007FFFh
00000000h
Yes
Signed
16-bit
Read
Write
2221h
004
aw[35]
00008000h
00007FFFh
00000000h
Yes
Signed
16-bit
Read
Write
Description
This object provides direct read or write access to user variables aw[32]aw[35]. This object
is provided to fill the need for PDO access to user variables. SDO access is also allowed. Also,
see Object 2220h: 8-Bit Mappable Variables on page 154and Object 2204h: Mappable 32-bit
Variables on page 143.
For more details, see User Variables on page 44.
SubIndex
2300h
000
Description
Bus Voltage
Low
Limit
High
Limit
0000h
FFFFh
Default
PDO
Map
Data
type
Access
Yes
Unsigned
16-bit
Read
Only
This object reports the bus voltage (in millivolts) supplied to the motor drive stage.
SubIndex
2301h
000
Description
RMS Current
Low
Limit
High
Limit
0000h
FFFFh
Default
PDO
Map
Data
type
Access
Yes
Unsigned
16-bit
Read
Only
This object reports the RMS current (in milliamperes) of the motor windings.
Similar SmartMotor Commands: RUIA
SubIndex
2302h
000
Description
Internal Temperature
Low
Limit
High
Limit
00h
FFh
Default
PDO
Map
Data
type
Access
Yes
Unsigned
8-bit
Read
Only
This object reports the SmartMotor's internal temperature in degrees C; the resolution is 1
degree C.
Similar SmartMotor Commands: RTEMP
SubIndex
2303h
000
Description
Internal Clock
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
FFFFFFFFh
00000000h
Yes
Unsigned
32-bit
Read
Write
This object represents the SmartMotor's internal clock in milliseconds. The value can be set as
desired. This object is equivalent to the RCLK, =CLK, or CLK= commands (read or write), and
it uses the same internal clock.
NOTE: This object is not the same as Object 2308h, which uses special
clock-synchronization features that are only accessible through CANopen or serial
interpolation. For details, see Object 2308h: Microsecond Clock on page 172.
Similar SmartMotor Commands: CLK=, RCLK
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
2304h
000
Number of Entries
00h
FFh
12h
(18 dec)
No
Unsigned
8-bit
Read
Only
2304h
001
Status Word 0
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
002
Status Word 1
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
003
Status Word 2
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
004
Status Word 3
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
005
Status Word 4
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
006
Status Word 5
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
007
Status Word 6
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
008
Status Word 7
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
009
Status Word 8
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
010
Status Word 9
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
011
Status Word 10
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
012
Status Word 11
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
013
Status Word 12
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
014
Status Word 13
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Write
2304h
015
Status Word 14
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
016
Status Word 15
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
017
Status Word 16
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
2304h
018
Status Word 17
0000h
FFFFh
Yes
Unsigned
16-bit
Read
Only
Description
This object reports the SmartMotor status words, which are equivalent to the RW(index) command. There is a special case where user status bits in status word 13 are writable through
this object. This allows a host to cause user interrupts in a motor.
l
Sub-index 10 reserved
Sub-index 12 reserved
Status Word 0
Drive ready
Motor is off
Trajectory in progress
Overcurrent occurred
10
11
12
13
14
15
10
11
12
13
14
15
Status Word 2
Com 0 error
Com 1 error
Reserved
Reserved
CAN error
Reserved
Ethernet error
Reserved
10
11
Trace in progress
12
13
14
Command error
15
Torque saturation
Voltage saturation
Wraparound occurred
KG enabled
Shaft direction
Torque direction
IO fault latch
Reserved
10
Reserved
11
12
Brake asserted
13
Brake OK
14
Go on external input
15
Status Word 4
Timer status
Timer 0 running
Timer 1 running
Timer 2 running
Timer 3 running
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
10
Reserved
11
Reserved
12
Reserved
13
Reserved
14
Reserved
15
Reserved
Event 0 enabled
Event 1 enabled
Event 2 enabled
Event 3 enabled
Event 4 enabled
Event 5 enabled
Event 6 enabled
Event 7 enabled
Reserved
Reserved
10
Reserved
11
Reserved
12
Reserved
13
Reserved
14
Reserved
15
Events enabled
Status Word 6
Commutation status
Trapezoidal commutation
Sinusoidal commutation
Reserved
Reserved
Reserved
10
11
MTB active
12
Encoder fault
13
14
15
Reserved
Multiple Trajectories
TG1 in progress
TG1 Accel/Ascend
TG1 Slewing
TG1 Decel/Descend
TG1 Reserved/Dwell
Reserved
Reserved
Reserved
TG2 in progress
TG2 Accel/Ascend
10
TG2 Slewing
11
TG2 Decel/Descend
12
13
14
15
TS Wait
Status Word 8
Cam mode 0
Cam mode 1
IP user bit 0
IP user bit 1
10
IP user bit 2
11
IP user bit 3
12
IP user bit 4
13
IP user bit 5
14
IP mode 0
15
IP mode 1
Reserved
Master enabled
Rx PDO 1 arrived
Rx PDO 2 arrived
Rx PDO 3 arrived
Rx PDO 4 arrived
Rx PDO 5 arrived
Reserved
Reserved
Reserved
Reserved
10
Reserved
11
Reserved
12
Reserved
13
Reserved
14
Reserved
15
Reserved
The user program should clear these status bits with a Z(10,bit) command,
where bit is values 15, after the event handler part of the user program is
executed. Bit 0 cannot be clearedit is an indication of the master status,
see Network Control Commands on page 84.
NOTE: The ZS command will have no effect on these bits.
Status Word 11
Status Word 12
Reserved
User-settable bit 0
User-settable bit 1
User-settable bit 2
User-settable bit 3
User-settable bit 4
User-settable bit 5
User-settable bit 6
User-settable bit 7
User-settable bit 8
User-settable bit 9
10
User-settable bit 10
11
User-settable bit 11
12
User-settable bit 12
13
User-settable bit 13
14
User-settable bit 14
15
User-settable bit 15
User-settable bit 16
User-settable bit 17
User-settable bit 18
User-settable bit 19
User-settable bit 20
User-settable bit 21
User-settable bit 22
User-settable bit 23
User-settable bit 24
User-settable bit 25
10
User-settable bit 26
11
User-settable bit 27
12
User-settable bit 28
13
User-settable bit 29
14
User-settable bit 30
15
User-settable bit 31
Status Words 14
and 15
Reserved
SubIndex
2305h
000
Description
Motor Control
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
0000h
FFFFh
0000h
Yes
Unsigned
16-bit
Read
Write
This object provides access to certain SmartMotor commands. The value written to the object
is a bit field; the corresponding functions are called when the value of a bit is changed. The
function is not repeated if the bit value stays the same. The value read from this object is the
most recent value written to this object it is not an indication of the motor's current state.
NOTE: This object may be difficult to use; consider using object 2309h instead.
This command may be removed in future versions.
Bit
Function
Program control:
Transition 0 to 1: RUN command.
Transition 1 to 0: END command.
215
SubIndex
2306h
000
Description
Motor Subroutine Index
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
999
Yes
Signed
16-bit
Read
Write
Each time this object is written, it calls the specified subroutine. Therefore, care must be
taken to ensure the subroutine has completed before calling it again. The value read from this
object is the most recent value written to this object it is not an indication of the motor's
current state.
For more details, see Calling Subroutines on page 46.
Value written
1
0999
Function
No operation
GOSUB(value)
Each time it is accessed by a repeated PDO, it will call a subroutine. Therefore, this
object is not useful for PLCs or other hosts that send repeated data.
There is no mechanism provided to indicate that the subroutine has completed. Therefore, the progress of the subroutine cannot be monitored to know when it is finished and
ready to call again.
Object 2309h fixes these two limitations and provides additional features. For details, see
Object 2309h: GOSUB R2 on page 173.
SubIndex
2307h
000
Description
Sample Period
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
0000h
FFFFh
12500
Yes
Unsigned
16-bit
Read
Only
This object reports the SmartMotor sample period in microseconds*100. This is the time
period for the PID cycle and trajectory update.
PID
mode
Reported from
object 2307
Time
(microseconds)
6250
62.5
12500
125.0
25000
250.0
50000
500.0
SubIndex
2308h
000
Description
Microsecond Clock
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
FFFFFFFFh
00000000h
Yes
Unsigned
32-bit
Read
Write
This object represents an internal sync clock in microseconds. Writing to this object can interfere with the time synchronization process used with Interpolation mode. Reading this object
provides a value that is only current with the most recent PID cycle.
NOTE: This object is tied to special clock-synchronization features that are only
accessible through CANopen or serial interpolation. There is no SmartMotor command equivalent it is not associated with the SmartMotor CLK-type commands,
which use a different physical clock that operates independently. Therefore, this
object is not the same as Object 2303h. For details, see Object 2303h: Internal
Clock on page 159.
SubIndex
2309h
000
Description
GOSUB R2
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
+999
Yes
Signed
16-bit
Read
Write
This version of GOSUB will only take action when the value written is different from previous
values written to this object.
This GOSUB will not nest subroutine calls through this object (other sources of GOSUB may
still nest) If there is already an active subroutine that was called through this object, further
calls are ignored without buffering.
The following table describes the possible values:
Value
0999
Description
Corresponds to GOSUB(0) through GOSUB(999). An SDO error is issued if a
previous GOSUB called from this object is still busy.
Do nothing. This is useful as a null value since a transition must be made for a
new GOSUB call.
END
RUN
EILP
EILN
SLE
SLD
SLM(0)
SLM(1)
10
Freewheel when the drive is turned off. However, the configured fault reaction
will be in effect and will take priority if a fault is present.
Similar SmartMotor Commands: GOSUB, END, RUN, EILP, EILN, SLE, SLD, SLM()
SubIndex
2400h
000
Description
Interpolation Mode Status
Low
Limit
High
Limit
0000h
FFFFh
Default
PDO
Map
Data
type
Access
Yes
Unsigned
16-bit
Read
Only
Function
Number of free record buffer locations
Reserved
IP mode pending
IP mode ready
10
11
12
Drive ready
13
FIFO overflow
14
FIFO underflow
15
IP mode running
SubIndex
2401h
000
Description
Buffer Control
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
0000h
FFFFh
0000h
Yes
Unsigned
16-bit
Read
Write
This object provides a special way of controlling the interpolation buffer level when the host
cannot monitor the buffer level and/or time synchronization is not possible. The value written
is a proportional response to how far the interpolation is from the target buffer level. That
level is set using the Buffer Setpoint object (2402h). For details, see Object 2402h: Buffer Setpoint on page 176.
As the buffer empties, the interpolation rate slightly decreases; as the buffer fills, the interpolation rate slightly increases. A typical value to write is 10000.
Note that this is not an ideal way to control the buffer level for the following reasons:
l
The buffers of different motors will not perfectly align, so the motion will not be perfectly synchronized.
The host must send the data to the motor at an even time spacing. However, some
hosts may fill the buffer in bursts of activity that will not work with the SmartMotor.
SubIndex
2402h
000
Description
Buffer Setpoint
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00h
FFh
14h
No
Unsigned
8-bit
Read
Write
This object specifies the target buffer level. It is used in conjunction with the Buffer Control
object (2401h) to maintain the buffer at that level. For details, see Object 2401h: Buffer Control on page 175.
SubIndex
2403h
000
Description
Interpolation User Bits
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00h
3Fh
00h
Yes
Unsigned
8-bit
Read
Write
These bits are captured from this register when a new interpolation record is written.When
the interpolation data is consumed by Interpolation mode, these bits will be reported in the
status word (object 2304h, sub-index 9) along with the corresponding data record. Those user
bits will be displayed in the segment between the previous point and the current point.
In the following example, the user bit will be visible in the status word (object 2304h, subindex 9) between points 3000 and 4000.
1. Set the Interpolation User Bits object (2403h) to the value 0.
2. Put data in the buffer by writing the following values to sub-index 1 of the Interpolation
Data Record object (60C1h):
a. 2000
b. 3000
3. Set the Interpolation User Bits object (2403h) to the value 1.
4. Put data in buffer by writing the value 4000 to sub-index 1 of the Interpolation Data
Record object (60C1h).
5. Set the Interpolation User Bits object (2403h) to the value 0.
6. Put data in the buffer by writing the following values to sub-index 1 of the Interpolation
Data Record object (60C1h):
a. Write the value 5000 to object 60C1h, sub-index 1.
b. Write the value 6000 to object 60C1h, sub-index 1.
SubIndex
2404h
000
Description
Interpolation Sample Clock
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
FFFFFFFFh
00000000h
Yes
Unsigned
32-bit
Read
Only
This object reports the 32-bit unsigned count of motor PID sample periods since the start of
interpolation.
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
2500h
000
Number of Entries
03h
03h
03h
No
Unsigned
8-bit
Read
Only
2500h
001
Command String
No
String: 32
bytes
Read
Write
2500h
002
Command Response
No
String:32
bytes
Read
Only
2500h
003
Command Status
No
Unsigned
8-bit
Read
Only
Description
00h
FFh
00h
This object provides an interface to the SmartMotor command language. There is a 32-character limit for the command string and for the response string. For details, see Command
Interface (Object 2500h) on page 47.
182
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
203
204
205
206
207
208
209
210
213
214
215
216
217
219
220
221
223
224
226
228
229
230
231
SubIndex
6040h
000
Description
Control Word
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
0000h
FFFFh
0000h
Yes
Unsigned
16-bit
Read
Write*
*Write access is restricted when the remote bit is cleared with the CANCTL(13,0) command.
The control word is the primary method of commanding motion in the SmartMotor. The following features are accessed with this object:
l
Halt function
Start motion:Profile Position (PP), Profile Velocity (PV), Torque (TQ), Interpolation
(IP), and Homing (HM)
For more details, see Control Words, Status Words and the Drive State Machine on page 50.
The SmartMotor =CAN and RCAN commands can be used to assign/report the value of the
NMT state, control word (object 6040h) and status word (object 6041h). For details, see
=CAN, RCAN on page 80.
The following table provides a listing of the available bits, their names and descriptions.
Name
Description
These bits control the CiA 402 profile drive state machine. For
more details, see CiA 402 Profile Motion State Machine on page
50.
Switch on
Enable voltage
Quick stop
Enable operation
Operation mode
specific: "New
setpoint"
Operation mode
specific:
"Change set
immediately"
Operation mode
specific: "Relative"
Fault reset
Halt
If this bit is set, then the motor will stop from any mode of operation. The action taken is set in advance by the halt option code.
Operation mode
specific
10
Reserved
11
Manufacturerspecific:
Reserved for
user application
12
Manufacturerspecific
13
Manufacturerspecific
14
Manufacturerspecific
15
SubIndex
6041h
000
Description
Status Word
Low
Limit
High
Limit
0000h
FFFFh
Default
PDO
Map
Data
type
Access
Yes
Unsigned
16-bit
Read
Only
This object indicates the current state of the drive. For more details, see Control Words,
Status Words and the Drive State Machine on page 50. The SmartMotor =CAN and RCAN commands can be used to assign/report the value of the NMT state, control word (object 6040h)
and status word (object 6041h). For details, see =CAN, RCAN on page 80.
Bit
Name
Description
Ready to switch on
Switched on
Operation enabled
Fault
Voltage enabled
Quick stop
Switch on disabled
The bits 03, 5 and 6 represent the state of the CiA 402 profile drive state machine. For more details, see CiA 402 Profile
Motion State Machine on page 50.
Warning
Manufacturer-specific Used by the GOSUB R2 object (2309h) to indicate the subroutine is busy.
Remote
Target reached
"Target reached" this is operation-mode specific. It indicates the speed, position, or torque profile was achieved.
10
The bits 03, 5 and 6 represent the state of the CiA 402 profile drive state machine. For more details, see CiA 402 Profile
Motion State Machine on page 50.
In Homing (HM) mode, the motor has come to rest after finding the home position. However, the motor is not specifically
at the home position because a deceleration distance was
required after finding the position.
11
12
13
14
15
SubIndex
605Ah
000
Description
Quick Stop Option Code
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
No
Signed
16-bit
Read
Write
This object determines what action should be taken if the quick stop function is active. That
function is activated by bit 2 of the Control Word object (6040h). For details, see Object
6040h: Control Word on page 182.
In Profile Torque (TQ) mode, quick stop option code values 1 and 2 will reduce the torque
according to the torque slope rate because this is not a servo mode that can follow the deceleration or quick-stop deceleration rates.
Value
1
Function
MTB (drive turned off, resists rotation)
38
932767
Not supported
Reserved
If using Follow or Cam mode, be aware that these decelerations are not applied. The Animatics MFD() command controls the deceleration in those cases.
SubIndex
605Dh
000
Description
Halt Option Code
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
No
Signed
16-bit
Read
Write
This object determines what action should be taken if the halt bit (bit 8) is set in Control Word
object (6040h). For details, see Object 6040h: Control Word on page 182.
In Profile Torque (TQ) mode, halt option code values 1 and 2 will reduce the torque according
to the torque slope rate because this is not a servo mode that can follow the deceleration or
quick-stop deceleration rates.
Value
Function
Reserved
34
532767
Not supported
Reserved
If using Follow or Cam mode, be aware that these decelerations are not applied. The Animatics MFD() command controls the deceleration in those cases.
SubIndex
605Eh
000
Description
Fault Reaction Option Code
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
-1
Yes
Signed
16-bit
Read
Write
This object determines what action should be taken if a fault occurs in the motor. Causes of a
fault include: limit switches, software limits, overtemperature, excessive position error, etc.
In Profile Torque (TQ) mode, fault reaction option code value 1 will reduce the torque according to the torque slope rate because this is not a servo mode that can follow the deceleration
rate.
Value
1
Function
(Default) MTB (drive turned off, resists rotation)
24
532767
Not supported
Reserved
If using Follow or Cam mode, be aware that these decelerations are not applied. The Animatics MFD() command controls the deceleration in those cases.
Similar SmartMotor Commands: FSA()
SubIndex
6060h
000
Description
Modes of Operation
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80h
07h
00h
Yes
Signed
8-bit
Read
Write*
*Write access is restricted when the remote bit is cleared with the CANCTL(13,0) command.
The type of motion control is selected by setting this object to one of the values shown in the
following table. The new setting will take effect immediately. When transitioning to Interpolated Position (IP) mode or Profile Position (PP) mode, the motor will stop, there must be a
rising transition on bit 4 of the control word and then motion will begin in the new mode.
The value read back from this object does not indicate the current mode of operation; it is
only an indication of what was written previously and not an indication of the motor's current
state. Use the Modes of Operation Display object (6061h) to see the currently active mode.
For details, see Object 6061h: Modes of Operation Display on page 189.
Value -11 or -12 should be used as the mode of operation where follow or cam mode is accepting data from the CANopen data object and position profile mode is active (dual trajectory).
Value
-12
-11
Reserved
Null
Not supported
Reserved
810
11127
Not supported
Reserved
SubIndex
6061h
000
Description
Modes of Operation Display
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80h
7Fh
00h
Yes
Signed
8-bit
Read
Only
Displays the current mode of motion control; refer to Object 6060h: Modes of Operation on
page 188.
Similar SmartMotor Commands: RMODE
SubIndex
6062h
000
Description
Position Demand Value
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Only
This object reports the position calculated by the motion profile; it takes into account the acceleration and velocity targets. Because user units are not supported, the value is in units of
encoder counts, which are the same units as those for object 60FCh. For details, see Object
60FCh: Position Demand Internal Value on page 223.
When the motor drive is inactive or in torque mode, the value reported is simply the current
position.
Similar SmartMotor Commands: RPC
SubIndex
6063h
000
Description
Position Actual Internal
Value
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Only
This object reports the current position of the motor shaft in units of encoder counts.
Similar SmartMotor Commands: RPA
SubIndex
6064h
000
Description
Position Actual Value
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Only
This object reports the current position of the motor shaft in units of encoder counts.Because
user units are not supported, the value is in units of encoder counts, which are the same units
as those for object 6063h. For details, see Object 6063h: Position Actual Internal Value on
page 191.
Similar SmartMotor Commands: RPA
SubIndex
6065h
000
Description
Following Error Window
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
FFFFFFFFh
000003E8h
Yes
Unsigned
32-bit
Read
Write
This object defines the range of tolerated deviation for the actual position relative to the calculated demand position. If the actual position is out of range, a following-error fault occurs
and the drive will react according to the fault reaction. The units of this object are in encoder
counts.
Similar SmartMotor Commands: EL=, REL
SubIndex
606Bh
000
Description
Velocity Demand Value
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Only
This object reports the velocity calculated by the motion profile; it takes into account acceleration and velocity targets. The units are: (encoder counts per sample period) * 65536.
Similar SmartMotor Commands: RVC
SubIndex
606Ch
000
Description
Velocity Actual Value
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Only
This object reports the actual velocity of the motor shaft. The units are: (encoder counts per
sample period) * 65536.
Similar SmartMotor Commands: RVA
SubIndex
6071h
000
Description
Target Torque
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
-1000
1000
0000h
Yes
Signed
16-bit
Read
Write*
*Write access is restricted when the remote bit is cleared with the CANCTL(13,0) command.
This object is the target value for the motor when operating in Profile Torque (TQ) mode. The
value written will be reached at a rate specified by the Torque Slope object (6087h). When the
Control Word object (6040h) has enabled motion, the value written here will be accepted
immediately. The units of this value are per thousand of the motor's rated torque.
A value of 1000 in this CANopen object is equivalent to T=32767 in the corresponding
SmartMotor command. In other words, CANopen considers 1000 to be full-scale torque,
whereas 32767 is considered to be full-scale torque for the SmartMotor serial commands.
Similar SmartMotor Commands: T=, RT
SubIndex
6074h
000
Description
Torque Demand Value
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
8000h
7FFFh
0000h
Yes
Signed
16-bit
Read
Only
This object provides the motor's demand torque from the PID when in Position (PP), Velocity
(PV) or interpolation (IP) mode, or the torque profile when in Torque (TQ) mode. The units of
this value are per thousand of the motor's rated torque.
NOTE: This object represents the requested value from the Torque profile (in TQ
mode) or the PID (in all other closed-loop servo modes). However, due to current
limits, torque profile, etc., the motor may not be able to deliver the requested
torque.
A value of 1000 in this CANopen object is equivalent to T=32767 in the corresponding
SmartMotor command. In other words, CANopen considers 1000 to be full-scale torque,
whereas 32767 is considered to be full-scale torque for the SmartMotor serial commands.
SubIndex
6077h
000
Description
Torque Actual
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
8000h
7FFFh
0000h
Yes
Signed
16-bit
Read
Only
This object reports the actual torque based on measured current. The value is reported in
units per thousand of rated torque.
NOTE: This object attempts to report the actual measured torque based on the current in the motor windings. However, not all SmartMotor modes of commutation
can successfully measure current-producing torque. Therefore, this command is
only valid in the M-style motor while in MDC commutation mode. Other modes will
report the same data as object 6074h. For details, see Object 6074h: Torque
Demand Value on page 197.
A value of 1000 in this CANopen object is equivalent to T=32767 in the corresponding
SmartMotor command. In other words, CANopen considers 1000 to be full-scale torque,
whereas 32767 is considered to be full-scale torque for the SmartMotor serial commands.
SubIndex
6079h
000
Description
DC Link Circuit Voltage
Low
Limit
High
Limit
00000000h
FFFFFFFFh
Default
PDO
Map
Data
type
Access
Yes
Unsigned
32-bit
Read
Only
This object describes the supplied voltage, in millivolts, measured at the motor's power
inverter.
Similar SmartMotor Commands: RUJA
SubIndex
607Ah
000
Description
Target Position
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Write
This object specifies the target position that the motor should move to in Profile Position (PP)
mode. The units of this object are in encoder counts. When the "relative" bit (bit 6) of the Control Word object (6040h) is set, the value written is added to the position currently demanded.
The target position will be approached according to the Profile Acceleration object (6083h),
Profile Deceleration object (6084h), and Profile Velocity object (6081h).
This object is not immediately accepted when written. It is only accepted when the "New setpoint" bit (bit 4) of the Control Word object (6040h) has a rising transition.
Similar SmartMotor Commands: PT=, PRT=, RPT, RPRT
SubIndex
607Ch
000
Description
Home Offset
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
Yes
Signed
32-bit
Read
Write
This object shifts the origin of the actual position when the Homing (HM) mode is executed.
When HM mode is commanded to begin, the home position is first discovered. The home position is the physical location of the switch or index per the specific homing method. Once
found, that physical location is assigned the negative of the home offset value:
Home position = Home offset
The home position is assigned with home offset. See the following example.
Physical stop +
(slow
speed)
6064h = 1200
Physical stop +
6064h = 0
Physical stop
(Fast speed)
6064h = 1154
Home posi!on
6064h = 0
Physical stop
Star!ng posi!on
Homing method = 18
Incremental encoder (powers up at value = 0)
Home posi!on
Physical stop +
6064h = 0
6064h = 46
Physical stop
Res!ng Posi!on
Physical stop +
Zero posi!on
switch = 1
6064h = 0
Home posi!on
Posi!ve limit
6064h = 600
6064h = 646
Physical stop
Res!ng Posi!on
CiA 402 and ETG guidelines state: Zero posi!on = home posi!on + home oset
0 = Home posi!on + home oset
Home posi!on = home oset
SubIndex
6080h
000
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
FFFFFFFFh
Yes
Unsigned
32-bit
Read
Write
This object specifies the speed limit for the motor in either direction. The units are in revolutions per minute (rpm). If this value is exceeded, the motor will enter a fault condition.
The value is specific to each SmartMotor model. For details, see the Moog Animatics Product
Catalog, which is available on the Moog Animatics website.
Similar SmartMotor Commands: VL=, RVL
SubIndex
6081h
000
Description
Profile Velocity in PP Mode
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
7FFFFFFFh
00000000h
Yes
Unsigned
32-bit
Read
Write*
*Write access is restricted when the remote bit is cleared with the CANCTL(13,0) command.
This object only applies to Profile Position (PP) mode. The position profile will accelerate to
this speed and remain at this speed until deceleration begins for approach of the position target. The units are: (encoder counts per sample period) * 65536.
Also, refer to Object 60FFh: Target Velocity on page 228.
Similar SmartMotor Commands: VT= (NOTE: The value written to 6081h does not appear
when reading back VT.)
SubIndex
6083h
000
Description
Profile Acceleration
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
7FFFFFFFh
00000004h
Yes
Unsigned
32-bit
Read
Write*
*Write access is restricted when the remote bit is cleared with the CANCTL(13,0) command.
This object is the acceleration in the Profile Velocity (PV) mode and the Profile Position (PP)
mode. The units are: (encoder counts per (sample2)) * 65536.
Similar SmartMotor Commands: AT=, ADT=, RAT
SubIndex
6084h
000
Description
Profile Deceleration
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
7FFFFFFFh
00000004h
Yes
Unsigned
32-bit
Read
Write*
*Write access is restricted when the remote bit is cleared with the CANCTL(13,0) command.
This object is the deceleration in the Profile Velocity (PV) mode and the Profile Position (PP)
mode. The units are: (encoder counts per (sample2)) * 65536.
Similar SmartMotor Commands: DT=, ADT=, RDT
SubIndex
6085h
000
Description
Quick Stop Deceleration
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
7FFFFFFFh
7FFFFFFFh
Yes
Unsigned
32-bit
Read
Write
This object is used to stop the drive with the quick stop function, which is commanded from bit
2 of the Control Word object (6040h). The value is the deceleration used to stop the motor if
the quick stop command is given and the Quick Stop Option Code object (605Ah) is set to 2.
The units are: (encoder counts per (sample2)) * 65536.
For additional details, see Object 6040h: Control Word on page 182 and Object 605Ah: Quick
Stop Option Code on page 185.
SubIndex
6087h
000
Description
Torque Slope
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
FFFFFFFFh
0x007A12F4
Yes
Unsigned
32-bit
Read
Write*
*Write access is restricted when the remote bit is cleared with the CANCTL(13,0) command.
This object is the torque mode acceleration/deceleration slope.The units are in torque units
per second. To put this into context, a value of 1000 in this object can ramp the SmartMotor to
full torque in one second.
In SmartMotor commands, the corresponding command is TS=, where the units are different.
In the TS= command, the units are: ("T=" per sample)*65536. Therefore, a value of 1000 in
this CANopen object is equivalent to TS=268427, assuming the default PID rate of 8000 Hz.
For related information, see Object 6071h: Target Torque on page 196.
Similar SmartMotor Commands: TS=, RTS
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
608Fh
000
Number of Entries
00000002h
00000002h
00000002h
No
Unsigned
8-bit
Read
Only
608Fh
001
Encoder Counts
00000000h
FFFFFFFFh
Encoder resYes
olution.
Unsigned
32-bit
Read
Only
608Fh
002
Motor Revolutions
00000000h
FFFFFFFFh
00000001h
Unsigned
32-bit
Read
Only
Description
Yes
This object defines the resolution of the encoder. There are two sub-index objects that
describe the encoder resolution sub-index 001: Encoder Counts and sub-index 002: Motor
Revolutions. To determine the encoder resolution (number of encoder counts per motor revolution), divide the value of sub-index 1 by the value of sub-index 2. The units are in encoder
counts.
SubIndex
6098h
000
Description
Homing Method
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80h
7Fh
Yes
Signed
8-bit
Read
Write
This object selects the method used in Homing (HM) mode. This must be set before starting a
homing process, and it should not be changed while HM mode is actively seeking home.
NOTE: The homing input is I/O 6. For more details on I/O, consult the Class 5 Class
5 SmartMotor Installation and Startup Guide and the SmartMotor Developer's
Guide.
Homing
Method
Value
Description
1, 2
Home position is the first index in the positive direction from the negative limit
switch (1), or in the negative direction from the positive limit switch (2)
(requires that limit switches are enabled).
17, 18
Home position is at the negative limit switch (17) or at the positive limit switch
(18)
(requires that limit switches are enabled).
33, 34
Home position is the location of the first index in the negative direction (33) or
positive direction (34) from the current position.
35
NOTE: Methods 1, 2, 33 and 34 make use of the index of the internal encoder,
which provides a precise location (switches may have some position uncertainty).
The construction of the machine should consider the proximity of the index mark to
the switch threshold. The index location should be at 180 degrees rotation of the
encoder (RRES/2) from the switch threshold. This will ensure that the index mark
does not fall within the uncertainty of the switch transition.
NOTE: Methods 1, 2, 17 and 18 make use of the limit switches. Limit switches must
be enabled and physically wired to the motor. Under these methods, the homing
process will not start if the relevant limit has been disabled.
+LS
-LS
Method 19
Method 19
Method 3
Method 20
Method 4
Method 20
Method 4
Index Pulse
Signal
+LS
Home Switch
Signal
Home Switch
Signal
8
7
10
9
10
8
9
9
10
Index Pulse
Signal
Home Switch
Signal
Positive Limit
Switch
12
14
11
13
11
14
13
12
13
14
11
12
Index Pulse
Signal
Home Switch
Signal
Negative Limit
Switch
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
6099h
000
Number of Entries
00000002h
00000002h
00000002h
No
Unsigned
8-bit
Read
Only
6099h
001
00000000h
7FFFFFFFh
00000000h
Yes
Unsigned
32-bit
Read
Write
6099h
002
00000000h
7FFFFFFFh
00000000h
Yes
Unsigned
32-bit
Read
Write
Description
This object only applies to Homing (HM) mode. The homing profile will accelerate to these
speeds depending on the segment of the homing routine that is in use.
In general, the "speed during search for switch" segment is expected to be faster than the
"speed during search for zero" segment. The "speed during search for zero" segment is selected when the homing mode expects to find the home position with the move it is currently
starting. If the homing mode expects an intermediate switch event before the home position,
then the "speed during search for switch" segment is selected (for example, a limit switch is
tripped before changing direction to find the home index).
The units are: (encoder counts per sample period) * 65536.
SubIndex
609Ah
000
Description
Homing Acceleration
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
7FFFFFFFh
00000004h
Yes
Unsigned
32-bit
Read
Write
This object is the acceleration and deceleration in Homing (HM) mode. The units are: (encoder
counts per (sample2)) * 65536.
SubIndex
60C0h
000
Description
Interpolation Sub-Mode
Select
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
8000h
0000h
0000h
Yes
Signed
16-bit
Read
Write
Interpolation (IP) mode uses the position data object (60C1h) and the interpolation time
period object (60C2h) in one of the following ways:
l
Linear interpolation (default): follows a linear set of positions in the times between the
data points. The velocity during each segment between points is constant. The disadvantage is that the velocity changes abruptly at the data points; the advantage is that
the actual path taken between points is very predictable.
Spline interpolation: uses the current point, the next point, and the previous point to generate curvature of the path over time. This results in a more continuous velocity. Also,
following of curved shapes is typically more accurate between points. However, the disadvantage can be certain cases where an overshoot of position can occur. While this is
generally avoided in the algorithm, extreme cases will overshoot.
The following table shows the possible sub-mode functions. The sub-mode data is read from
the buffer along with the associated data point; the sub-mode applies to the segment between
that point and the previous point.
Value
Function
Spline Interpolation
Linear Interpolation
132767
Reserved
In the following example, the sub-mode will use Spline Interpolation between points 3000 and
4000.
1. Set the Interpolation Sub-Mode Select object (60C0h) to the value 0.
2. Put data in the buffer by writing the following values to sub-index 1 of the Interpolation
Data Record object (60C1h):
a. 2000
b. 3000
3. Set the Interpolation Sub-Mode Select object (60C0h) to the value 3.
4. Put data in buffer by writing the value 4000to sub-index 1 of the Interpolation Data
Record object (60C1h).
5. Set the Interpolation Sub-Mode Select object (60C0h) to the value 0.
6. Put data in the buffer by writing the following values to sub-index 1 of the Interpolation
Data Record object (60C1h):
a. 5000
b. 6000
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
60C1h
000
Number of Entries
00000001h
00000002h
00000002h
No
Unsigned
8-bit
Read
Only
60C1h
001
Data Record 1
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Write
60C1h
002
Data Record 2
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Write
Description
This object is used to enter the position data required in Interpolation (IP) mode. Only subindex 1 is used; sub-index 2 is not used.
When data is written to sub-index 1, it is entered into the buffer. Also, the current values of
the Interpolation User Bits object (2403h), Interpolation Sub-Mode object (60C0h) and the
Interpolation Time object (60C2h) are captured and entered into the buffer with the same
record as the position data.
The value read from this object is the most recent value written to this object it is not an
indication of the motor's current state.
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
60C2h
000
Number of Elements
00h
FFh
02h
No
Unsigned
8-bit
Read
Only
60C2h
001
00h
FFh
01h
Yes
Unsigned
8-bit
Read
Write
60C2h
002
80h
3Fh
FDh (-3)
Yes
Signed
8-bit
Read
Write
Description
This object is used for Interpolated Position (IP) mode. The time written is captured when a
data record is written using sub-index 1 of the Interpolation Data Record object (60C1h). The
time data is read from the buffer along with the associated data point. The time period applies
to the segment between that point and the previous point. After it is started, the interpolation
process reads data points out of the interpolation buffer once per the time period.
The default time index is 3, which gives the time units in milliseconds.
Interpolation
Time Index
Value
128 to 4
0.01 seconds
0.1 seconds
1 second
1 to 127
Not recommended
The representation of the time is a combination of a value (time units) and a decimal shift
(time index):
Time = (time units) * 10(time index) seconds
Resolution
Suggested
Time Index
1 to 255 milliseconds
0.001 seconds
1 to 255
0.010 seconds
1 to 255
0.100 seconds
1 to 40
1 second to 4 seconds
1.000 seconds
1 to 4
Suggested
TimeUnits
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
60C4h
000
Number of Entries
00h
FFh
06h
No
Unsigned
8-bit
Read
Only
60C4h
001
00000000h
FFFFFFFFh
0000002dh
Yes
Unsigned
32-bit
Read
Only
60C4h
002
00000000h
FFFFFFFFh
0000002dh
Yes
Unsigned
32-bit
Read
Only
60C4h
003
Buffer organization
00h
FFh
00h
Yes
Unsigned
8-bit
Read
Only
60C4h
004
Buffer position
0000h
FFFFh
0000h
Yes
Unsigned
16-bit
Read
Only
60C4h
005
04h
04h
04h
Yes
Unsigned
8-bit
Read
Only
60C4h
006
Buffer clear
00h
01h
00h
Yes
Unsigned
8-bit
Write
Only
Description
This object controls some miscellaneous aspects of the Interpolation mode buffer.
The sub-index objects have the following functions:
l
Sub-index 1: Cannot be changed because the SmartMotor buffer cannot be resized. This
object can be ignored.
Sub-index 2: Cannot be changed because the buffer cannot be resized. The value is 2Dh
or 45 (decimal); this is the number of data records that can be held in the buffer. Each
record contains information about the position, time, user bits and Interpolation mode
for that segment.
Sub-index 3:Cannot be set. It reports the value 0, which indicates that the buffer is a
FIFO type data records are written into one end of the buffer and the motor firmware
reads data out of the other end.
Sub-index 6: Cannot be read. To control buffer access, write one of the values from the
following table.
Sub-index 6
Function
2255
Reserved
SubIndex
Description
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
60F4h
000
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Only
This object reports the actual value of the following error. This is the difference between the
demand position and the actual position:
Following Error Actual Value object (60F4h) = Position Demand Value object
(6062h) Position Actual Value object (6064h)
Similar SmartMotor Commands: REA
SubIndex
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
60FBh
000
Number of Entries
00h
FFh
0Ah (10)
No
Unsigned
8-bit
Read
Only
60FBh
001
0000h
FFFFh
From
EEPROM
Yes
Unsigned
16-bit
Read
Write*
60FBh
002
0000h
7FFFh
From
EEPROM
Yes
Unsigned
16-bit
Read
Write*
60FBh
003
0000h
7FFFh
7FFFh
Yes
Unsigned
16-bit
Read
Write*
60FBh
004
0000h
FFFFh
From
EEPROM
Yes
Unsigned
16-bit
Read
Write*
60FBh
005
00h
FFh
01h
Yes
Unsigned
8-bit
Read
Write*
60FBh
006
0000h
FFFFh
From
EEPROM
Yes
Unsigned
16-bit
Read
Write*
60FBh
007
0000h
FFFFh
From
EEPROM
Yes
Unsigned
16-bit
Read
Write*
60FBh
008
From
EEPROM
Yes
Signed
32-bit
Read
Write*
60FBh
009
N/A
60FBh
010
Description
0xFF000000 0x00FFFFFF
0000h
FFFFh
0000h
No
Unsigned
16-bit
Read
Only
00h
FFh
0x00
Yes
Unsigned
8-bit
Read
Write*
*Write access is restricted when the remote bit is cleared with the CANCTL(13,0) command.
This object contains manufacturer-specific parameters for the drive controller. For the
SmartMotor, this is primarily used to set the PID parameters (see the following table).
NOTE: The PID parameters do not take effect until sub-index 10 is written.
For more details on these PID parameters, see the SmartMotor Developer's Guide.
Similar SmartMotor Commands: KP=, RKP, KI=, RKI, KL=, RKL, KD=, RKD, KS=, RKS,
KV=, RKV, KA=, RKA, KG=, RKG, F
SMI
Command
PID
Parameter
Function
RKP, KP=
KP
Proportional coefficient
RKI, KI=
KI
Integral coefficient
RKL, KL=
KL
Integral limit
RKD, KD=
KD
Derivative coefficient
RKS, KS=
KS
RKV, KV=
KV
RKA, KA=
KA
RKG, KG=
KG
Gravitational offset
Reserved
9
10
F (no equal
sign)
SubIndex
60FCh
000
Description
Position Demand Internal
Value
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Only
This object reports the position calculated by the motion profile; it takes into account the acceleration and velocity targets. The value is in units of encoder counts.
When the motor is inactive or in torque mode, the value reported is simply the current position.
Similar SmartMotor Commands: RPC
Object Description
INDEX
60FC
Name
Object Code
Variable
Data Type
INTEGER32
Category
Optional
Entry Description
Access
RO
PDO Mapping
Yes
Default Value
0x00
Lower Limit
0x80000000
Upper Limit
0x7FFFFFFF
Unit
SubIndex
60FDh
000
Low
Limit
High
Limit
00000000h
FFFFFFFFh
Description
Digital Inputs
Default
PDO
Map
Data
type
Access
Yes
Unsigned
32-bit
Read
Only
This object reports the current state of the digital input signals from the I/Oconnector(s).
For details, see the table corresponding to your motor model:
Class 5 D-style motor
Bit
Function
Not supported
Not supported
415
Reserved
16
17
18
19
20
21
22
23-31
Reserved
Function
Not supported
Not supported
415
Reserved
16
17
18
19
20
21
22
23
24
25
26
27
28
29-31
Reserved
SubIndex
60FEh
000
60FEh
001
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
Number of Entries
00000001h
00000002h
00000001h
No
Unsigned
8-bit
Read
Only
Physical Outputs
00000000h
FFFFFFFFh
Yes
Unsigned
32-bit
Read
Write
Description
This object allows the digital outputs to the I/O connector(s) to be set or cleared.
NOTE: There is no support for sub-index 2.
For details, see the table corresponding to your motor model:
Class 5 D-style motor
Bit
0
1-15
Function
Brake Set - Not Supported
Reserved
16
17
18
19
20
21
22
23
24-31
Reserved
Function
Brake Set - Not Supported
Reserved
16
17
18
19
20
21
22
23
24
25
26
27-31
Reserved
SubIndex
60FFh
000
Description
Target Velocity
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
80000000h
7FFFFFFFh
00000000h
Yes
Signed
32-bit
Read
Write*
*Write access is restricted when the remote bit is cleared with the CANCTL(13,0) command.
This object only applies to Profile Velocity (PV) mode. The velocity profile will accelerate to
the specified speed and remain at that speed until a stop is commanded or a new speed is specified.
Writing this value takes effect immediately in PV mode, assuming the motor is already in the
operation enabled state through Control Word object (6040h). The units are: (encoder counts
per sample period) * 65536.
Also, refer to Object 6081h: Profile Velocity in PP Mode on page 204.
Similar SmartMotor Commands: VT=, RVT
SubIndex
6402h
000
Description
Motor Type
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
0000h
FFFFh
000Ah
No
Unsigned
16-bit
Read
Only
This object reports the type of motor connected to the controller. The value of this object does
not change. It always reports 000Ah (10 decimal), which represents a "Sinusoidal PM BL
motor" (per the CiA 402 specification).
SubIndex
6502h
000
Description
Supported Drive Modes
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
FFFFFFFFh
0000006Dh
No
Unsigned
32-bit
Read
Only
This object reports a value that corresponds to a bit field indicating the operational modes supported by the drive. The value reports as the default value listed above and does not change.
Bit
Bit relating
to default value
Mode
1Supported
0Not supported
Velocity (VL)
1Supported
1Supported
Torque (TQ)
0Not supported
Reserved
1Supported
Homing (HM)
1Supported
Interpolation (IP)
0Not supported
0Not supported
0Not supported
1015
00 0000
Reserved
1631
Manufacturer specific
SubIndex
67FFh
000
Description
Single Device Type
Low
Limit
High
Limit
Default
PDO
Map
Data
type
Access
00000000h
FFFFFFFFh
00020192h
No
Unsigned
32-bit
Read
Only
This object specifies the type of device (profile) for objects in the range 6000h to 67FFh. Refer
to the following table the possible values and their corresponding functions.
Bit
015
Value
Function
DS402 device
1623
02h (2 decimal)
Servo drive
2431
Reference Documents
Reference Documents
The following CiAspecifications were referenced for this guide:
l
IEC 61800-7-1 (An abstracted view of motion control over a variety of protocols)
IEC 61800-7-301 (Describes the default settings of certain objects in the 402 specification)
PN: SC80100001-001
Rev. E