finds.dev← search

// the find

Naplesoul/Opcua-Modbus-Server

★ 3 · C · updated Feb 2022

A server converting OPC-UA to ModBus

A C server that bridges OPC-UA and Modbus, exposing Modbus RTU/TCP devices as OPC-UA nodes configured via a JSON file. Aimed at industrial automation scenarios where you need to integrate legacy Modbus hardware into an OPC-UA-based supervisory system.

The JSON-driven configuration is genuinely useful — you can map Modbus coils, holding registers, and input registers to OPC-UA nodes without recompiling. Support for both RTU (RS485/RS232) and TCP Modbus in one server is practical for real-world mixed environments. The byte-order field on float registers ('abcd', 'badc', etc.) shows awareness of the endianness mess that actually bites people with Modbus floats.

The build process requires patching a fork of open62541 to add a custom API (`UA_Server_writeWithoutCallback`) — if that fork diverges or goes stale, you're stuck, and it already has since the repo hasn't been touched since 2022. The entire project is a handful of C files with no tests, no CI, and no release artifacts, so you're on your own when something breaks. Error handling is minimal — if a Modbus device goes offline, it's unclear how the server recovers or signals the fault to OPC-UA clients. At 3 stars and 4 forks, there's no community to debug with.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →