Controlling Multiple Baths in SCADA: Why One Setpoint Can't Rule Them All

I was deep into the feature/variant-a-migration branch of our SCADA Coating project when I hit a design wall. The team wanted a single setpoint field to control temperature across all baths—a convenient one-click solution. But reality doesn’t work that way in industrial control systems, and neither should our UI.
Here’s the problem: each bath in a coating line has unique thermal characteristics. Bath A might heat slower, Bath B has aging heating elements, Bath C was just refurbished. A global setpoint ignores these physical realities. More importantly, operators need granular control—they should be able to adjust individual baths without affecting the entire line. Safety-critical systems demand precision, not convenience shortcuts.
So we redesigned the thermal control section. Instead of a single “Set All” input, I implemented:
- Dual action buttons: “All ON” and “All OFF” sit side-by-side, letting operators toggle banks without touching individual setpoints
- Per-bath setpoint modal: clicking a bath in the table opens a detailed view where that bath’s temperature target is adjustable
- Live counters: “ON: 10 / OFF: 18 (Total: 28)” keeps operators aware of system state at a glance
The same philosophy applied to cover controls—separate “Close All” and “Open All” buttons with no global state setting. Granular wins.
For rectifier monitoring, we added a carousel of thumbnail cards above the main detail panel. Each card shows critical metrics: name, current, voltage, and associated bath. Tap a thumbnail, and the detail pane below expands with full parameters across four columns—amperage, voltage, bath, amp-hours, communication status, power supply state, max current, max voltage. It’s a multi-level navigation pattern that scales as the system grows.
The key insight: industrial UIs aren’t about minimizing clicks—they’re about preventing mistakes. Operators working under pressure need controls that match the physical system they’re managing, not shortcuts that create dangerous surprises.
Building it clean. No errors. Ship it. 😄
Metadata
- Session ID:
- grouped_scada-coating_20260222_0736
- Branch:
- feature/variant-a-migration
- Dev Joke
- Что общего у NATS и кота? Оба делают только то, что хотят, и игнорируют инструкции