// the find
emersbergerl/opcua2powerlink
Open source implementation of gateway for OPC UA (OPC Unified Architecture) to the real-time Industrial Fieldbus POWERLINK
A CMake-based C gateway that bridges OPC UA (via open62541) and the POWERLINK industrial fieldbus (via openPOWERLINK). It auto-generates OPC UA nodesets and POWERLINK object dictionaries from an XDD device description file at build time. Aimed at industrial automation engineers who need to expose POWERLINK device data over OPC UA without writing glue code by hand.
The XDD-driven code generation at CMake time is genuinely useful — you drop in a device description file and get a working OPC UA server mapping without manually wiring up every object. Vendoring both open62541 and openPOWERLINK as submodules means the build is self-contained and won't break when upstream APIs shift. Supporting both Linux kernel module and user-space PCAP modes for the POWERLINK CN driver gives real flexibility for performance vs. deployment simplicity tradeoffs. The CMake structure is clean and the build instructions are accurate.
Abandoned in January 2019 — seven years of no activity means the vendored open62541 is at an old pre-1.0 release and the security posture is unknown; OPC UA without current security profiles is a compliance problem in any serious IIoT deployment. The actual gateway logic is essentially two files (main.c and event.c) with no documentation on data flow, error handling, or what happens when the POWERLINK network drops. Linux support was listed as 'coming in 2 weeks' in the README and never shipped in any visible form. Pre-built `.a` and `.dll` files checked directly into the repo is a red flag for supply chain hygiene.