Introduction
This Application note explanes, how to configure a generic modular adapter, when the entry for "ProxyConnect" is not described in the Ethernet/IP Slave Device Description (EDS).
Please refer to the following FAQ: "Why does my modular EDS file not work?" → https://kb.hilscher.com/pages/viewpage.action?pageId=18616112
As an example the Allen Bradley Point I/O Module Adapter "1734 AENT" is used, together with the fitting Point I/O Modules "1734 IB8" and "1734 OB8E".
Hardware configuration
Slot | Module Name | EDS File |
---|---|---|
0 | 1734-AENT | 0001000C006C0300.eds |
2 | 1734-IB8 | 0001000700D80300.eds |
3 | 1734-OB8E | 0001000700DA0300.eds |
The EDS File of each module is needed for further configuration of the Generic Modular Adapter.
These can be found on the Rockwell Automation Page:
Software Configuration
Add Modules
In SYCON.net, add an EtherNet/IP Scanner (e.g. CIFX RE/EIM) and then add an ENIP Modular Generic Adapter to the network.
Open the Configuration Window of the Modular Generic Adapter and choose "Modules" in the Navigation Area.
Since 1734-AENT covers 2 Slots, skip one slot between 1734-AENT and 1734-IB8.
Change “Slots in Rack” to 4 and add the modules:
Configure 1734-IB8
Specify Connection
EtherNet/IP is a connection-oriented protocol, therefore the connection should always be specified first.
Open the EDS for 1734-IB8 and go to the section [Connection Manager], assuming that Connection23 (Input only) will be used:
Configure connection settings
Please choose "Connection" in the Navigation Area of the Modular Generic Adapter. Select the Module “Slot<1> 1734-IB8”.
Decode the field "trigger & transport" and "realtime format", which are defined in Connection23.
These parameters describe the connection variables, which have to be filled in the Connection configuration Window in Sycon.net.
The free Tool "EZ-EDS" from ODVA (https://www.odva.org/software/EZ-EDS-Download), can be used to make decoding of the parameters easier.
Therefore, open the EDS by selecting "File → Open…”. Select "Generic EDS" as EDS type and ignore the upcoming error messages.
When the file is successfully opened, select “Connection1” in the left tree view.
The name “Connection23” in EDS file is automatically converted to “Connection1”.
The following dialog window:
Based on these informations, now configure the Connection Area in Sycon.net:
Don't forget, to set the Connection name to "Connection23".
Configure assembly instance ID
Choose "Assembly" in the Navigation Area of the Modular Generic Adapter now. Select the Module “Slot<1> 1734-IB8”.
Now the Connection Path has to be filled in. The Connection Path is described in the EDS here:
Switch back to EZ-EDS, select “Connection1” in the left tree view.
Click the Button "Decode Path". A new Window will pop up. Select decimal format in this dialog now the instance ID can be read out for Configuration in Sycon.net.
Based on the above information, the assembly Instance ID can be specified.
The instance "20 04 24 67 2C BE 2C 04" can also be decoded manually as follows:
20 04 | 24 67 | 2C BE | 2C 04 |
---|---|---|---|
Logical Segment, Class ID 0x04(4) | Configuration path, instance ID 0x67 (103) | O2T Connection Point, output Assembly instance ID 0xBE (190) | T2O Connection Point, input Assembly instance ID 0x04 (4). |
Configure Input assembly length
The input assembly length is defined in the field “T->O size” and field “T->O format” of Connection 23:
It can be decoded as follows:
T → O
, , Assem127
RPI | Size | Format |
---|---|---|
empty | empty | Assem127 |
When the "Size" of the T=>O default description is empty, the format has to be evaluated.
In this case, Assem127 is used to define the format. Go to the definition of Assem127, in the EDS:
Since the field for the length is empty ($ Length in bytes), the Membe fields fields should be evaluated:
The Assemblys Member can be decoded as follows:
,,
32,,
,Assem4;
Member Size | Member Reference | |
---|---|---|
First Member | empty | empty |
Second Member | 32 | empty |
Third Member | empty | Assem4 |
This means, the first Member is reserved, the second one has a size of 4Byte (32Bit) and the third one references to Assem4.
Go to Assem4:
The "total length in bytes" is defined as "1".
Now the total size of Assem127 can be defined:
Member Size | Member Reference | Size in Byte | |
---|---|---|---|
First Member | empty | empty | |
Second Member | 32 | empty | 4 (32Bit) |
Third Member | empty | Assem4 | 1 |
Total length of Input Assembly Assem127 | 5 |
Configure Output assembly length
The output assembly length is defined in the field “O->T size” and field “O->T format” of Connection 23:
It can be decoded as follows:
O → T
,0,,
RPI | Size | Format |
---|---|---|
empty | 0 | empty |
Since the field “O->T size” is not empty, it can directly be read – 0 Byte.
In this case no further evaluation is needed.
In case this field is refered to a Parameter or Assembly, please use the steps memtioned in the example above: "Configure Input assembly length".
Configure configuration assembly length
The configuration assembly length is automatically calculated by the data length of cfg. #1 and cfg. #2 data segment.
The user is not allowed to directly edit this length.
Configure cfg. #1 data segment
The cfg #1 data segment is defined field "$ config part 1" of Connection23:
Here Assem124 is used to define the format. Go to the definition of Assem124:
In this case, both Values ("Member Size" and "Member Reference" have to be evaluated.
The Assemblys Member informations can be read as follows:
Member Size | Member Reference | |
---|---|---|
First Member | 16 | Param101 |
Second Member | 16 | empty |
The field of the first Member indicated, that it has a data length of 16 bit. It also has a Reference to Param101.
Go to the definition of Param101:
The "data size in Byte" has a size of 2 Byte, with a default value of 1.
So the default data of Param101 is 0x0001.
The user can also define a value between min. value and max. value.
Go back the definition of Assem124, the Second Member has a length of 16 and has no Reference entry. This means, all data are defined with value 0.
Member Size | Member Reference | Data (Hex) | Swap | |
---|---|---|---|---|
First Member | 16 | Param101 | 01 00 | 01 00 |
Second Member | 16 | empty | 00 00 | 00 00 |
Total | 01 00 00 00 |
Configure cfg. #2 data segment
The cfg #1 data segment is defined field "$ config part 2" of Connection23:
Here Assem103 is used to define the format. Go to the definition of Assem103:
This Assembly has a few more Members.
Please repeate the procedure mentioned in the first data segment for each Member.
For example the first Member:
The Size of this Member is definded with 16Bit and has a Reference to Param9:
The Size is defined witzh 2 Bytes, the Default Value is 1000 (Hex 03E8):
When analyzing all Members ans Parameters, the following table can be created:
Member | Member Size | Member Reference | Data (Hex) | Swap |
---|---|---|---|---|
1 | 16 | Param9 | 03 E8 | E8 03 |
2 | 16 | Param10 | 03 E8 | E8 03 |
3 | 16 | Param11 | 03 E8 | E8 03 |
4 | 16 | Param12 | 03 E8 | E8 03 |
5 | 16 | Param13 | 03 E8 | E8 03 |
6 | 16 | Param14 | 03 E8 | E8 03 |
7 | 16 | Param15 | 03 E8 | E8 03 |
8 | 16 | Param16 | 03 E8 | E8 03 |
9 | 16 | Param17 | 03 E8 | E8 03 |
10 | 16 | Param18 | 03 E8 | E8 03 |
11 | 16 | Param19 | 03 E8 | E8 03 |
12 | 16 | Param20 | 03 E8 | E8 03 |
13 | 16 | Param21 | 03 E8 | E8 03 |
14 | 16 | Param22 | 03 E8 | E8 03 |
15 | 16 | Param23 | 03 E8 | E8 03 |
16 | 16 | Param24 | 03 E8 | E8 03 |
Therefore the cfg #2 data segment results in:
E803 E803 E803 E803 E803 E803 E803 E803 E803 E803 E803 E803 E803 E803 E803 E803
Final assembly configuration of 1734-IB8
Configure 1734-OB8E
EtherNet/IP is a connection-oriented protocol, therefore the connection should always be specified first.
Open the EDS for 1734-OB8E and go to the section [Connection Manager], assuming that Connection9 (Exclusive Owner) will be used:
Configure connection settings
Please choose "Connection" in the Navigation Area of the Modular Generic Adapter. Select the Module “Slot<2> 1734-OB8E”.
Decode the field "trigger & transport" and "realtime format", which are defined in Connection9.
These parameters describe the connection variables, which have to be filled in the Connection configuration Window in Sycon.net.
The free Tool "EZ-EDS" from ODVA (https://www.odva.org/software/EZ-EDS-Download), can be used to make decoding of the parameters easier.
Therefore, open the EDS by selecting "File → Open…”. Select "Generic EDS" as EDS type and ignore the upcoming error messages.
When the file is successfully opened, select “Connection1” in the left tree view.
The name “Connection9” in EDS file is automatically converted to “Connection1”.
The following dialog window:
Based on these informations, now configure the Connection Area in Sycon.net:
Don't forget, to set the Connection name to "Connection9".
Configure assembly instance ID
Choose "Assembly" in the Navigation Area of the Modular Generic Adapter now. Select the Module “Slot<2> 1734-OB8E”.
Now the Connection Path has to be filled in. The Connection Path is described in the EDS here:
Switch back to EZ-EDS, select “Connection1” in the left tree view.
Click the Button "Decode Path". A new Window will pop up. Select decimal format in this dialog now the instance ID can be read out for Configuration in Sycon.net.
Based on the above information, the assembly Instance ID can be specified.
The instance "20 04 24 7B 2C 22 2C 2C" can also be decoded manually as follows:
20 04 | 24 67 | 2C 22 | 2C 2C |
---|---|---|---|
Logical Segment, Class ID 0x04(4) | Configuration path, instance ID 0x7B (123) | O2T Connection Point, output Assembly instance ID 0xBE (34) | T2O Connection Point, input Assembly instance ID 0x04 (44). |
Configure Input assembly length
The input assembly length is defined in the field “T->O size” and field “T->O format” of Connection 9:
It can be decoded as follows:
T → O
, , Assem127
RPI | Size | Format |
---|---|---|
empty | empty | Assem127 |
When the "Size" of the T=>O default description is empty, the format has to be evaluated.
In this case, Assem127 is used to define the format. Go to the definition of Assem127, in the EDS:
Since the field for the length is empty ($ Length in bytes), the Membe fields fields should be evaluated:
The Assemblys Member can be decoded as follows:
,,
32,,
,Assem44;
Member Size | Member Reference | |
---|---|---|
First Member | empty | empty |
Second Member | 32 | empty |
Third Member | empty | Assem44 |
This means, the first Member is reserved, the second one has a size of 4Byte (32Bit) and the third one references to Assem44.
Go to Assem44:
The "total length in bytes" is defined as "1".
Now the total size of Assem127 can be defined:
Member Size | Member Reference | Size in Byte | |
---|---|---|---|
First Member | empty | empty | |
Second Member | 32 | empty | 4 (32Bit) |
Third Member | empty | Assem44 | 1 |
Total length of Input Assembly Assem127 | 5 |
Configure Output assembly length
The output assembly length is defined in the field “O->T size” and field “O->T format” of Connection 9:
It can be decoded as follows:
O → T
,,Assem126,
RPI | Size | Format |
---|---|---|
empty | empty | Assem126 |
When the "Size" of the O=>T default description is empty, the format has to be evaluated.
In this case, Assem126 is used to define the format. Go to the definition of Assem126, in the EDS:
Since the field for the length is empty ($ Length in bytes), the Membe fields fields should be evaluated:
The Assemblys Member can be decoded as follows:
,,
,Assem34;
Member Size | Member Reference | |
---|---|---|
First Member | empty | empty |
Second Member | empty | Assem34 |
This means, the first Member is reserved, the second one references to Assem34.
Go to Assem34:
The "total length in bytes" is defined as "1".
Now the total size of Assem126 can be defined:
Member Size | Member Reference | Size in Byte | |
---|---|---|---|
First Member | empty | empty | |
Second Member | empty | Assem34 | 1 |
Total length of Input Assembly Assem126 | 1 |
Configure configuration assembly length
The configuration assembly length is automatically calculated by the data length of cfg. #1 and cfg. #2 data segment.
The user is not allowed to directly edit this length.
Configure cfg. #1 data segment
The cfg #1 data segment is defined in field "$ config part 1" of Connection9:
Here Assem124 is used to define the format. Go to the definition of Assem124:
In this case, both Values ("Member Size" and "Member Reference" have to be evaluated.
The Assemblys Member informations can be read as follows:
Member Size | Member Reference | |
---|---|---|
First Member | 16 | Param121 |
Second Member | 16 | empty |
The field of the first Member indicated, that it has a data length of 16 bit. It also has a Reference to Param121.
Go to the definition of Param121:
The "data size in Byte" has a size of 2 Byte, with a default value of 1.
So the default data of Param121 is 0x0001.
The user can also define a value between min. value and max. value.
Go back the definition of Assem124, the Second Member has a length of 16 and has no Reference entry. This means, all data are defined with value 0.
Member Size | Member Reference | Data (Hex) | Swap | |
---|---|---|---|---|
First Member | 16 | Param101 | 01 00 | 01 00 |
Second Member | 16 | empty | 00 00 | 00 00 |
Total | 01 00 00 00 |
Configure cfg. #2 data segment
The cfg #2 data segment is defined in field "$ config part 2" of Connection9:
Here Assem123 is used to define the format. Go to the definition of Assem123:
This Assembly has a few more Members.
Please repeate the procedure mentioned in the first data segment for each Member.
For example the first Member:
The Size of this Member is definded with 1Bit and has a Reference to Param43:
The Size is defined with 1 Bit (Boolean), the Default Value is 0 (Hex 0000):
When analyzing all Members and Parameters, the following table can be created:
Member | Member Size (Bit / Boolien) | Member Reference | Data (Hex) | Swap |
---|---|---|---|---|
1 | 1 | Param43 | 0 | |
2 | 1 | Param45 | 0 | |
3 | 1 | Param47 | 0 | |
4 | 1 | Param49 | 0 | |
5 | 1 | Param51 | 0 | |
6 | 1 | Param53 | 0 | |
7 | 1 | Param55 | 0 | |
8 | 1 | Param57 | 0 | |
9 | 1 | Param44 | 0 | |
10 | 1 | Param46 | 0 | |
11 | 1 | Param48 | 0 | |
12 | 1 | Param50 | 0 | |
13 | 1 | Param52 | 0 | |
14 | 1 | Param54 | 0 | |
15 | 1 | Param56 | 0 | |
16 | 1 | Param58 | 0 | |
00 00 | 00 00 | |||
17 | 1 | Param59 | 0 | |
18 | 1 | Param61 | 0 | |
19 | 1 | Param63 | 0 | |
20 | 1 | Param65 | 0 | |
21 | 1 | Param67 | 0 | |
22 | 1 | Param69 | 0 | |
23 | 1 | Param71 | 0 | |
24 | 1 | Param73 | 0 | |
25 | 1 | Param60 | 0 | |
26 | 1 | Param62 | 0 | |
27 | 1 | Param64 | 0 | |
28 | 1 | Param66 | 0 | |
29 | 1 | Param68 | 0 | |
30 | 1 | Param70 | 0 | |
31 | 1 | Param72 | 0 | |
32 | 1 | Param74 | 0 | |
00 00 | 00 00 | |||
33 | 1 | Param83 | 1 | |
34 | 1 | Param84 | 1 | |
35 | 1 | Param85 | 1 | |
36 | 1 | Param86 | 1 | |
37 | 1 | Param87 | 1 | |
38 | 1 | Param88 | 1 | |
39 | 1 | Param89 | 1 | |
40 | 1 | Param90 | 1 | |
41 | 1 | Param91 | 0 | |
42 | 1 | Param92 | 0 | |
43 | 1 | Param93 | 0 | |
44 | 1 | Param94 | 0 | |
45 | 1 | Param95 | 0 | |
46 | 1 | Param96 | 0 | |
47 | 1 | Param97 | 0 | |
48 | 1 | Param98 | 0 | |
FF00 | 00FF | |||
49 | 1 | Param75 | 0 | |
50 | 1 | Param76 | 0 | |
51 | 1 | Param77 | 0 | |
52 | 1 | Param78 | 0 | |
53 | 1 | Param79 | 0 | |
54 | 1 | Param80 | 0 | |
55 | 1 | Param81 | 0 | |
56 | 1 | Param82 | 0 | |
00 00 | 00 00 |
Therefore the cfg #2 data segment results in:
0000 0000 FF00 0000
Final assembly configuration of 1734-OB8E
Configure 1734-AENT
Specify Connection
EtherNet/IP is a connection-oriented protocol, therefore the connection should always be specified first.
Open the EDS for 1734-AENT and go to the section [Connection Manager], assuming that Connection1 (Exclusive Owner) will be used:
Configure connection settings
Please choose "Connection" in the Navigation Area of the Modular Generic Adapter. Select the Module “Slot<0> 1734-AENT”.
Decode the field "trigger & transport" and "realtime format", which are defined in Connection1.
These parameters describe the connection variables, which have to be filled in the Connection configuration Window in Sycon.net.
The free Tool "EZ-EDS" from ODVA (https://www.odva.org/software/EZ-EDS-Download), can be used to make decoding of the parameters easier.
Therefore, open the EDS by selecting "File → Open…”. Select "Generic EDS" as EDS type and ignore the upcoming error messages.
When the file is successfully opened, select “Connection1” in the left tree view.
The following dialog window:
Based on these informations, now configure the Connection Area in Sycon.net:
Don't forget, to set the Connection name to "Connection1".
Configure assembly instance ID
Choose "Assembly" in the Navigation Area of the Modular Generic Adapter now. Select the Module “Slot<0> 1734-AENT”.
Now the Connection Path has to be filled in. The Connection Path is described in the EDS here:
Switch back to EZ-EDS, select “Connection1” in the left tree view.
Click the Button "Decode Path". A new Window will pop up. Select decimal format in this dialog now the instance ID can be read out for Configuration in Sycon.net.
Based on the above information, the assembly Instance ID can be specified.
The instance "20 04 24 66 2C 64 2C 65" can also be decoded manually as follows:
20 04 | 24 67 | 2C 64 | 2C 65 |
---|---|---|---|
Logical Segment, Class ID 0x04(4) | Configuration path, instance ID 0x66 (102) | O2T Connection Point, output Assembly instance ID 0xBE (100) | T2O Connection Point, input Assembly instance ID 0x04 (101). |
Configure Input assembly length
The Input assembly lengts results in the total length of all Modules (in this case the input assembly length of 1734-IB8 + 1734-OB8E).
Since these are already filled in, you can can just summ up the two assemby length 5 + 5 = 10.
Configure Output assembly length
The Input assembly lengts results in the total length of all Modules (in this case the input assembly length of 1734-IB8 + 1734-OB8E).
Since these are already filled in, you can can just summ up the two assemby length 0 + 1 = 1.
Configure configuration assembly length
The configuration assembly length is automatically calculated by the data length of cfg. #1 and cfg. #2 data segment.
The user is not allowed to directly edit this length.
Configure cfg. #1 data segment
The cfg #1 data segment is defined field "$ config part 1" of Connection1:
Since this area is empty, no cfg. #1 data segment has to be defined.
Configure cfg. #2 data segment
The cfg #2 data segment is defined field "$ config part 2" of Connection1:
Here Assem9 is used to define the format. Go to the definition of Assem9:
The Assemblys Member informations can be read as follows:
Member Size | Member Reference | |
---|---|---|
1st Member | 32 | 1 |
2nd Member | 16 | Param 200 |
3rd Member | 8 | Param 204 |
4th Member | 8 | Param 205 |
5th Member | 8 | Param 206 |
6th Member | 8 | Param 207 |
The "data size in Byte" has a size of 2 Byte, with a default value of 1.
Since This describes the Chassis Size, the value should be set to 3 (See parameter description: "Enter the number of I/O modules plus 1 additional slot for the adapter").
So the data of Param200 is 0x0003.
When analyzing all Members and Parameters, the following table can be created:
Member Size | Member Reference | Data (Hex) | Swap | |
---|---|---|---|---|
1st Member | 32 | 1 | 0000 0001 | 0100 0000 |
2nd Member | 16 | Param 200 | 00 03 | 03 00 |
3rd Member | 8 | Param 204 | 00 | 00 |
4th Member | 8 | Param 205 | 01 | 01 |
5th Member | 8 | Param 206 | 00 | 00 |
6th Member | 8 | Param 207 | 01 | 01 |
Total | 0100 0000 0300 0001 0001 |