Install the robin package on your Linux machine (Ubuntu/ROS 2).
As industrial automation continues its trend toward greater flexibility and intelligence, the connection between traditional control systems and robot operating systems will only grow. CODESYS and ROS 2 are at the forefront of this convergence, providing a complete toolchain for building the next generation of smart, connected, and highly capable automation systems.
Internally, the FB serializes the data variant based on a pre-generated type map.
Leverage built-in CODESYS OPC UA servers to communicate with ROS 2 nodes. 2. Technical Architectures for CODESYS-ROS2 Communication codesys ros2
More integrated systems where the PLC needs to be a "first-class citizen" in the ROS graph. 3. Shared Memory (The High-Performance Route)
Inside your codesys_bridge package, create a node script ( bridge_node.py ) utilizing the asyncua library to fetch data from CODESYS and publish it onto a ROS2 topic.
While this method is simple to implement, it does not provide the same level of integration as a dedicated bridge. It works best for non‑real‑time status monitoring or for low‑frequency command signals. Install the robin package on your Linux machine
Despite the variety of integration methods, a generalized procedure can be applied to most approaches. This walkthrough provides a high-level roadmap for connecting CODESYS and ROS 2.
Direct integration is non-trivial:
Bridging Industry 4.0: Integrating CODESYS with ROS 2 The integration of , the global standard for industrial controller programming, with ROS 2 (Robot Operating System), the premier framework for advanced robotics, represents a significant leap for Industry 4.0 . By combining the deterministic reliability of PLCs with the advanced perception and planning capabilities of ROS 2, engineers can build sophisticated, safety-critical robotic systems. Why Integrate CODESYS and ROS 2? Internally, the FB serializes the data variant based
This is the most efficient approach, ideal for high-speed motion control.
Set up your ROS2 workspace on a Linux machine (Ubuntu/ROS2 Humble/Jazzy).