CODESYS.EthernetIP-Assembly size

lostcontrol

Lifetime Supporting Member
Join Date
May 2009
Location
NeverSayNever
Posts
1,088
Hi,
I am experimenting with different devices & am battling the connection sizes.
At present, have a 1734-AENT/C, 1xOB8 & 1xIB8

I have tried following the examples, but keep getting invalid connection size.
Something I tried, was monitoring the web server IO connections when connected to a 1769 PLC using the EDS file. It told me 11 (out)/15(in) bytes

there is an example on the CodeSys site, but it is not as clear how to calculate exactly unfortunately.

is there a simpler way/template for doing this..?
 
Can you get a Wireshark trace.
Using the Molex/ODVA EtherNet/IP tools, using the explicit messaging, GetAttributeSingle command to class ID 0x04 (Assembly Object), Attribute ID 0x03 (Data) you get the assembly size in the response.
 
ahh,
so I get 8E 00 05 00.
Does that indicate 142 bytes as the total size, or 05 .?

also, is this a command that is supposed to be supported on all devices..?
The other device does not appear to be responding.
 
No, this means that this particular assembly is 2-bytes long and the process value us 0x0005. The 0x8F is the response to the GetAttributeSingle command (0x0E). The response always returns the service code (in case of 8-bit service such as GetAttributSingle service) with the 7th bit set.
 
Sorry my bad, it was 8E 00 05 00
So first Byte is the response to the request, bytes 2&3 the process value.?
byte 4 .?

On another device we have, the response is 8E 00 05 01 00 00.
Does this indicate 4x bytes.?

Does anyone have a link to the class/instances descriptions.?
ie. What is this assembly class & instance.? Is it the input or output?


thanks so far..
 
So use the latest Ethernet/IP addon in codesys.


Install the latest 1734-AENT/C EDS from Rockwell website (CODESYS > Tools > Device Repository..). Update the firmware of the 1734-AENT/C to match the EDS.


Now when you add the 1734-AENT/C to your Devices Tree, you get 0bytes out, 8 bytes in, chassis size of 1.


In your case, I would edit the connection, and change the output size to 1 and the input size to 10. This is because the two modules you have in Table 17 of 1734-UM016B-EN-P Assembly Connections for POINT I/O and ArmorPOINT I/O EtherNet/IP Adapters User Manual (rockwellautomation.com) use 1byte in (IB8) or 1byte in 1 byte out (OB8).


Make sure you change the chassis size in the config structure to 3 (2 modules + adapter).
 
So use the latest Ethernet/IP addon in codesys.


Install the latest 1734-AENT/C EDS from Rockwell website (CODESYS > Tools > Device Repository..). Update the firmware of the 1734-AENT/C to match the EDS.


Now when you add the 1734-AENT/C to your Devices Tree, you get 0bytes out, 8 bytes in, chassis size of 1.


In your case, I would edit the connection, and change the output size to 1 and the input size to 10. This is because the two modules you have in Table 17 of 1734-UM016B-EN-P Assembly Connections for POINT I/O and ArmorPOINT I/O EtherNet/IP Adapters User Manual (rockwellautomation.com) use 1byte in (IB8) or 1byte in 1 byte out (OB8).


Make sure you change the chassis size in the config structure to 3 (2 modules + adapter).
🍺:geek::geek:
this kywi salutes you.!!
That was the exact solution to what was required.

Now to get back to the Crevis unit...
 
I understand your explanation, but is different to the results I get..

for Get Attribute Single, Class #4 & Instance #3, the send request is '0E 02 20 04 24 03'
The response to this is '8E 00 05 00'


Now I do it to another device & the response is '8E 00 05 01 00 00', which I would interpret as 4x bytes based on the above explanation...
 
Can you get the Wireshark trace. I need to understand this device.
If you can filter the data it will be helpful. In the Wireshark address bar you can type "cip" without the quotation marks, and select the packets and only extract the require packets. I need to see all the overheads.
 
I understand your explanation, but is different to the results I get..

for Get Attribute Single, Class #4 & Instance #3, the send
By the way, the service 0x0E GdetAttribute single should be sent to Class 4, Attribute 3 (data) and instance number is the desired instance number.


This '0E 02 20 04 24 03' request is incorrect.
it should be '0E 03 20 04 24 03 30 03' if you need instance 3.
 
Last edited:
Hi Alfredo,
Thanks for your help so far. I’ve given up on the other adaptor as it not really something will use again, was just lying about.
Going to focus on getting some other devices function with the rPi.

No doubt will be back..
 

Similar Topics

Good day has anyone done a codesys DNP3 outstation on a PLC and is running using using the DNP3 SL offered by codesys. I NEED YOUR ASSISTANCE...
Replies
0
Views
51
Hi, I am trying to use Machine Expert on a M241 for writing to a modbus serial RTU (RS485) device. I am trying to use the Modbus_IOScanner and...
Replies
0
Views
129
Hello, I am making a program in Codesys 2.3 for an IFM CR0303 PLC. It is basically controlled by push-buttons that close circuits and everything...
Replies
10
Views
230
Hello everyone i do understand that you can create modbus registers to be read by a Modbus Master using the Modbus TCP Server and they are...
Replies
6
Views
242
I am looking for assistance with my codesys project I have setup a Modbus TCP Client to read data from a modbus device which is then processed...
Replies
8
Views
231
Back
Top Bottom