# Atom Modbus Library (`atMb`) CODESYS library with a native C engine for Modbus TCP client, RTU client and TCP slave operation. Public namespace: `atMb`. No ModbusFB dependency is required. ## Use the library Open `library/CmpAtomModbus.library` in CODESYS, or install it using Library Repository and reference it from your application. Keep its project title and external C interface settings intact. The development target is Raspberry Pi 64 SL (ARM64), using CODESYS 3.5 SP22; runtime/target compatibility must be checked when changing platforms. Read [the user guide](docs/USER-GUIDE.md) for examples and [the API reference](docs/API-REFERENCE.md) for members and methods. ## Repository contents | Path | Purpose | |---|---| | `library/CmpAtomModbus.library` | Working CODESYS library file; edit IEC code here | | `component-source/src/` | C protocol, client, serial and server implementation | | `component-source/component/` | Active component frame, ABI interface and makefile | | `component-source/tests/` | Host protocol and bridge tests | | `ExtensionSDK/` | Supplied SDK required for component builds | | `artifacts/arm64/libCmpAtomModbus.so` | Supplied ARM64 native binary | | `docs/BUILD-AND-USAGE.md` | Native build and deployment instructions | | `docs/USER-GUIDE.md` | Calling patterns, configuration and diagnostics | | `docs/API-REFERENCE.md` | Detailed IEC reference based on the last working export | | `docs/CLEANUP.md` | Removed files, preservation checks and update workflow | | `docs/VALIDATION.md` | Validation scope | | `SHA256SUMS.txt` | Current working-file snapshot checksums, excluding Git metadata | ## Build on the Pi Run from the repository root: ```sh sudo apt install build-essential m4 dos2unix python3 make -C component-source/component SDKDIR="$(realpath ExtensionSDK)" clean make -C component-source/component SDKDIR="$(realpath ExtensionSDK)" all make -C component-source test ``` Native output: `component-source/component/out/libCmpAtomModbus.so`. See the build guide before updating the embedded component. An ARM64 binary cannot run on ARM32 or x86-64; build for each architecture and verify the SDK/runtime combination. The supplied binary has not been proven byte-equivalent to this source. ## Update and review Edit the IEC library in CODESYS. After significant IEC changes, export the current objects and update the API reference against that export. Binary `.library` files cannot be reviewed as ordinary text diffs. This snapshot intentionally contains no old migration exports or generators that overwrite current IDE changes. This ZIP retains the existing Git history and remote metadata. Cleanup changes are uncommitted and unstaged. Review locally with `git status` and `git diff`, then stage/commit when ready. No push is performed by this package. Online-change qualification remains future work. Keep all native calls owned by one IEC task. No new license is assigned to the supplied SDK/source files.