No description
Find a file
Clio Liu dca7797d68 feat(plc): ST sources, generators and the Modbus contract
The PLC program from the old repo's 04-plc/, flattened into one folder and
checked against the running system.

Verified during the move:
  - build.py regenerates register-map.csv byte-identically (69 points)
  - polled the live PLC: the SIMULATION build is what is deployed and
    running, %MW21=2 wet weather, values moving, run hours accumulating
  - addresses, %MW HR1024 segmentation and %QW17/%QW7 signedness all
    match the map

Corrections against the old repo:
  - 10_globals.st header cited WRPS-CTL-002 (the FDS); it means CTL-003
  - build.py wrote the map to its parent directory; now beside itself
  - deploy/README.md was a single-file folder; now DEPLOY.md
  - dropped the empty editor-devices/remote/
  - README no longer claims the simulation build is uncompiled - it is
    the one running

Two open items are now stated plainly rather than buried:
  - none of the 20 acceptance tests in CTL-003 have ever been run
  - the OpenPLC Editor lived only on the retired dev-ubuntu host, so
    there is currently NO route to deploy a new program (DEPLOY.md 0)

Documents the setpoint distinction: IO_MUX seeds %MW defaults once at
first scan, operators retune them live, and that tuning exists only in
the container volume - a restart reverts it.
2026-09-02 15:48:49 +10:00
01-design docs(design): design set, with its origin and the method that made it 2026-09-02 15:25:54 +10:00
03-plc feat(plc): ST sources, generators and the Modbus contract 2026-09-02 15:48:49 +10:00
99-reference chore: preserve reference files byte-for-byte 2026-09-02 15:17:49 +10:00
.gitattributes chore: preserve reference files byte-for-byte 2026-09-02 15:17:49 +10:00
.gitignore feat(plc): ST sources, generators and the Modbus contract 2026-09-02 15:48:49 +10:00
README.md chore: initialise wrps-demo-kit 2026-09-02 15:07:31 +10:00

wrps-demo-kit

A kit for building demo automation use cases on Yokogawa CI Server (SCADA) and OpenPLC Runtime (soft PLC, in Docker) — with the Waterloo Road Pump Station (WRPS) demo as its first worked example.

Note

This repository is being assembled. It is the successor to an earlier working repo, and material is being reviewed and moved across one folder at a time. Sections not yet present have not yet been audited.

The two systems

Role Host Address
SCADA — Yokogawa CI Server yau-poc-cicore1 10.0.0.21
PLC — OpenPLC Runtime container yau-sls-poc-lin001 10.0.0.17

Architecture invariant: OpenPLC Runtime is the Modbus TCP server (slave) on port 502. CI Server is the Modbus client (master) and polls it. The register map is the contract between the two sides.

Layout

To be filled in as each part is brought across.


Assembled from the WRPS working repo, 2026-09.