Messaging Questions regarding "Large" Messages

JD87

Member
Join Date
Oct 2020
Location
Alabama
Posts
6
I have an application where I am trying to replace a PC to PC communication function with a PLC to PC communication. This would allow me to design and monitor tracking of the system in a more robust method. I need to be able to send an XML file through Ethernet IP from an Allen Bradley Compact Logix PLC to a PC. I know there are some limitations on file size but I'm hoping a block of messages can be sent to supplement my issue. The size can vary but most of the time I am needing to send a message 3-4 thousand bytes. I am reading through the manuals on Messaging and it gets a bit confusing for me there. I'm not sure where to get started for testing.
 
Modern CompactLogix support packet sizes of 4002 bytes. There is some overhead so that doesn't necessarily mean 4002 bytes of user data, it will be a little less than that. What software are you running on your PC to get/receive this data?
 
This software is a Serialization Tracking System. I will be collecting serial numbers and transferring them in groups of 24 in an XML format to this PC for Aggregation into the next packaging level. For Example, I will be Serializing 24 Units and 1 Case, then I will transmit that data to the PC for Aggregation to combine them under the Case's Serial Number. Here is an example of a file that is transferred between the current PC's

H2Fhdm7
 
Connected messages support "Large Connection". But without details on what message you are using it's impossible to say if this applies to your case.
 
This software is a Serialization Tracking System. I will be collecting serial numbers and transferring them in groups of 24 in an XML format to this PC for Aggregation into the next packaging level. For Example, I will be Serializing 24 Units and 1 Case, then I will transmit that data to the PC for Aggregation to combine them under the Case's Serial Number. Here is an example of a file that is transferred between the current PC's

H2Fhdm7

How are you planning on transmitting this data, CIP? Or are you talking about running an OPC/DDE connection on this PC?

Messaging directly to PCs would require custom software, which hosts a CIP Object on the PC. This would also introduce other limitations, so you might want to look into that.
 
Sounds to me like you should be looking at some Scada software.

This would be easy in a Scada environment, write tags to database Array, then run query for case.

report could be broke down as to Serial number of case or UPC(Code) and then each serial number(UPC CODE) of every item in case.

Just my observation.
 
Sorry for the late response, I had to put this project aside but I am now working on it again. To give more information, we have an existing Custom Solution that handles Serialization Aggregation. This system stores the Status of all of the Serial Numbers we currently are packaging on a line. I am trying to replace the PC Based Subsystems that communicate to this system with an Allen Bradley PLC System. I have scoped out the Ethernet Communication and I know how it needs to be formatted when sent from the PLC. I can handle the gathering of the information needed to transmit. I just lack the knowledge of how to send the file to the PC system from the PLC in the format it needs. The file is in an XML format when its being sent.

Here is an example of a message:

$%Remoteheader%$ ver=00.00.0100007db.1%<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE boost_serialization>
<boost_serialization signature="serialization::archive" version="5">
<class_Remotemessages__ContainerVerificationRequest class_id="0" tracking_leve="0" version="4">
<product_reference_number_>13</product_reference_number_>
<parent_epcs_ class_id="1" tracking_level="0" version="0">
<count>1</count>
<item_version>0</item_version>
<item>(01)40364950343111(21)100000000127(17)231231(10)12345678</item>
</parent_epcs_>
<products_epc_>
<count>12</count>
<item_version>0</item_version>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
<item>(01)00364950343113(21)100000000035</item>
</products_epc_>
<system_name_>Aggregation1</system_name_>
<device_name_>CaseAgg</device_name_>
<is_good_>1</is_good_>
class_RemoteMessages__ContainerVerificationRequest>



Sorry if some of the lines got crunched. I had to manually type this and it will only let me type a line so long. I essentially need to replace the serial numbers and send this file over ethernet to the Serialization System.
 
Am I crazy to suggest this is similar to sending standard forms with a few changing fields to a printer?


What software (socket API? webAPI?) is used by the PC on the receiving side of the transmission? Do you have control or access to the software at either end of the current communication setup?
 
I have no control or access to modify the Receiving System. I don't have any more information about its software then what I was able to scope. Here is what I received:

Type: IPv4 (0x0800)
Transmission Control Protocol, Src Port: 54305, Dst Port:5002, Seq: 1461, Ack: 1, Len: 561
 
That might - might - be a straightforward socket interface. do you have a dump (tcpdump , wireshark, etc.) of the packets in the transmission of one complete XML object? I would expect there to be a dialogue.
 
Yes, I have that information. The example I showed came from a wiresharked conversation between the subsystem and the main system.
 
If you have the packets for one or a few transfers, including the packet data, then someone should be able to reverse-engineer the protocol.
 
TCP is a byte stream, so feel free to break the message up into smaller chunks. It looks like it is using delimiters to differentiate start of messages.
Here is the manual you probably need, unless you have an older CompactLogix:
https://literature.rockwellautomation.com/idc/groups/literature/documents/at/enet-at002_-en-p.pdf
It says you can have up to 3972 Bytes per chunk, or 472 Bytes depending on your CompactLogix.
It also lists some knowledge base articles in that document with sample applications. Can't go wrong.
 

Similar Topics

Hi, guys, we want to make a small project with InView Messaging software and Logix 5000 using Ethernet. Could you tell us where we get find some...
Replies
1
Views
2,392
I am setting up a connection between a SLC5/05 and a CLX processor (First Time CLX user). I have read through several different AB manuals and...
Replies
2
Views
3,345
Hey guys. Got a strange one. Was sent to a site where the VNC access is very poor. The IT has assisted and a Wireshark report shows data...
Replies
7
Views
319
I have a redundant ControlLogix being set up. This program reads a value from a remote site which happens to be SLC PLC. Rockwell mentions SLC...
Replies
2
Views
95
Hello, I have a ControlLogix redundant controller being set up. The program reads a value from a remote site which hosts a SLC PLC. Rockwell...
Replies
0
Views
77
Back
Top Bottom