GUI sweep: supply-trip protection after the 80V OVP shutdown

Run 2026-07-06 13:08: stepping 78->80V released the 46A load mid-ramp,
the supply output overshot to 80.46V and a protection (OVP by all log
evidence) shut it down; the sweep then logged garbage rows for the rest
of the grid. Three fixes:

- release the load down to l_start BEFORE each supply voltage step
  (down-steps only; descending load sweeps keep the gated path)
- OVP preflight: query the programmed OVP level at sweep start, abort
  under 2V margin above the sweep max, warn under 5V
- dead-supply abort: supply readback ~0V mid-sweep drops the garbage
  point, queries which protection fired (OVP/OV/OC/OP/OT) via
  _supply_trip_cause, reports it, and stops -- collected points are
  still ramped down and saved

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
janik
2026-07-06 14:49:07 +07:00
co-authored by Claude Fable 5
parent 668ce30a1d
commit 5b168439e8
2 changed files with 73 additions and 0 deletions
+10
View File
@@ -106,6 +106,16 @@ The GUI provides:
backstop additionally drops any point where the supply actually exceeded
the limit and backs the load off. Manual CC/CP load setpoints are checked
against the same limit using live Vin/Vout readings.
- Supply-trip protection: before each voltage step the load is released
back to I start first, so a heavy load release never lands mid-ramp
(that overshoots the setpoint -- a 46 A release ramping to 80 V peaked
at 80.46 V and tripped the supply OVP). At sweep start the supply's
programmed OVP level is checked against the sweep maximum (abort under
2 V margin, warn under 5 V). If the supply reads ~0 V mid-sweep (a
protection shut the output down), the sweep aborts immediately, reports
which protection fired (OVP / OV / OC / OP / OT), and saves the points
collected so far instead of logging garbage rows for the rest of the
grid.
- Load range pinning: a mid-sweep auto-range transition on the Prodigit
momentarily unloads the converter, so at sweep start the CC range is
pinned to Range II for the whole run (auto-ranging restored after, with