You are on page 1of 3

Using DeviceLogix with CompactBlock I/O expansion modules

Most DeviceNet configuration tools use Electronic Data Sheets (EDS) to aid in the configuration of
devices. The configuration tool uses the information contained within the EDS to present meaningful
configuration options to the user. The problem with this method is that EDS files are static; the information
that is contained within them cannot change based on variable conditions within a product. By contrast
some products can change hardware by sliding a different module into a rack or simply by connecting
expansion modules. For these modular products there is currently no good solution when using EDS
files for configuration.
CompactBlock I/O is a modular product that exhibits this challenge. EDS files are written for the base
modules alone. These files cannot account for the differences that result when different expansion modules
are present. When using the devices as simple I/O blocks this is a relatively innocuous concern. However,
if the DeviceLogix feature is used and the expansion I/O needs to be included in the logic, the problem
becomes significant.
RSNetWorx for DeviceNet only keeps one version of EDS file for each major revision of a device. If a
system is being implemented using the same combination of base and expansion modules throughout, the
EDS files can be modified to accommodate the devices hardware configuration. This paper details the
necessary changes to accomplish this. An example will be provided for modifying the 1791D-8B8Ps EDS
file to one with 24 inputs and 8 outputs. In other words the 8B8P could then use DeviceLogix on the
expansion inputs of a 1791D-16B0X or 16V0X. Note, since only one version of EDS can be kept for each
product, by making these changes to an EDS for a specific combination of base and expansion I/O, you will
only be able to use the modules in that combination with that installation of RSNetWorx. You can always
revert back to the original EDS file if it is determined that this method is unacceptable.

Obtaining the EDS file


EDS files can be obtained online at http://www.ab.com/networks/eds/. If you do not have access to the web
you can simply find the file that came with RSNetWorx for DeviceNet. Search your computer for the
\RSCommon\Eds folder. Within this folder the files are stored as follows: Vendor ID | Product Type |
Product Code | Major Revision, where all numbers are represented in hexadecimal. For example the
filename for the CompactBlock 1791D-8B8P\A would be 00010007044E0100.EDS. These four pieces of
information can be obtained by selecting the device and viewing the General properties tab within
RSNetWorx. Note the product provided on the General tab must be converted from decimal to hex. Also
note that only the major revision is used in the EDS name (version 1.002 translates to ..0100.eds).

EDS Modifications
EDS files are broken down into sections. Each section is denoted by a bracketed keyword. For example
the [Device] section provides identity information on the device. To add support for expansion I/O
modules the following sections need modifications: [Device] and [1_BINDING_PATHS].

Device Section
The Device section provides the tool with the identity of the module. Since we are altering the identity of
the module, it would be advisable to change the product name. The product name string can be used to
indicate how the EDS file has been modified.
For example the 1791D-8B8Ps current name string is:
ProdName = "1791D-8B8P 8 Sink In/8 Source Out";
If we wanted the EDS to reflect a system that uses 8B8Ps with 1791D-16B0Xs we should modify the
namestring to something like:

ProdName = "1791D-8B8P with 16B0X 24 Sink In/8 Source Out";


This text will appear in RSNetWorx hardware list indicating that this file is for use with that combination of
base and expansion modules.

1_BINDING_PATHS Section
The binding paths section provides the DeviceLogix Function Block Editor with detailed information about
the hardware present on the device. In our example we are adding 16 inputs to the 8 inputs that existed on
the 8B8P. Therefore we must add 16 inputs to the 1_DISCRETE_INPUT_POINT entry.
Current entry
1_DISCRETE_INPUT_POINT =
1, "Input 0", "60 C6 40", 8, 0,
3, "Input 2", "60 C6 42", 8, 2,
5, "Input 4", "60 C6 44", 8, 4,
7, "Input 6", "60 C6 46", 8, 6,

2, "Input 1", "60 C6 41", 8, 1,


4, "Input 3", "60 C6 43", 8, 3,
6, "Input 5", "60 C6 45", 8, 5,
8, "Input 7", "60 C6 47", 8, 7;

Modified entry
1_DISCRETE_INPUT_POINT =
1, "Input 0", "60 C6 40", 8, 0,
3, "Input 2", "60 C6 42", 8, 2,
5, "Input 4", "60 C6 44", 8, 4,
7, "Input 6", "60 C6 46", 8, 6,

2, "Input 1", "60 C6 41", 8, 1,


4, "Input 3", "60 C6 43", 8, 3,
6, "Input 5", "60 C6 45", 8, 5,
8, "Input 7", "60 C6 47", 8, 7,

9, "Input 8", "60 C6 48", 9, 0,


11, "Input 10", "60 C6 4A", 9, 2,
13, "Input 12", "60 C6 4C", 9, 4,
15, "Input 14", "60 C6 4E", 9, 6,

10, "Input 9", "60 C6 49", 9, 1,


12, "Input 11", "60 C6 4B", 9, 3,
14, "Input 13", "60 C6 4D", 9, 5,
16, "Input 15", "60 C6 4F", 9, 7

17, "Input 16", "60 C6 50", 10, 0,


19, "Input 18", "60 C6 52", 10, 2,
21, "Input 20", "60 C6 54", 10, 4,
23, "Input 22", "60 C6 56", 10, 6,

18, "Input 17", "60 C6 51", 10, 1,


20, "Input 19", "60 C6 53", 10, 3,
22, "Input 21", "60 C6 55", 10, 5,
24, "Input 23", "60 C6 57", 10, 7;

This example demonstrated how to modify a 1791D-8B8P EDS file for use an attached 1791D-16B0X or
16V0X. Once these changes are made, this file could be used to access all 24 inputs in the 8B8Ps local
logic.
The EDS for any base module can be modified to incorporate the I/O of any expansion module. Use the
following information to assist in those modifications.
Discrete Input Points Entry
The Discrete Input Points Entry provides information on the discrete hardware inputs that are present on
this module. This entry is delimited by 1_DISCRETE_INPUT_POINT =. If this entry is not present, no
discrete hardware inputs are supported by the device. If adding input points via an expansion module, you
must add this section. The fields of the Discrete Input Points Entry are defined below:
Field Name
DIP Instance Number
Name String
Path
Byte Offset
Bit Offset

Field Number
1
2
3
4
5

DIP Instance Number The instance number of the Discrete Input Point class that this entry
corresponds to. These numbers start at 1 and increment sequentially. Base module inputs precede
expansion module inputs.
Name String A name string that the configuration tool will use to uniquely identify this input
anywhere it is referenced. This entry must be enclosed in double quotes.
Path The internal representation of this bit in the product. When a user selects this DIP to be used as
input to another logic component, this path is relayed from the configuration tool to the device. The
device will use it as the source of information to bind to the appropriate DOP or function block input.
This entry must be enclosed in double quotes. The field should be constructed as 60 C6 NN, where
NN can be filled in from Table 1.
Byte Offset This field indicates the byte location of this data in the data structure that is returned by
the module when logic data is requested by the tool. Reference Table 1 for this field.
Bit Offset - This field indicates the bit location of this data in the data byte referenced in the previous
field. The configuration tool uses the combination of the Byte Offset and Bit Offset fields to find this
data in the modules response to a request for its logic data. The bit count is zero-based. Reference
Table 1 for this field.

Discrete Output Points Entry


The Discrete Output Points Entry provides information on the discrete hardware outputs that are present on
this module. 1_DISCRETE_OUTPUT_POINT= delimits this entry. If this entry is not present, no discrete
hardware outputs are supported by the device. If adding input points via an expansion module, you must
add this section. The fields of the Discrete Output Points Entry are defined below:
Field Name
DOP Instance Number
Name String
Data Table Path
Data Table Byte
Location
Data Table Bit Location

Field Number
1
2
3
4
5

The definitions of these fields are analogous to those of the Discrete Input Point section.

Byte
Offset
8
Hardware
Inputs
(Discrete
Input
Points)

9
10
11
12

Hardware
Outputs
(Discrete
Output
Points)

13
14
15

Bit Offset
7

Bit Offset
6

Bit Offset
5

Bit Offset
4

Bit Offset
3

Bit Offset
2

Bit Offset
1

Bit Offset
0

47
DIP 8
4F
DIP 16
57
DIP 24
5F
DIP 32
67
DOP 8
6F
DOP 16
77
DOP 24
7F
DOP 32

46
DIP 7
4E
DIP 15
56
DIP 23
5E
DIP 31
66
DOP 7
6E
DOP 15
76
DOP 23
7E
DOP 31

45
DIP 6
4D
DIP 14
55
DIP 22
5D
DIP 30
65
DOP 6
6D
DOP 14
75
DOP 22
7D
DOP 30

44
DIP 5
4C
DIP 13
54
DIP 21
5C
DIP 29
64
DOP 5
6C
DOP 13
74
DOP 21
7C
DOP 29

43
DIP 4
4B
DIP 12
53
DIP 20
5B
DIP 28
63
DOP 4
6B
DOP 12
73
DOP 20
7B
DOP 28

42
DIP 3
4A
DIP 11
52
DIP 19
5A
DIP 27
62
DOP 3
6A
DOP 11
72
DOP 19
7A
DOP 27

41
DIP 2
49
DIP 10
51
DIP 18
59
DIP 26
61
DOP 2
69
DOP 10
71
DOP 18
79
DOP 26

40
DIP 1
48
DIP 9
50
DIP 17
58
DIP 25
60
DOP 1
68
DOP 9
70
DOP 17
78
DOP 25

Table 1

You might also like