No description
Find a file
Clio Liu 0927323e13 fix(scada): PS_* placeholder tags out, CI Server item names in
scada-points.csv led with a scada_tag column of PS_* names derived from
the PLC register map - PS_STN_WET_WELL_LEVEL and the like. CI Server never
adopted them. They named nothing that exists, nothing in this repo read
them, and read as if authoritative they have already caused a real defect
in a downstream project.

Replaced with ci-server-points.csv, the as-built delivery from the CI
Server side (copied from yau-plant-assistant, not re-derived). It is keyed
on the CI Server item, with the station and point name beside it:

    ci_item,ci_station,ci_point,description,poll_group,...

gen_scada_points.py now reproduces that file byte-identically, taking the
names from the LEAF table in gen_ciserver_qli.py so the CSV and the .qli
cannot disagree. tag_for() is gone. Verified: the CSV and all three .qli
regenerate unchanged, and all six displays still build.

The four poll groups keep their PS_ names - PS_STATUS_BITS, PS_PUBLISHED,
PS_SETPOINTS, PS_SIM_CONTROL. Those are live configuration, and are the
only legitimate PS_ names.

modbus_points/README.md gains a 'four namespaces' section - instrument tag,
PLC address, CI Server point, CI Server item - since confusing them is what
produced the placeholder column in the first place.

Also settles the historian drift left open in the previous commit. The
live export is the authority: the server runs WRPS_ONE_SEC at 5 SECONDS,
not 1, and WRPS_THIRTY_SEC at 30 seconds rather than a 60 second
WRPS_ONE_MIN. Code assuming 60 s was wrong by twelvefold. Recorded in
historian/README.md with a caution never to hardcode a sample interval.

Every .qli in the delivery was byte-identical to ours - only the CSV
differed.
2026-09-02 17:21:57 +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 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
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.