# Editor `devices/` — reference copy, NOT generated These files are the **hand-made** half of the OpenPLC Editor project. Everything else in the project (`project.json`, `pous/`) is generated from `src/` by `../gen_project.py`; `devices/` is not, because it is configured through GUI dialogs and holds machine-specific settings. They live here so the setup is not lost when the Editor project is recreated — which it will have to be, because the machine that held it has been retired. See `../DEPLOY.md` §0. **This is a reference copy, not the live one.** `DEPLOY.md` §A is the procedure for reproducing it through the GUI; these files show what the result should look like. Captured 2026-08-14, from the working setup that first served Modbus data. | File | What it is | |---|---| | `configuration.json` | Device board (`OpenPLC Runtime v4`) and runtime address | | `pin-mapping.json` | Board pin map — Editor default, unused by this program | | `servers/Modbus01.json` | The Modbus TCP **server** definition — the file that enables the runtime's `modbus_slave` plugin | ## Two things to know before reusing these **`configuration.json` says `localhost`, and that is now wrong.** It was correct when the Editor and the runtime were on the same host. The runtime is now on `yau-sls-poc-lin001`, so a new Editor installation must point at **`10.0.0.17`**, port `8443`. **`servers/Modbus01.json` says `networkInterface: 0.0.0.0`, and that is correct — leave it alone.** It looks like it contradicts the container publishing port 502 on `10.0.0.17` only, but the two settings operate at different layers: | Layer | Setting | Effect | |---|---|---| | PLC runtime, **inside** the container | `0.0.0.0:502` | the Modbus slave listens on all of the container's own interfaces | | Docker, **outside** the container | `10.0.0.17:502:502` | only the host's LAN address forwards to it | Narrowing the runtime's own bind address gains nothing and risks the slave not listening at all. The **Docker publish** is the security control. See `../../02-environment/`. ## What is deliberately absent There is **no `remote/` directory**. Remote Devices is the Modbus *master* configuration — it would make the PLC poll someone else, inverting the architecture invariant, and its IO groups claim `%IW` addresses that collide with the field inputs in `src/10_globals.st`. CI Server needs no entry in the PLC project at all. It is the client; it simply connects.