BEI Ideacod Encoder User Manual
BEI Ideacod Encoder User Manual
CONTENTS
1. Introduction ............................................................................................................................................. 3
1.1 Absolute rotary encoder...................................................................................................................... 3
3
1. Introduction
This manual describes the implementing and configuration of an absolute rotary encoder with
CANopen interface. The device fullfills the requirements of a CANopen device regarding the
device specification DS406 of the CANopen user group.
The basic principle of an absolute rotary encoder is the optical sampling of a transparent code
disc which is fixed with the driving shaft.
The absolute rotary encoder has a maximum resolution of 8192 steps per revolution (13 Bit). The
Multi-Turn version can detect up to 65536 revolutions (16Bit). Therefore the largest resulting
resolution is 29 Bit = 229 = 536.870.912 steps. The standard Single-Turn version has 13 Bit, the
standard Multi-Turn version 29 Bit.
Open functions. The following modes can be programmed and enabled or disabled:
- RTR Message (Polled mode)
- Cyclic Mode
- Sync Mode
The general use of absolute rotary encoders with CAN-Bus interface using the CAN Open
protocol is guaranteed.
CAN stands for Controller Area Network and was developed by the company Bosch for
applications within the automobile area. In the meantime CAN has become increasingly used for
industrial applications. CAN is a multi-masterable system, i.e. all users can access the bus at any
time as long as it is free. CAN doesn’t operate with addresses but with message identifiers. Access
to the bus is performed according to the CSMA/CA principle (carrier sense multiple access with
collision avoidance), i.e. each user listens if the bus is free, and if so, is allowed to send messages.
If two users attempt to access the bus simultaneously, the one with the highest priority (lowest
identifier) receives the permission to send. Users with lower priority interrupt their data transfer and
will access the bus when it is free again. Messages can be received by every participant.
Controlled by an acceptance filter the participant accepts only messages that are intended for
it.
CANopen
Transmission Technology: Two-core cable
Baud rates: 10 kBaud up to 1 MBaud
Participants: maximum 127
Cable Length: 30 m for 1 MBaud
1000 m for 20 kBaud
The data communication is done via message telegrams. In general, telegrams can be split in a
COB-Identifier and up to 8 following bytes. The COB-Identifier, which determines the priority of the
message, is made from the function code and the node number.
The node number is uniquely assigned to each user. The function code varies according to the
type of message transmitted:
PDOs (Process Data Objects) are needed for real time data exchange. Since this messages
possess a high priority, the function code and therefore the identifier are low. SDOs (service data
objects) are necessary for the bus node configuration (e.g. transfer of device parameters).
Because these message telegrams are tranferred acyclicly (usually only while powering up the
network), the priority is low.
BEI IDEACOD rotary encoders with CANopen interface support all CANopen functions. The
following operating modes can be programmed:
- Cyclic Mode:
The position value is written cyclically (interval adjustable) to the bus
- Sync mode:
After receiving a sync message by the host, the encoder answers with the current
process value. If a node is not required to answer after each sync message, a parameter
sync counter can be programmed to skip a certain number of sync messages before
answering again
The communication concept can be described similar to the ISO-OSI Reference Model:
CANbus
The communication model* supports synchronous and asynchronous messages. With respect to
the functionality four different message objects are provided:
1.4 Definitions
1.5 Troubleshooting
Problem:
During the transmission of the position value occasional malfunctions occurs.
Possible solution:
Check, if the last bus node has switched on the terminal resistor.
Problem:
The bus load is too high in case of too much error frames.
Possible solution:
Check if all bus node has the same baudrate. If one node has another baudrate error frames
are produced automatically.
Installation hints
Both the cable shielding and the metal housings of encoders and subsequent electronics have a
shielding function. The housing must have the same potential and be connected to the main
signal ground over the machine chassis or by means of a separate potential compensating line.
Potential compensating lines should have a minimum cross section of 6 mm2.
Do not lay signal cable in the direct vicinity of interference sources (air clearance > 100 mm (4
in.).
A minimum spacing of 200 mm (8 in.) to inductors is usually required, for example in switch-mode
power supplies.
Configure the signal lines for minimum length and avoid the use of intermediate terminals.
In metal cable ducts, sufficient decoupling of signal lines from interference signal transmitting
cable can usually be achieved with a grounded partition.
2. Device Configuration
Data Transmission
Data is transmitted in a CANopen network in the form of messages. These messages basically
consist of a COB-ID and 8 data bytes.
10 9 8 7 6 5 4 3 2 1 0
Function code Node number
X X X X X X X X X X X X free, to be selected
The COB-ID only determines the message object. It consists of a function code, which identifies
the message class and the node number, which is the absolute encoder address. The node
number is fixed using the CAN interface.
The following function codes are available (rx and tx as viewed by the master):
Function code
Object COB-ID result Hex. Priority class*
(binary)
NMT 0000 0 0
The service data objects correspond to the standards of the CiA. It is possible to access an object
via index and subindex. The data can be requested or where applicable written into the object.
COB-ID
Index / Sub-index
Data is transmitted solely using objects referenced by index. The objects are simple or composed
type. In this case, the index associated to the composed object will be subdivided into several
[Link] number of sub-index is specified into subindex 0, it can be from 1 to 254. Each
object is described into a object dictionary.
SDO examples
Process data objects are used for real time data exchange for process data :position. PDOs can
be transmitted synchronously or cyclically (asynchronously). The encoder supports the PDO1
and the PDO2. Both PDOs supply the current position of the encoder and are defined in the
objects 1800h,1801h, 1A00h, 1A01.
Synchronous
In order to transmit the process data synchronously, a value between 1 and F0h (=240) must be
written into the object 1800h / 1801h Subindex 2. If the value is 3, the PDO is transmitted on every
third sync telegram (if the value 1 is entered, transmission takes place on every sync telegram)
In synchronous operation, the PDO is requested by the master via the Sync telegram (COB-ID =
80h).
Cyclical (asynchronous)
If you wish the PDOs to be transmitted cyclically, the value FEh must be written into the object
1800h / 1801h Subindex 2. In addition, the cycle time in milliseconds must be entered in the same
object subindex 5. The entered time is rounded off to 1 ms. If the value is stored for 0 ms, the PDOs
are not transmitted. The function is switched off.
The COB-ID contains the node number and the corresponding PDO(tx). By default, the sended
process value use the COB-ID 0180h+Node-ID and, in response to the SYNC message, use the
COB-ID 0280h+Node ID.
The PDO COB-ID are defined in the object 1800h/1801h subindex 1.
3. Operational mode
Principle The absolute rotary encoder accesses the CAN network less one second after powerup
in pre-operational mode.
Init
Following initalization, the encoder logs on to the CAN bus with a BootUp message. The encoder
then goes automatically to the pre-operational mode status.
The COB ID of the BootUp message is made up of 700h and the node ID.
COB-ID Byte 0
700h+Node ID 00
Pre-operational mode
In the pre-operational mode, SDOs can be read and written.
Operational mode
In the operational mode, the encoder transmits the requested PDOs. In addition, SDOs can be
read and written.
Stopped mode
In the stopped mode, only NMT communication is possible. No SDO parameters can be read or
set.
After Reset, the absolute rotary encoder accesses the bus in pre-operational mode.
Mode: Preoperational
To set a node to pre-operational mode, the master must send the following message:
Mode: Start
For 1 or all the nodes to switch to operational mode, the master sends the following message:
Mode: STOP
For 1 or all the nodes to switch off operational mode, the master sends the following message:
Introduction This section lists the objects relating to the communication. Each object, with all its
technical characteristics, is described according to the CANopen standard.
Format:
U8 : Unsigned 8 bits
U16 : Unsigned 16 bits
U32 : Unsigned 32 bits
Access:
RO : Read Only
RW : Read Write
Object
Name Format Access Default Save Description
SubIndex
multiturn
Encoder type: Bytes 0,1
1000 00020196h
DeviceType U32 RO 0001:Monoturn 0002:Multiturn Profil
0 monoturn
Bytes 2,3: 0196h=406
00010196h
1001 Bit0 = Generic error
ErrorRegister U8 RO 00h
0 Bit4 = Communication error
100D
LifeTimeFactor U8 RW 00h Yes Multiplication of Guard time
0
1010
LargestSupportedSubindex U8 RO 01h No. of save possibilities 1
0
1010
SaveAllParameters U32 RW 00000001h ="evas " (0x65766173) to save
1
1011
LargestSupportedSubindex U8 RO 01h No. of restore possibilities = 1
0
1011
RestoreAllDefaultParameters U32 RW 00000001h ="daol" (0x64616F6C) to load
1
1016
Number of entries U8 RO 01h
0
1017
Producer HeartBeat Time U16 RW 0000h Yes Producer heartbeat time in ms
0
1018
LargestSupportedSubindex U8 RO 04h
0
1018
Vendor ID U32 RO 00000184h Vendor no. issued by CiA
1
1018
Product code U32 RO 354D4850h
2
1018
Revision number U32 RO 00010000h Current revision number
3
1018
Serial number U32 RO xxxxxxxxh Unique consecutive serial number
4
1200
Number of entries U8 RO 02h
0
1200
COB-ID Client -> Server U32 RO 00000601h 600h+Node ID
1
1200
COB-ID Server -> Client U32 RO 00000581h 580h+Node ID
2
Transmit PDO1
1800
Communication Parameter
1800
NrOfEntries U8 RO 05h
0
1800
COB-ID U32 RW 00000181h Yes PDO ID = 180h + node ID
1
1800
TransmissionType U8 RW FEh Yes FEh=User defined, cyclical
2
minimum interval for PDO
1800
InhibitTime U16 RW 0000h Yes transmission
3
multiple of 100µs.
1800
Event Timer U16 RW 0000h Yes Cycle time in ms
5
Transmit PDO2
1801
Communication Parameter
1801
NrOfEntries U8 RO 05h
0
1801
COB-ID U32 RW 00000281h Yes PDO ID = 280h + node ID
1
1801
TransmissionType U8 RW 01h Yes 01h= synchronous operation
2
minimum interval for PDO
1801
InhibitTime U16 RW 0000h Yes transmission
3
multiple of 100µs.
1801
Event Timer U16 RW 0000h Yes Cycle time in ms
5
1A00
NrOfEntries U8 RO 01h
0
mapping for the PDO1 the device is
able to transmit
1A00 b0..b7 : object length
Mapped Object U32 RO 60040020h
1 20h = Unsigned32
b8..b15 : sub-index (00h)
b16..b31 : Index (6004h)
1A01
NrOfEntries U8 RO 01h
0
mapping for the PDO2 the device is
able to transmit
1A01 b0..b7 : object length
Mapped Object U32 RO 60040020h
1 20h = Unsigned32
b8..b15 : sub-index (00h)
b16..b31 : Index (6004h)
Description This object supports the saving of parameters in non volatile memory.
In order to avoid storage of parameters by mistake, storage is only executed when the specific
signature “save” is written to the Sub-Index
Characteristics The characteristics of this object are outlined in the following table:
Number of sub-
0 UNSIGNED8 1 Ro
indexes
Operation To save the parameters, the "save" character string (6576 6173h) must be written
in the corresponding index:
Information on storage functionality is read from a sub-index. The result obtained, 0000 0001h,
indicates that the module saves parameters only when it receives the command to do so.
Characteristics The characteristics of this object are outlined in the following table:
Number of sub-
0 Unsigned8 1 Ro
indexes
Note: The restoration of parameters will only be taken into account after a power up or NMT Reset.
After the power on or the NMT Reset, the transmission Rate and the node number are the default
values
Operation To restore the parameters, the corresponding index must be written in the "load"
character string (6461 6F6Ch):
Information on whether it is possible to restore the module's factory parameters is read from a
sub-index. The result obtained, 00000001h, indicates that the factory parameters can only be
restored when the module receives the command to do so.
4 Not available
Transmission mode
The PDO transmission mode can be configured as described in the table below.
COB-ID Structure
For "Transmit PDOs", the "inhibit time" for PDO transmissions can be entered in this 16 bit field. If
data is changed, the PDO sender checks whether an "inhibit time" has expired since the last
transmission. A new PDO transmission can only take place if the "inhibit time" has expired. The
"inhibit time" is useful for asynchronous transmission (transmission mode 254, 255), to avoid
overloads on the CAN bus. The "inhibit time" is a multiple of 100µs of object 1800sub03/1801sub03.
4 Not available
Object
Name Format Access Default Save Description
SubIndex
Description To measure the rotational speed of the encoder shaft, the difference between two
physical (unscaled) values of position with a time period of 5 ms is calculated. The difference
between the two values will be read out as a signed 16 bits value (positive value = clockwise
direction of rotation ).
The output of the speed by means of PDO is made possible by setting the desired PDOs to type 2
(see object 2005h).
This object helps to determine the types for PDO1 and PDO2.
The COB ID and the transfer type for the PDOs is determined in the objects 1800h and1802h.
With the software version = 1.01, this value cannot be stored in the EEPROM and has to be
transferred again after each activation (Reset or Power-On).
With the software version >=1.02, this value can be stored in the EEPROM.
Note: After setting the baud rate or the node number, the parameters must be saved in the
EEPROM with “StoreParameters” (Object 1010h) and the new values are set valid after the device
is reset (NMT reset node ) or power cycled.
Introduction This section lists the encoder-specific objects. Each object, with all its technical
characteristics, is described according to the CANopen standard.
Object
Name Format Access Default Save Description
SubIndex
Bit0 = Position increasing
0 CW
6000 1 CCW
Operating Parameters U16 RW 0004h Yes
0 Bit2 = 0 Scaling function
disabled 1 Scaling
function enabled
6001 Resolution in steps /
Measuring Units per Revolution U32 RW 00002000h Yes
0 revolution: 13 bits
Multi: Overall measuring
6002 20000000h range in increments
Total Measuring Range U32 RW Yes
0 Mono: 29Bit = multiturn
00002000h 13Bit = singleturn
6003
Preset Value U32 RW 00000000h Yes Preset in increments
0
6004
Position Value U32 RO 00000ECBh Position value
0
6300
NrOfAvailableChannel U8 RO 01h only CAM1
0
status bit of the cam in
a cam channel
6300
Cam state channe l 1 U8 RO 00h Bit0 = CAM1
1
0 = CAM Inactive
1 = CAM active
6301
NrOfAvailableChannel U8 RO 01h only CAM1
0
Bit0 = CAM1
0 = cam disable
6301
Cam enable channel 1 U8 RW 00h Yes 1 = cam state
1
calculated by the
device
6302
NrOfAvailableChannel U8 RO 01h
0
Bit0 = CAM1
0 = cam state not
6302
Cam polarity channel 1 U8 RW 00h Yes inverted
1
1 = cam state not
inverted
6310
NrOfAvailableChannel U8 RO 01h only CAM1
0
switch point for the
6310
Cam1 low limit channel 1 U32 RW 00000000h Yes lower limit setting for
1
CAM1
6320 Cam1 high limit
6320
NrOfAvailableChannel U8 RO 01h only CAM1
0
switch point for the
6320
Cam1 high limit channel 1 U32 RW 00000000h Yes higher limit setting for
1
CAM1
Bit0 = Position increasing
0 CW
6500 1 CCW
Operating Status U16 RO 0004h
0 Bit2 = 0 Scaling function
disabled 1 Scaling
function enabled
6501 Max. Resolution in steps
Single Turn Resolution U32 RO 00002000h
0 / revolution: 13 bits
Number of
distinguishable
6502 Multi FFFFh
Number of Revolutions U16 RO revolutions
0 Mono 0001h
Multiturn = FFFFh
Monoturn = 1
6503
Alarms U16 RO 0000h Alarms
0
6504
Supported Alarms U16 RO 0000h Supported Alarms
0
6505
Warnings U16 RO 0000h Warnings
0
6506
Supported Warnings U16 RO 0000h Supported Warnings
0
Byte 0,1:Profile version
6507 =3.1 = 0301h
Profile & Software Version U32 RO 01020301h
0 Byte 2,3: Software
version = 1.02 = 0102h
6508
Operating Time U32 RO FFFFFFFFh not used
0
650A
NrOfEntries U8 RO 03h
0
650A Manufacturer_Min_Position_Val
U32 RO 00000000h Minimum position value
2 ue
Multi:
650A Manufacturer_Max_Position_Va 1FFFFFFFh
U32 RO Maximum position value
3 lue Mono:
00001FFFh
650B Linked with serial
Serial Number U32 RO
0 number object 1018-4
Presentation The code sequence (Complement) can be selected as the operating parameter.
CODE SEQUENCE: The code sequence defines whether increasing or decreasing position values
are output when the encoder shaft rotates clockwise or counterclockwise as seen on the shaft.
SCALING FUNCTION CONTROL: With the scaling function the encoder numerical value is
converted in software to change the physical resolution of the encoder.
The measuring units per revolution object (6001h) and total measuring range in measuring units
object (6001h) are the scaling parameters. The scaling function bit is set in the operating
parameters. If the scaling function bit is set to zero, the scaling function is disabled.
Presentation The Measuring Units per revolution parameter is used to program the required
number of steps per revolution. Choose a value between 2 and 8192:
Presentation This parameter is used to program the required number of measuring units from the
global measuring range. This value must not exceed that of the total resolution of the absolute
rotary encoder
Total measuring range (total resolution) = Number of revolutions x ·Measuring Units per resolution
Presentation The preset value is the required position value to be reached at a certain physical
location of the axis. The position value is fixed as being the process value required by the
presetting of the parameters.
To avoid execution time errors, the preset value must not exceed the total measuring range (total
resolution) -1 of the parameters.
Cyclic mode The absolute rotary encoder transmits the current process value cyclically – without
being polled by the host. The cycle time can be programmed in milliseconds for values between
1 ms and 65535 ms. (For example: 64h = 100 ms).
This parameter is identical “Event Timer” of the transmit PDO1 Index 1800h, Sub Index 05h.
See description of the object “Transmit PDO1” (1800h) for the use of the cyclic timer.
If the value is 0, the cyclic timer is disabled and the position is never sent.
Note: After setting the encoder parameters, they must be saved in the EEPROM with
“StoreParameters” (Object 1010h). If the encoder parameters are not saved, the configuration will
be lost at the next power up.
Description This object contains the operating status of the encoder. It provides information on
the encoder internal parameters.
Values The values of this object are outlined in the following table:
4…11 Reserved
Manufacturer specific
12 Not used
alarm
Manufacturer specific
13 Not used
alarm
Manufacturer specific
14 Not used
alarm
Manufacturer specific
15 Not used
alarm
Sub
CMS Index Default value Value range Data length Access
Index
SDO 6500h 00h - - Unsigned 16 ro
Description This object indcates the number of steps per revolution according to the position of
the encoder. The maximum encoder resolution is 8192.
Sub
CMS Index Default value Value range Data length Access
Index
SDO 6501h 00h 2000h - Unsigned 32 ro
Description This object indicates the number of revolutions that the encoder can execute. The
maximum number of revolutions of the encoder is 65536.
Sub
CMS Index Default value Value range Data length Access
Index
SDO 6502h 00h FFFFh - Unsigned 16 ro
Description This object contains the various alarm messages. An alarm will be displayed if a
malfunction of the encoder cause a position error. The alarm bit remains enabled until the alarm
is cleared and the encoder is able to provide a correct position value.
Values The values of this object are outlined in the following table:
Description This object indicates if the tolerances of certain encoder internal parameters have
been exceeded
Values The values of this object are outlined in the following table:
6…11 Reserved
Manufacturer specific
12 N/A N/A
warning
Manufacturer specific
13 N/A N/A
warning
Manufacturer specific
14 N/A N/A
warning
Manufacturer specific
15 N/A N/A
warning
Description This object indicates the encoder hardware profile version and software version.
Description This object indicates the manufacturer-specific offset value, as well as the minimum
and maximum position values.
The offset value is stored in sub-index 1.
The minimum and maximum position values are stored in sub-indices 2 and 3 respectively.
Characteristics The characteristics of this object are outlined in the following table:
Manufacturer
1 Unsigned 32 Oh Ro
offset value
Manufacturer
2 Unsigned 32 Ro
minimum value
Manufacturer
3 maximum position Unsigned 32 ro
value
Encoder Cam1 :
Low limit of CAM1 : Object “Cam1_low_limit_channel_1” (Index 6310h Sub Index 01h)
High limit of CAM1 : Object “Cam1_high_limit_channel_1” (Index 6320h Sub Index 01h)
Polarity of CAM1 : bit0 Index 6302h Sub Index 01h
If the polarity bit is set to 1, the cam state of an active cam shall signal by setting the related cam
state bit to zero. In the other case the cam state of the related cam shall not be inverted.
Cam state
register
(6300h -01h)
Nota: The ESD can be downloaded free of charge from our Homepage [Link].
We do not assume responsibility for technical inaccuracies or omissions. Specifications are subject
to change without notice.
Appendix
Software for the compatibility with with the old encoders SHM5/SHU9/CHU9/MHM5
Do not use this version for the new designs only to replace old encoders.
EDS File: [Link]
Device Name (0x1008) = “POSI+ SF” for this version and the following objects are supported
See the SHM5 / MHM5 Manual for the complete description of these objects.
1010 StoreParameters