Compact Logix 5370 controllers are unable to handle 800 byte UDP packets due to the limitations of the processor sockets buffer, which is approximately 470 bytes. If a larger message is received, only a portion of it can be accessed before the rest becomes inaccessible. Since the UDP data source cannot be modified in terms of packet size or structure, alternative methods must be considered to transfer the data to the controller successfully. One option is to utilize Anybus or ProSoft modules that support compatible networks. It is important to identify the appropriate UDP sockets network or standard protocol that can work with raw UDP packets. Another approach is to use a C or Python script to intercept and retransmit long packets in shorter UDP packets that the controller can handle, possibly through a network PC. Additionally, the pylogix Python library can serve as a gateway from UDP to CIP instead of using a hardware module. It is important to explore other feasible options that may have been overlooked.
If you're looking to send longer messages, consider utilizing the "Large Message" feature which can support nearly 4K bytes of data. However, I'm unsure if this feature is compatible with 5370 controllers and which specific message it should be enabled for.
The most recent sockets PDF released by Rockwell confirms this information. However, an earlier version of the document found online clearly states that the 5370 series, specifically our controller (1769-L33ER), does not support Large Sockets. I extensively investigated this issue at the time, trying various settings and conducting tests with a spare controller. The results confirmed the limitation, possibly differing by only a byte or two. In hindsight, I should have considered documenting my findings for future reference.
Contr_Conn mentioned that the "Large Message" option can potentially allow for nearly 4K bytes of data transfer. While it may work on all 5370 controllers, the exact message it should be activated on is unclear. This feature has been successfully tested on various 5370 controllers during pylogix testing, indicating that it may be a UDP limitation affecting its functionality.
Rest assured that versions 5370 V20 and higher have robust support for large connections. There is no need to manually enable this feature. Can you provide details on the error code you are experiencing and the current firmware revision of your controller? I will be able to assist further with troubleshooting tomorrow.
When working with UDP, we operate within the Open Sockets domain. The 5370 series restricts message size to 500 bytes, whereas other controller series support 'large sockets' up to 4k. Utilizing sockets and pylogix python libraries made UDP to CIP data transfer simple and efficient. However, this setup currently relies on a Windows OS. What is the most reliable hardware configuration for pylogix that rivals a traditional hardware module? Would a Raspberry Pi or a comparable device be a suitable option?
I really appreciate the depth of your insights here. I agree with you, using Anybus or ProSoft modules could be a workaround, considering their ease of integration with different networks. The idea of using an intermediary script to break down the packets also sounds feasible. I would add one could also consider upgrading the hardware if cost and logistics allow. It might be worth investing in a more robust controller that can handle larger UDP packets, avoiding the need for additional modules or scripting workarounds. It's all about balancing cost, efficiency, and long-term reliability, I guess.
I agree that the options you listed are all viable strategies given the limitations of the Compact Logix 5370 controllers. However, one consideration we might make before deciding to go with a hardware module like Anybus or ProSoft or using interception scripts, is the potential latency impact and the overall efficiency of the processing time. If we are working with time-critical applications, then being able to handle data traffic swiftly becomes paramount. Also, the addition of a network PC or external module could add more complexity and have cost implications. So, using an existing python library like pylogix to create a gateway could be more cost-effective and simpler if your team already has proficiency in Python. But of course, this should be backboned by thorough performance tests.
I think your suggestion of using a C or Python script to break down the long packets into smaller ones is an intriguing solution, particularly for those who may want to avoid the additional expense of hardware modules like Anybus or ProSoft. That being said, it would require a certain level of programming knowledge and maintaining such a script could be taxing over time. Thus, while it's a feasible solution, I believe it comes with its own unique set of challenges. The pylogix Python library looks promising and could potentially simplify this process though, definitely something worth looking into more.
Great points! Another potential solution could be to implement a message queue system where the initial UDP packets are received by a dedicated PC, which then breaks the data into manageable chunks and sends them to the Compact Logix controller. This way, you can avoid packet loss while maintaining the integrity of the information being transmitted. Additionally, if thereβs flexibility in the network architecture, using MQTT could help streamline the process by allowing lightweight messaging with support for QoS levels, ensuring delivery even if the packets need to be segmented. It might also be worth looking into existing middleware solutions that can robustly handle UDP and transform it to a format more suitable for your controller.
β Work Order Management
β Asset Tracking
β Preventive Maintenance
β Inspection Report
We have received your information. We will share Schedule Demo details on your Mail Id.
Answer: - The controllers have limitations in their processor sockets buffer, which is approximately 470 bytes, causing only a portion of larger packets to be accessible.
Answer: - Consider using Anybus or ProSoft modules that support compatible networks, identifying appropriate UDP sockets network or standard protocols, or using scripts like C or Python to intercept and retransmit long packets in shorter UDP packets.
Answer: - The pylogix library can serve as a gateway from UDP to CIP, providing an alternative to using hardware modules for data transfer.
Answer: - Yes, it is important to explore additional options that may have been overlooked, such as utilizing network PCs for packet processing or finding compatible networks that can work with raw UDP packets.
Join hundreds of satisfied customers who have transformed their maintenance processes.
Sign up today and start optimizing your workflow.