Codesys Ros2 __full__ ❲Updated - Strategy❳
The shared memory approach used by ROBIN is the most real‑time‑friendly. Because both processes are on the same machine and the data exchange does not involve the kernel’s network stack, latencies can be kept under 100 µs. In contrast, WebSocket or OPC UA over TCP/IP may add unpredictable delays due to network scheduling and protocol overhead.
(Programmable Logic Controller), powered by CODESYS, ensuring that your factory floor runs with millisecond precision and safety. On the other, you have
Use the CODESYS MQTT library to publish PLC variables to a broker and subscribe to them via a ros2_mqtt bridge for non-real-time tasks.
Combining these two systems creates a powerful architecture where: codesys ros2
CODESYS allows easy integration of EtherCAT/CANopen devices, which ROS2 can manage through a bridge.
community has several open-source projects dedicated to communication libraries. Additionally, checking out the ROS 2 Hardware Interface
: AMRs navigate the warehouse floor using ROS2 Nav2. When the AMR arrives at a loading dock, it links with a CODESYS-controlled conveyor system to coordinate the safe, automated transfer of heavy freight. The shared memory approach used by ROBIN is
| Method/Approach | Core Technology | Key Characteristics | | :--- | :--- | :--- | | | OPC Unified Architecture | Standardized platform-independent communication; ideal for secure, data-centric integration with existing IT/OT infrastructure. | | Shared Memory | POSIX Shared Memory | Ultra-low latency, high throughput communication; best suited for real-time applications requiring high-speed data exchange on the same device. | | WebSockets / ROS Bridge | WebSockets | Enables communication over standard web ports; good for non-real-time data exchange and integration with web-based tools. | | Specialized Middleware (ROBIN) | Custom Protocol | Dedicated, high-performance bridge for real-time data exchange; leverages EtherCAT for hard real-time communication. | | ros_canopen | CANopen | A standard ROS/ROS2 package that provides CANopen communication, often used by CODESYS devices over physical CAN buses. |
Highly standardized; minimal setup on the CODESYS side.
The integration of (a widely-used IEC 61131-3 soft PLC platform) and ROS2 (Robot Operating System 2) represents a powerful shift in industrial automation, bridging the gap between traditional deterministic PLC control and modern, intelligent robotics . If you share with third parties
What (such as UDP, OPC UA, or MQTT) do you prefer for the bridge? Share public link
Requires a CODESYS library (like the Robin library ) to read/write memory directly and a dedicated ROS 2 node to read that same memory. 2. MQTT or OPC UA (Standardized & Interoperable)
int main(int argc, char* argv[]) // Initialize ROS 2 rclcpp::init(argc, argv);
This public link is valid for 7 days and shares a thread, including any personal information you added. This link or copies made by others cannot be deleted. If you share with third parties, their policies apply. Can’t copy the link right now. Try again later.


