61 lines
2.9 KiB
Markdown
61 lines
2.9 KiB
Markdown
# 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.
|