No description
Find a file
Clio Liu 0bbff348f8 docs(plc): architecture overview
The folder described behaviour and listed points, but nothing showed the
shape of the program. ARCHITECTURE.md covers what a reader needs before
opening any ST file:

  - counts up front: 4 function blocks, 3 programs, 1 task, 69 located
    variables, 65 process globals, 69 Modbus points, 1 comms interface
  - the one architectural rule - only 10_globals.st and 50_prog_io_mux.st
    may touch located variables, enforced by build.py - and why it is what
    lets identical control logic run against a simulation or a real plant
  - a layer diagram: Modbus slave / IO_MUX / CONTROL + its four FBs /
    SIMULATION, with the direction of every flow
  - what each of the 10 source files owns, with line counts
  - execution order per build, and why SIMULATION runs first
  - the 100 ms task interval is not independently adjustable: four POUs
    integrate against a hardcoded SCAN_S := 0.1
  - one comms interface, which is a runtime plugin rather than program
    code - the reason 502 can be published and still refuse connections
  - the 69 points by function code, with the %MW HR1024 warning
2026-09-02 16:51:45 +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
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.