B CANopen-10-ENG V2.20
B CANopen-10-ENG V2.20
Bus controller
User's manual
1 Technical description............................................................................................... 5
1.1 X20 bus controller...........................................................................................................................................5
1.1.1 Order data................................................................................................................................................. 5
1.1.2 Technical data........................................................................................................................................... 6
1.1.3 LED status indicators................................................................................................................................ 7
1.1.4 Operating and connection elements......................................................................................................... 8
1.1.5 CAN bus interface..................................................................................................................................... 8
1.1.6 Node number switch..................................................................................................................................8
1.2 X67 bus controller...........................................................................................................................................9
1.2.1 X67 - Order data....................................................................................................................................... 9
1.2.2 X67 - Technical data................................................................................................................................. 9
1.2.3 LED status indicators.............................................................................................................................. 12
1.2.4 Operating and connection elements....................................................................................................... 13
1.2.5 Fieldbus interface.................................................................................................................................... 13
1.2.6 Node number switch................................................................................................................................13
2 Basic information....................................................................................................14
2.1 Configuration options.................................................................................................................................... 14
2.2 I/O configuration............................................................................................................................................15
2.3 Startup (booting) procedure.......................................................................................................................... 16
2.3.1 Blink codes during startup.......................................................................................................................16
2.3.2 Forcing a boot from the factory default sector........................................................................................16
2.4 Node number switch..................................................................................................................................... 16
2.4.1 Setting the transfer rate.......................................................................................................................... 17
2.4.2 Automatic transfer rate detection............................................................................................................ 17
2.4.3 Saving the automatic configuration......................................................................................................... 18
2.4.4 Deleting parameters................................................................................................................................ 18
3 CANopen communication...................................................................................... 19
3.1 Device profiles...............................................................................................................................................19
3.2 Object dictionary........................................................................................................................................... 19
3.3 Service and process data objects................................................................................................................ 19
3.4 PDO Mapping Tool........................................................................................................................................19
3.4.1 Layout...................................................................................................................................................... 20
[Link] Saved automatic configuration...........................................................................................................20
[Link] Default configuration at startup..........................................................................................................20
3.4.2 PDO mapping.......................................................................................................................................... 21
3.4.3 6000er Object List................................................................................................................................... 21
3.4.4 Default PDO mapping............................................................................................................................. 21
3.4.5 Default 6000er Object List...................................................................................................................... 21
3.4.6 Application............................................................................................................................................... 21
1 Technical description
1) LED "MS" is a green/red dual LED. Several red blinking signals are displayed immediately after the device is switched on. These are startup messages,
however, and not errors.
2) The red "MS" LED can be cleared by writing to object 0x3001-Sub 0xA.
Quad flash
200 200 200 200 200 200 200 1000
Triple flash
200 200 200 200 200 1000
Double flash
200 200 200 1000
Single flash
200 1000
Blinking
200 200
3
Flashing
500
Green/Red
Flickering
50
All times in ms
CANopen connection
The interface is a 5-pin multipoint connector. Terminal block 0TB2105 must be ordered separately.
Interface Pinout
Terminal Function
1
1 CAN⊥ CAN ground
2 CAN_L CAN low
3 SHLD Shield
5 4 CAN_H CAN high
5 NC
5-pin male multipoint connector
Quad flash
200 200 200 200 200 200 200 1000
Triple flash
200 200 200 200 200 1000
Double flash
200 200 200 1000
Single flash
200 1000
Blinking
200 200
3
Flashing
500
Green/Red
Flickering
50
All times in ms
Digital inputs/outputs 1 to 8
The bus controller is connected to the fieldbus using pre-assembled cables. The connection is made using M12
circular connectors.
Connection Pinout
Pin Name
3 A 1 Shield1)
2 Not used
3 CAN⊥
2
4 CAN_High
4 5 CAN_Low
1 1) Shield also provided by threaded insert in module.
5
A → A-keyed (male), input
2 Basic information
The B&R CANopen bus controller enables the modular B&R I/O systems X20, X67 and XV to be integrated in
CANopen. Up to 253 I/O modules can be connected to the bus controller using the X2X system bus from B&R.
The B&R CANopen bus controller description is made available to the master in EDS files. This text file is a general,
generic description of a CANopen node (bus controller + I/O modules). These EDS files can be downloaded from
the B&R website [Link] in the download section for the bus controller or generated with the
Automation Studio V4.3 or later; they must then be imported into the respective master environment.
During bus controller startup, the connected I/O modules are detected and their I/O data points are mapped in a
corresponding I/O mapping.
Information:
Node number setting 0x92 is used to save automatically generated configurations. See "Saving the
automatic configuration" on page 18.
This function is available starting with firmware V0001.0107.
Information:
The bus controller only creates the configuration up to the first empty slot or non-started I/O module.
Example
10 I/O modules are connected to the bus controller. When the bus controller is started up, all I/O modules are
supplied except for I/O module 5 (e.g. because the emergency stop button has been pressed).
In this case, the bus controller only registers I/O modules 1 to 4, starts them up, reads the I/O data points, references
the device profile objects and creates the PDO mapping. All other I/O modules are ignored.
Custom configuration
When using a custom configuration, B&R Automation Studio V4.3 or later provides selection menus and wizards
for determining which function model will be used, which cyclic input and output data will be registered and which
values for the module configuration will be written to the I/O module by the bus controller when the module is started.
Automation Studio generates a DCF or EDS file suitable for all of the hardware nodes (module IDs, configuration
values, etc.). For CANopen environments that do not support DCF or EDS imports, an HTML file is also generated
that contains the mapping, configuration values, etc. This enables the user to look up the necessary SDO instruc-
tions and to implement them in their own CANopen environment.
Changes can still be made to the module parameters during operation by using CANopen objects "I/O module
objects" on page 34.
The boot loader indicates the following states on the "MS" module status LED:
Boot from 0 500 ms >200 ms ... LED controlled by firmware
Boot from upgrade 50 ms 200 ms 500 ms >200 ms ... LED controlled by firmware
This is necessary if firmware has been stored in the upgrade sector and operates the watchdog correctly but does
not allow the booting process to occur without errors. The boot loader would start the defective firmware, no longer
providing a way to perform a subsequent update.
To force a boot from the factory default sector, one of the network address switches must be moved continuously
during booting. This is detected by the boot loader, which causes the "MS" module status LED to begin flashing
red quite very rapidly. After 1 second passes in which the network address switch is no longer changed, the bus
controller restarts using the factory default boot sector and the current value of the network address switches.
High Low
The bus controller will detect the transfer rate automatically by default. Switch positions 0x80 to 0x88 can be used
to set a fixed transfer rate, or 0x89 can be used to enable automatic transfer rate detection.
Switch position Transfer rate
0x80 1000 kbit/s
0x81 800 kbit/s
0x82 500 kbit/s
0x83 250 kbit/s
0x84 125 kbit/s
0x85 100 kbit/s
0x86 50 kbit/s
0x87 20 kbit/s
0x88 10 kbit/s
0x89 Automatic transfer rate detection
After startup, the bus controller goes into "Listen only" mode. This means the bus controller behaves passively
on the bus and only listens.
The bus controller attempts to receive valid objects. If receive errors occur, the controller switches to the next
transfer rate in the lookup table.
If no objects are received, all transfer rates are tested cyclically. This procedure is repeated until valid objects are
received.
Lookup table
The bus controller tests the transfer rate according to this table. Beginning with the starting transfer rate
(1000 kbit/s), the controller switches to the next lower transfer rate. At the end of the table, the bus controller
restarts the search from the beginning.
Transfer rate
1000 kbit/s
800 kbit/s
500 kbit/s
250 kbit/s
125 kbit/s
100 kbit/s
50 kbit/s
20 kbit/s
10 kbit/s
Node number position 0x92 can be used to save automatically generated configurations. This makes it possible to
work with a standardized configuration without having to adapt the application to changes associated with service
work or different development stages for example.
1. Switch off the power supply to the bus controller.
2. Set the node number to 0x90.
3. Switch on the power supply to the bus controller.
4. Wait until LED "MS" flashes green.
5. The node number switch must be set to 0x00 and then back to 0x90 within this time window of 5 seconds
(turn the upper switch or switch "High").
6. Wait until LED "MS" blinks with a red double flash (parameters have been deleted).
7. Switch off the power supply to the bus controller.
8. Set the node number to 0x92.
9. Switch on the power supply to the bus controller.
[Link] until LED "MS" flashes green.
11. The node number switch must be set to 0x02 and then back to 0x92 within this time window of 5 seconds
(turn the upper switch or switch "High").
[Link] until LED "MS" blinks with a red quad flash (parameters have been saved).
[Link] off the power supply to the bus controller.
[Link] the desired node number (0x01 - 0x7F).
[Link] on the power supply to the bus controller.
[Link] bus controller boots with the set node number and automatic transfer rate detection.
Information:
A mapping tool for decoding the saved PDO mapping is available in the Download section of the B&R
website ([Link]).
Information:
X20BC0043-10: This function is available in hardware version E0 or later or firmware V0001.0107 or
later.
3 CANopen communication
3.4.1 Layout
In the layout view, the X2X configuration can be arranged according to the corresponding bus controller. The bus
controller is selected in the table. Slot 0 is reserved for the bus controller and the corresponding X20 power supply
or X67 DM mixed module is automatically set to slot 1. All subsequent modules can be chosen from the selection
menu.
After the desired configuration has been set up, the corresponding mapping can be created. To do this, the auto-
matically generated mapping is opened by clicking on the respective button. It is possible to choose between the
saved automatic configuration and the default configuration at startup.
The entire layout can be deleted using "Reset layout" and the bus controller user's manual can be opened using
"Open manual".
Information:
The PDO mapping contents are absolutely necessary for proper configuration of the bus controller
and essential for functioning communication.
These buttons show the resulting mapping, which is identical to the "automatic bus controller configuration" with
node number switch setting 0x92 (firmware V0001.0107 or later).
By setting the object 0x3000 subindex 0x11 to TRUE, the current module configuration will be saved and used as
a template for future boot procedures (hardware version E0 or firmware V0001.0107 or later)
These buttons show the resulting mapping, which is identical to the automatic I/O configuration (see "I/O config-
uration" on page 15).
Information:
This mapping is based on the prerequisite that all connected X2X modules are already supplied with
power when the bus controller is started up or that no empty slots are available.
The PDO mapping listed on this worksheet is used for the saved automatic configuration (corresponds to "node
number switch setting 0x92" on page 16).
The mapping is divided up between TxPDOs and RxPDOs. Bytes are ordered according to the little-endian prin-
ciple. The assigned COB IDs can also be read.
On this worksheet, all 6000er objects are listed according to analog/digital inputs and outputs. Corresponding
objects are assigned to each data point based on the module.
Every I/O module that conforms to the CANopen standard can be defined using objects from the common object
directory. Entries in the object directory are universally valid and are implemented according to the functionality
of each particular module.
The following indexes are listed on the worksheet:
Objectindex Description
0x6000 Reading an 8-bit input
0x6200 Writing an 8-bit output
0x6401 Reading a 16-bit input
0x6402 Reading a 32-bit input
0x6411 Writing a 16-bit analog output
0x6412 Writing a 32-bit analog output
The range used for I/O objects depends on analog or digital, input or output and the number of bits (8-, 16- or 32-
bit). All physically present I/O data points can be accessed via objects and subindexes.
The default PDO mapping is listed on this worksheet. If no configuration has been saved or one is not stored in
the bus controller's flash memory, then the default mapping will be generated automatically during startup.
The worksheet layout corresponds to CiA DS-401:
Rx/TxPDO1 Digital I/Os
Rx/TxPDO2 to 04 Analog I/Os (16-bit)
Rx/TxPDO5 and later Manufacturer-specific PDOs
These are not enabled automatically by the bus controller with automatic configuration and
are therefore not displayed in the mapping tool.
The default 6000er objects that are automatically generated at startup are listed on this worksheet.
The form of the objects is identical to the worksheet "6000er Object List" on page 21.
3.4.6 Application
An example of the CANopen bus controller configuration in Automation Studio is located under "Communication -
Fieldbuses - Connection to external systems - CANopen" in Automation Help.
For information about the slave configuration, see "Communication - Fieldbuses - CANopen - Configuring the slave"
in Automation Help.
This CANopen bus controller was designed in accordance with CiA standards DS-301 and DS-401 and adheres
to the majority of the specifications they contain.
IMPORTANT!
During a segmented transfer, the object dictionary is locked andcommunication is not possible even
via another SDO channel.
Subindex 1
In the event the node necessary for transferring the consumer heartbeat (consumer heartbeat enabled) failed,
it is possible to switch to state PREOPERATIONAL. This also involves performing the error response measures
specified in CiA standard DS-401, such as resetting and setting outputs and writing a certain value to analog
outputs.
Subindex 128
Possibility to fully configure the bus controller in advance (e.g. before all modules are physically present). Module
mapping is generally only possible by rebooting after completing the configuration. Only then are these channels
available on the bus controller. Otherwise, only the default function model is available. To configure channels that
are not yet present, the value 0x80 must be written to the object 0x1029 sub128 ("error behavior - advanced
mapping"). Setting this value allows channels to be mapped even if they are not physically present.
Since the maximum data width of analog values is 32 bits, currently only the 32-bit values for the configurations
0x6424, 0x6425, 0x6426 and 0x6444 are supported. At lower analog values the low-order bytes lose their meaning.
It therefore does not make sense to assign a 16-bit analog value an error value of 0x0000DC67.
Notice!
This function is available in firmware V0001.0119 or later.
Important!
This function is available in hardware version E0 or later or firmware
V0001.0107 or later.
0x12 Rwh No BOOL FALSE Setting this object allows additional module-specific emergency telegrams to
be received1) globally as long as the configuration mode set to 1 in object
0x31xx, subindex 0x4.
• Object 0x3000, subindex 0x10 must be set to TRUE beforehand in
order to set the object.
• The parameters must then be saved (object 0x1010, subindex 4) and
the bus controller restarted in order to enable this function.
Important!
This function is available in firmware V0001.0111 or later.
1) Additional output error emergency telegrams are available for many simple modules in the groups DO, AI and AT. The cyclic status bytes of the respective
I/O modules must be enabled for this.
The global error flag only applies for modules that have one of the following
parameters set:
0x31XX / 0x05 Required hardware ID
0x31XX / 0x06 Required vendor ID
0x31XX / 0x16 Required serial number
No events are triggered for modules that do not meet at least one of these
criteria.
0xA Wo No UNSIGNED8 0 Clear I/O module error LED.
Any value clears the red "MS" LED.
However, an additional I/O module error will result in the red "MS" LED being
set again.
Object 0x3011 - Statistic values representing actual errors for diagnostic purposes
This object contains statistics counters for diagnostic purposes.
Subindex Access PDO mapping Range of values Default value Description
0x0 Ro No UNSIGNED8 32 -
0x1 Rw No UNSIGNED32 - Totalizer:
When reading, the counter returns the sum of all following statistics counters
except subindex 0x10. When writing, all statistics counters from subindex
0x10 to 0x2F are reset.
0x2 - 0x4 - - - - Reserved
0x5 Ro No UNSIGNED8 - CAN Rx error: Register of the SJA10001)
0x6 Ro No UNSIGNED8 - CAN Tx error: Register of the SJA10001)
0x7 - 0xF - - - - Reserved
0x10 Rw No UNSIGNED32 - I/O bus: Cycles
0x11 Rw No UNSIGNED32 0 I/O bus: Cycles with flag "Break" set
0x12 Rw No UNSIGNED32 0 I/O bus: Synchronous errors
0x13 Rw No UNSIGNED32 0 I/O bus: Synchronous time errors
0x14 Rw No UNSIGNED32 0 I/O bus: Synchronous frame errors
0x15 Rw No UNSIGNED32 0 I/O bus: Synchronous CRC errors
0x16 Rw No UNSIGNED32 0 I/O bus: Synchronous collision
0x17 Rw No UNSIGNED32 0 I/O bus: Asynchronous errors
0x18 Rw No UNSIGNED32 0 I/O bus: Asynchronous time errors
0x19 Rw No UNSIGNED32 0 I/O bus: Asynchronous frame errors
0x1A Rw No UNSIGNED32 0 I/O bus: Asynchronous CRC errors
0x1B Rw No UNSIGNED32 0 I/O bus: Asynchronous collision errors
0x1C Rw No UNSIGNED32 0 Number of module failures during operation
0x1D Rw No UNSIGNED32 0 Number of newly detected modules during operation
0x1E - 0x1F - - - - Reserved
0x20 Rw No UNSIGNED32 0 Number of access violations (program-internal)
0x21 - 0x2F - - - - Reserved
Parameter entries
0x30 Ro No UNSIGNED16 0 Index of the first faulty entry
0x31 Ro No UNSIGNED8 0 Subindex of the first faulty entry
0x32 Ro No UNSIGNED32 0 Error code of the first faulty entry
0x33 Ro No UNSIGNED32 0 Number of remaining entries
1) If object 0x2041/0x04 is set to 1 (bus automatically resets the CAN controller), this counter is reset to 0 in the case of a "Bus off" error.
Parameter entries
Statistics counters 0x30 to 0x33 refer to the configuration file transferred to the bus controller using 0x1F50,
subindex 2. If faulty entries are present, the error information is output via counters 0x30 to 0x33.
Bit Description
0 Network status X2X module 1 + ((subindex - 1) * 32)
1 Network status X2X module 2 + ((subindex - 1) * 32)
... ...
30 Network status X2X module 31 + ((subindex - 1) * 32)
31 Network status X2X module 32 + ((subindex - 1) * 32)
The following applies:
Subindex X2X module status
1 Modules 1 to 32
2 Modules 33 to 64
3 Modules 65 to 96
4 Modules 97 to 128
5 Modules 129 to 160
6 Modules 161 to 192
7 Modules 193 to 224
8 Module 225 - 253 (theoretically 256, but only 253 X2X mod-
ules are permitted)
Most of the objects (especially those used for configuration) are not accessible by default and must first be enabled
by setting object 0x3000 / 0x10. The enabling itself is not stored and may have to be set after each startup.
In this document, objects that are hidden by default additionally have the identifier "h" for "hidden" in column
"Access" (e.g. Roh, Rwh, Woh, etc.).
Below is a list of all the objects available in the bus controller (XX represents the module number):
Index Name
0x31XX Module configuration of I/O modules XX
0x32XX Byte access to all input registers of module XX
0x33XX Word access to all input registers of module XX
0x34XX Double word access to all input registers of module XX
0x35XX Byte access to all output registers of module XX
0x36XX Word access to all output registers of module XX
0x37XX Double word access to all output registers of module XX
0x38XX Module configuration register for module XX
0x39XX Module configuration value for module XX
Registers can be read or written acyclically via objects 0x31xx - sub 0x21 to 0x27. The number of object calls
depends on the master system used:
• 32-bit system: 2 object calls 0x31xx - sub 0x24 to 0x27
• 64-bit system: 1 object call 0x31xx - sub 0x21 and 0x22
Information:
Register values changed in this way are only retained until the bus controller is restarted. For perma-
nent changes, the corresponding configuration entries must be adjusted.
Example
For this example, the first channel was set as an analog input with 0 to 32 V and a lower limit value of 0. For
application-related reasons, this limit value should be temporarily raised to 100.
Procedure
1. Determine register address
First, the address for the desired register (lower limit value for channel 01) is selected from the register description.
For this example the register address is 526 → Hex: 0x020E
Information:
Only cyclic registers can be mapped in a PDO.
Subindex Access PDO mapping Range of values Default value Description
0x0 Roh No UNSIGNED8 254 -
0x1 - 0xFE Rwrh Yes UNSIGNED8 - Register
Information:
Only cyclic registers can be mapped in a PDO.
Subindex Access PDO mapping Range of values Default value Description
0x0 Roh No UNSIGNED8 254 -
0x1 - 0xFE Rwrh Yes UNSIGNED16 - Register
Information:
Only cyclic registers can be mapped in a PDO.
Subindex Access PDO mapping Range of values Default value Description
0x0 Roh No UNSIGNED8 254 -
0x1 - 0xFE Rwrh Yes UNSIGNED32 - Register
Information:
Only cyclic registers can be mapped in a PDO.
Subindex Access PDO mapping Range of values Default value Description
0x0 Roh No UNSIGNED8 254 -
0x1 - 0xFE Rwwh Yes UNSIGNED8 - Register
Information:
Only cyclic registers can be mapped in a PDO.
Subindex Access PDO mapping Range of values Default value Description
0x0 Roh No UNSIGNED8 254 -
0x1 - 0xFE Rwwh Yes UNSIGNED16 - Register
Information:
Only cyclic registers can be mapped in a PDO.
Subindex Access PDO mapping Range of values Default value Description
0x0 Roh No UNSIGNED8 254 -
0x1 - 0xFE Rwwh Yes UNSIGNED32 - Register
In a combined module configuration, the module configuration data is first loaded from the module and then updated
by the bus controller (application). The following steps explain how the user can properly update the configuration
data.
1. Enable vendor-specific objects
Value 1 must be written to "register index 0x3000" on page 30 / subindex 0x10 in order to gain access to
all hidden vendor-specific objects.
2. Change the configuration mode
Value 3 must be written to "register index 0x31xx" on page 34 / subindex 0x04 in order to change the X2X
module to the combined module / bus controller configuration mode. The value xx stands for the X2X module's
physical position (starting with zero). For example, register 0x3100 would be used for the power supply module
(e.g. X20PS9400) that is located at the first physical position.
3. Define the number of valid entries
Enter the desired number of configuration registers that should be enabled at register index 0x31xx / subindex
0x5B in order to notify the module of how many valid entries exist in the configuration registers. There are
then a corresponding amount of subindexes available for the 38xx and 39xx registers.
4. Module configuration registers - Register 0x38xx
The 0x38xx registers provide information about the type of register being configured. The size and register
number are also defined. For detailed information about the composition of registers, see "register 0x38xx"
on page 40.
5. Module configuration value - Register 0x39XX
The 0x39xx registers specify the configuration value of the registers specified in 0x38xx. For detailed infor-
mation about the composition of registers, see "register 0x39xx" on page 40.
The subindexes correspond in each case. If register 18 is specified in 0x3801/0x01, for example, then the
value entered in 0x3901/0x01 will be written to it.
6. Saving the configuration
Finally, save the settings and restart the bus controller. This is done by writing value 0x65766173 ("evas" in
ASCII) to "register 0x1010/0x04" on page 22 and restarting the bus controller.
In this example, the output channels on an X20AO4622 will be configured differently for the current and voltage
signal.
The hardware setup is composed of 1x X20BC0043-10, 1x X20PS9400 and 1x X20AO4622.
To configure bus controller X20BC0043-10, it must be in state PREOPERATIONAL (LED "RUN" blinking).
1. First, write value 1 to register 0x3000/0x10. This enables all vendor-specific objects.
2. Then define the configuration mode for X20AO4622. This is done by writing value 3 to register 0x3101/0x04.
This loads the module information from the module, which is updated by the bus controller.
3. Next, specify the number of registers to be configured. Since only one register is needed to configure the AO
channels, write value 1 to register 0x3101/0x5B.
Information:
Only then are registers 0x3801 and 0x3901 available, each with one subindex.
4. Now specify the register type, register size and register number of the X20AO4622 configuration register to be
defined in register 0x3801/0x01.
Structure of the 0x38XX register:
Bit Configuration range Explanation Description
0 - 15 0xNNNN Number Register number. The higher-value byte contains the register bank.
16 - 23 0xSS Size Size in bytes.
0 Entry not used
24 - 31 0xTT Type Bit Description
0-3 0000 - 0: Dynamic cyclic input register
0001 - 1: Dynamic cyclic output register
0010 - 2: Fixed cyclic input register
0011 - 3: Fixed cyclic output register
0100 - 4: Acyclic input register
0101 - 5: Acyclic output register
0110 - 6: Reserved
0111 - 7: Set parameters
4 Reserved
5 Hide register
6 Analog register
7 Mask register
For register data, see the module documentation for the X20AO4622.
Bits 0 to 15 Concerns register number 18 ⇒ 0x0012
Bits 16 to 23 Register is 1 byte long ⇒ 0x01
Bits 24 to 31 Concerns an acyclic output register ⇒ 0x05
Put together, this results in hex value 0x05010012. This value is written to register 0x3801/0x01.
5. Next, enter the value to be written to register 18 in register 0x3901/0x01. For register data, see the module
documentation for the X20AO4622.
Excerpt from the X20AO4622 module documentation - Register 18 "ConfigOutput01"
Bit Description Value Information
0 Channel 1 0 Voltage signal
1 Current signal, measurement range corresponding to bit 4
... ...
3 Channel 4 0 Voltage signal
1 Current signal, measurement range corresponding to bit 7
4 Channel 1: Current measurement range 0 0 to 20 mA current signal
1 4 to 20 mA current signal
... ...
7 Channel 4: Current measurement range 0 0 to 20 mA current signal
1 4 to 20 mA current signal
Desired configuration:
Channel 1 ±10 V
Channel 2 0 to 20 mA
Channel 3 4 to 20 mA
Channel 4 ±10 V
This results in bit combination 0b01000110 ⇒ 0x46. This value is written to register 0x3901/0x01.
6.) Finally, save the configuration and restart the bus controller. This is done by writing value 0x65766173 ("evas"
in ASCII) to register 0x1010/0x04 and briefly disconnecting the power from the bus controller. The bus controller
will then restart using the settings made.
In this example, the input channels on an X67AI1333 are configured for different measurement ranges.
The hardware setup is composed of 1x X67BC4321.L12-10 and 1x X67AI1333.
X67BC4321.L12-10 X67AI1333
To configure bus controller X67BC4321.L12-10, it must be in state PREOPERATIONAL (lower LED between "C"
and "D" blinking).
1. First, write value 1 to register 0x3000/0x10. This enables all vendor-specific objects.
2. Then define the configuration mode for X67AI1333. This is done by writing value 3 to register 0x3101/0x04. This
loads the module information from the module, which is updated by the bus controller.
3. Next, specify the number of registers to be configured. Since only one register is needed to configure the AI
channels, write value 1 to register 0x3101/0x5B.
Information:
Only then are registers 0x3801 and 0x3901 available, each with one subindex.
4. Now specify the register type, register size and register number of the X67AI1333 configuration register to be
defined in register 0x3801/0x01.
Structure of configuration register 0x38xx
Bit Configuration range Explanation Description
0 - 15 0xNNNN Number Register number. The higher-value byte contains the register bank.
16 - 23 0xSS Size Size in bytes.
0 Entry not used
24 - 31 0xTT Type Bit Description
0-3 0000 - 0: Dynamic cyclic input register
0001 - 1: Dynamic cyclic output register
0010 - 2: Fixed cyclic input register
0011 - 3: Fixed cyclic output register
0100 - 4: Acyclic input register
0101 - 5: Acyclic output register
0110 - 6: Reserved
0111 - 7: Set parameters
4 Reserved
5 Hide register
6 Analog register
7 Mask register
For register data, see the module documentation for the X67AI1333:
Bits 0 to 15 Concerns register number 18 ⇒ 0x0012
Bits 16 to 23 Register is 1 byte long ⇒ 0x01
Bits 24 to 31 This is an acyclic output register ⇒ 0x05
Put together, this results in hex value 0x05010012. This value is written to register 0x3801/0x01.
5. Next, enter the value to be written to register 18 in register 0x3901/0x01. For register data, see the module
documentation for the X67AI133.
Excerpt from the X67AI1333 module documentation - Register 18 "ConfigOutput02"
Bit Description Value Information
0 Channel 1 0 Measurement range: 0 to 20 mA
1 Measurement range: 4 to 20 mA
... ...
3 Channel 4 0 Measurement range: 0 to 20 mA
1 Measurement range: 4 to 20 mA
4-7 Reserved 0
Desired configuration:
Channel 1 0 to 20 mA
Channel 2 0 to 20 mA
Channel 3 4 to 20 mA
Channel 4 4 to 20 mA
This results in bit combination 0b00001100 ⇒ 0xC. This value is written to register 0x3901/0x01.
6.) Finally, save the configuration and restart the bus controller. This is done by writing value 0x65766173 ("evas"
in ASCII) to register 0x1010/0x04 and briefly disconnecting the power from the bus controller. The bus controller
will then restart using the settings made.
The bus controller supports the emergency protocol and an error history of 32 entries (object 0x1003). Sent error
messages are automatically added to the error history. The error register (object 0x1001) is also set automatically.
Bits 0, 2 and 7 of the error register are supported.
Bit Description
0 General error
1 Current error
2 Voltage error
3 Temperature error
4 Communication error
5 Specific to device profile
6 Reserved (0)
7 Manufacturer-specific
The PDO length error and configuration data error are not acknowledged. All other errors are acknowledged by the
bus controller when they are no longer active. If there are no more errors on the bus controller, then an emergency
message is sent in which all values are 0 (per CiA standard DS-301).
Example:
Short circuit of a digital output (channel 4), X2X module connected in slot 2
Error message 0x0050814200040002
Error corrected 0x0000004200040002
The following diagram illustrates the protocol structure for sending an error code.
0 1 2 3 4 5 6 7
The error codes listed in the table below are UNSIGNED32 values.
Abort code Description
0x0503 0000 No change of state in the toggle bit
0x0504 0000 Timeout in SDO protocol
0x0504 0001 Client/Server "command specifier" invalid or unknown
0x0504 0002 Invalid block size (only if block mode enabled)
0x0504 0003 Invalid sequence number (only if block mode enabled)
0x0504 0004 CRC error (only if block mode enabled)
0x0504 0005 Outside the valid memory range
0x0601 0000 Access to object not supported
0x0601 0001 Attempt to read a "write-only" object
0x0601 0002 Attempt to write to a "read-only" object
0x0602 0000 Object not in object dictionary
0x0604 0041 Object can not be mapped to a PDO
0x0604 0042 Number and length of objects to be mapped would exceed the PDO length
0x0604 0043 General parameter incompatibility
0x0604 0047 General internal incompatibility in the device
0x0606 0000 Access failed due to a hardware error
0x0607 0010 Invalid data type, invalid length of service parameter
0x0607 0012 Invalid data type, value outside of permissible length for service parameter (too long)
0x0607 0013 Invalid data type, value outside of permissible length for service parameter (too short)
0x0609 0011 Subindex does not exist
0x0609 0030 Invalid parameter value (download only)
0x0609 0031 Value of the parameter to be written is too high (download only)
0x0609 0032 Value of the parameter to be written is too low (download only)
0x0609 0036 Maximum value is less than minimum value
0x060A 0023 Resource not available: SDO connection
0x0800 0000 General error
0x0800 0020 Data cannot be transferred or stored by the application.
0x0800 0021 Data cannot be transferred or stored by the application because of the local controller.
0x0800 0022 Data cannot be transferred or stored by the application because of the present device status.
0x0800 0023 Dynamically generated object dictionary is invalid or there is no object dictionary (e.g. object dictionary was generated from the file, with the
generation failing due to a file error)
0x0800 0024 No data available
The firmware for the X20 bus controller can be updated via an RS232 interface. This is accessed via the bus
controller's X20PS9400 power supply module. LED status indicator "S" indicates when communication is taking
place.
The following image shows the wiring connections. Terminals 11, 21 and 22 of the serial interface are used on
the software side.
r e
X20 PS 9400
I
Reserved Reserved
GND GND
A brief description is displayed after transmitting the command (by pressing the "Enter" key). Select "Transfer" in
the HyperTerminal menu bar and then "Send file" to open the following dialog box:
If an EDS or DCF file is transferred to the bus controller, then the entire configuration procedure takes place
automatically.
If the master environment does not support the import of a device description file (EDS or DCF), then the config-
uration entries must be transferred manually.
This example illustrates the steps necessary to determine the configuration being used and to then transfer it.
or
0x31xx1) - Sub0x64 + yy2) Record value Contains the 32-bit register information and register val- 64-bit transfer
ue
4. Saving a configuration
0x3FFF 0x65766173 ("save") Saves the configuration on the bus controller
After the configuration is completed, 4 files are generated in the project's output folder. One of these is an HTML
file containing a table with the values to be transferred listed under "Module configuration".
The example configuration shown here contains 23 register entries. These must be transferred to the bus controller
in order for the configured modules to be detected correctly.
X67BC4321-10
0x00000000 00010000 0x3800 - Sub0x01 0x00010000 0x3100 - Sub0x64 0x00000000 00010000
→Register: 0000
→Size: 01 (bytes)
→Type: 002)
0x3900 - Sub0x01 0x00000000
0x00000000 01010002 0x3800 - Sub0x02 0x01010002 0x3100 - Sub0x65 0x00000000 01010002
→Register: 0002
→Size: 01 (bytes)
→Type: 012)
0x3900 - Sub0x02 0x00000000
0x00000000 0001001E 0x3800 - Sub0x03 0x0001001E 0x3100 - Sub0x66 0x00000000 0001001E
→Register: 001E
→Size: 01 (bytes)
→Type: 002)
0x3900 - Sub0x03 0x00000000
0x0000007F 05010010 0x3800 - Sub0x04 0x05010010 0x3100 - Sub0x67 0x0000007F 05010010
→Register: 0010
→Size: 01 (bytes)
→Type: 052)
0x3900 - Sub0x04 0x0000007F
0x00000000 05010012 0x3800 - Sub0x05 0x05010012 0x3100 - Sub0x68 0x00000000 05010012
→Register: 0012
→Size: 01 (bytes)
→Type: 052)
0x3900 - Sub0x05 0x00000000
X67MM2436
0x00000000 40020000 0x3801 - Sub0x01 0x40020000 0x3101 - Sub0x64 0x00000000 40020000
→Register: 0000
→Size: 02 (bytes)
→Type: 402)
0x3901 - Sub0x01 0x000000001)
0x00000000 40020002 0x3801 - Sub0x02 0x40020002 0x3101 - Sub0x65 0x00000000 40020002
→Register: 0002
→Size: 02 (bytes)
→Type: 402)
0x3901 - Sub0x02 0x000000001)
0x00000000 40020006 0x3801 - Sub0x03 0x40020006 0x3101 - Sub0x66 0x00000000 40020006
→Register: 0006
→Size: 02 (bytes)
→Type: 402)
0x3901 - Sub0x03 0x000000001)
0x00000000 40020008 0x3801 - Sub0x04 0x40020008 0x3101 - Sub0x67 0x00000000 40020008
→Register: 0008
→Size: 02 (bytes)
→Type: 402)
0x3901 - Sub0x04 0x000000001)
0x00000000 0001000A 0x3801 - Sub0x05 0x0001000A 0x3101 - Sub0x68 0x00000000 0001000A
→Register: 000A
→Size: 01 (bytes)
→Type: 002)
0x3901 - Sub0x05 0x000000001)