🚧 WIP
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
| Project | `wago-modbustcp-simulator-py` |
|
||||
| Version | 1.4 (Draft for review) |
|
||||
| Date | 2026-10-03 |
|
||||
| Status | Framework phase; module addressing implemented (FR-4.3.11); service/container deployment implemented (§12); plain-text request tracing implemented (NFR-6.4); clean CLI error handling implemented (NFR-6.5 CLI part); web UI §10 in implementation (M1–M5 done: auth, overview, manipulation, diagnostics, configuration; M6 scenario view open); long-duration simulation (§8), bench mode (§9), runtime device configuration (§11 — coupler/module subset now covered by web UI M5), multi-vendor device profiles (§13) and additional fieldbus protocols PROFINET/COMLI (§14) requested |
|
||||
| Status | Framework phase; module addressing implemented (FR-4.3.11); service/container deployment implemented (§12); plain-text request tracing implemented (NFR-6.4); clean CLI error handling implemented (NFR-6.5 CLI part); web UI §10 in implementation (M1–M5a done: auth, overview, manipulation, diagnostics, configuration, channel names, import/export, split overview; M6 scenario view open); long-duration simulation (§8), bench mode (§9), runtime device configuration (§11 — coupler/module/channel-name subset now covered by web UI M5/M5a), multi-vendor device profiles (§13) and additional fieldbus protocols PROFINET/COMLI (§14) requested |
|
||||
| Target device simulated | WAGO 750-362 / 750-362/0000-0001 FC Modbus TCP (G4) bus coupler |
|
||||
| Reference documents | `docs/m07500362_xxxxxxxx_0en.pdf` (750-362 Modbus TCP manual), Modbus TCP specification (modbus.org) |
|
||||
|
||||
@@ -919,6 +919,34 @@ Terminal monitors (§9) suffice for single engineers, but FAT benches are
|
||||
Modbus watchdog settings, I/O Config with SAVE CONFIG, Modbus Mapping
|
||||
overview, address-selection DIP switch) are specified in §11; §10 covers
|
||||
value/state oversight and manipulation.
|
||||
- FR-10.2.11: **Channel names** (requested 2026-10-03): every module
|
||||
channel can carry an application-specific name (e.g. `start_button`,
|
||||
`tank_level`). Names live in the node configuration — not in the
|
||||
module catalog (catalog articles are shared per type) — persisted
|
||||
alongside the module list, and are re-applied after process-image
|
||||
rebuilds (§11). Unnamed channels fall back to the generic channel
|
||||
label (e.g. `DI 1`). Names surface everywhere the UI lists a channel:
|
||||
node overview, the channel list, the configuration editor, and
|
||||
tooltips.
|
||||
- FR-10.2.12: **Import/export of module configuration** (requested
|
||||
2026-10-03): the complete module configuration — module list with
|
||||
slot order, per-channel names, and coupler settings — can be
|
||||
downloaded as a single JSON file and imported back. Import validates
|
||||
the payload (known articles, ≤ 64 modules, name shapes) and applies
|
||||
it atomically: module rebuild + channel names + coupler settings in
|
||||
one step, with the same persistence behavior as SAVE CONFIG (§11).
|
||||
Export/import makes FAT benches shareable and reproducible between
|
||||
engineers and benches.
|
||||
- FR-10.2.13: **Split overview** (requested 2026-10-03): the overview
|
||||
page is divided in two — the realistic node graphic (DIN rail with
|
||||
LEDs, FR-10.2.2) on top, and below it a scrollable **channel list**:
|
||||
one row per channel with the I/O code (`DI0.0`), the configured
|
||||
channel name (if any), and a control for the value — a switch for
|
||||
DI/DO and a numeric field for AI/AO — which both displays the live
|
||||
value and manipulates it (same semantics as FR-10.2.4: DI = field
|
||||
side, DO/AO = master-side force through internal paths). The list
|
||||
updates live like the rail (FR-10.2.3) and is the primary working
|
||||
surface for benches with many channels.
|
||||
|
||||
### 10.3 Implementation decisions (binding, 2026-10-03)
|
||||
|
||||
@@ -979,6 +1007,8 @@ src/wago_sim/
|
||||
| `POST /api/diagnostics/inject-fault`, `POST /api/diagnostics/clear-fault` | LED / module-diagnosis injection | 10.2.5 |
|
||||
| `GET/PUT /api/config/coupler` | watchdog settings, response delay, idle timeout, MAC-ID | §11 subset |
|
||||
| `GET/PUT /api/config/modules` | module list CRUD + process-image rebuild | §11 FR-11.2.1–11.2.4 |
|
||||
| `GET /api/config/export` · `POST /api/config/import` | full configuration (modules + channel names + coupler) as JSON | 10.2.12 |
|
||||
| `GET/PUT /api/config/channel-names` | read/write per-channel names | 10.2.11 |
|
||||
|
||||
### 10.6 Milestones
|
||||
|
||||
@@ -989,6 +1019,7 @@ src/wago_sim/
|
||||
| M3 | Manipulation — toggle/pulse/ramp, AI engineering units, master-side force |
|
||||
| M4 | Diagnostics — watchdog/statistics/diagnosis view, reset, fault injection |
|
||||
| M5 | Configuration — coupler forms; module CRUD with image rebuild and persistence |
|
||||
| M5a | Channel names (FR-10.2.11) + configuration import/export (FR-10.2.12) + split overview with channel list (FR-10.2.13) |
|
||||
| M6 | (deferred) Scenario run view (FR-10.2.6) + alias-ownership rejection (FR-10.2.9) |
|
||||
|
||||
### 10.7 Acceptance criteria
|
||||
|
||||
Reference in New Issue
Block a user