No description
Find a file
Clio Liu bed824a9a5 test: Modbus verification harness
The old 06-tests, with paths retargeted and both tools proven to run.

Verified end to end during the move - fake_plc.py served on a spare port
and verify_modbus.py read it:

    read     : 69/69 points OK
    writable : 15/15 RW points OK
    PASS     : the runtime matches the register map

fake_plc.py --expect was BROKEN by the PS_* removal in the previous
commit: it fell back to the scada_tag column, which no longer exists, and
died with KeyError. It now uses ci_item, so the names it prints are the
CI Server items an operator actually sees. Regenerated
expected_readings.txt; fake_values.json came back byte-identical, which
confirms the seed really is deterministic as the docstring claims.

README corrections:
  - default host was dev-ubuntu; now 10.0.0.17, with the container
    fallback for when that address is not routable
  - said 11 RW points; there are 15 (11 control + 4 simulation)
  - the 'reading the output' section described the FIELD build - tripped
    pumps, alarm word 16500, seeded %MW defaults - as though it were what
    you would see. The deployed PLC runs the SIMULATION build. Both are
    now shown side by side, with the simulation column marked as the one
    that is live.
  - says plainly that none of the 20 acceptance tests are implemented
    here: this harness verifies the contract, not the behaviour
  - adds a caution against running fake_plc.py on port 502 of the live
    host, where the real PLC is serving and CI Server is polling
2026-09-02 17:27:30 +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
02-environment feat(env): hosts, access, ports and the PLC container 2026-09-02 17:24:09 +10:00
03-plc docs(plc): architecture overview 2026-09-02 16:51:45 +10:00
04-scada fix(scada): PS_* placeholder tags out, CI Server item names in 2026-09-02 17:21:57 +10:00
05-tests test: Modbus verification harness 2026-09-02 17:27:30 +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(scada): CI Server tag database, historian, displays 2026-09-02 17:16:18 +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.