React Interlock Chain
"Why won't it start?" is the most-asked question on a plant floor, and the interlock logic that holds the answer is usually buried in a PLC. This surfaces it: every permissive as a link in a chain, the first failing one called out, and the gated action live only when all conditions are met.
Pump P-101 start permissive
4/6 conditions met
- Emergency stop released
E-stop circuit healthy
- Guard doors closed
3 of 3 interlocked doors closed
- Coolant flow establishedBlocking
8 L/min — requires ≥ 15 L/min
- Lube oil pressure OK
2.4 bar
- Vibration within limitsBypassed
7.1 mm/s — bypassed by shift lead
- Local/Remote in Remote
Remote
1 interlock is bypassed. The gate is open on operator authority, not on a satisfied condition.
Blocked by Coolant flow established
Installation
Props
| Prop | Type | Description |
|---|---|---|
| title | string | Heading |
| permissives | Permissive[] | { id, label, ok, detail?, bypassed? } in order |
| action | string | What the chain gates, e.g. "Start pump" |
| onEngage | () => void | Fired when permitted and the operator commits |
Blocking, and the honesty of a bypass
The gate is a plain AND: it opens only when every permissive is satisfied. The component finds the first unsatisfied one and marks it "Blocking", because that is the condition an operator needs to go fix — a wall of red is less useful than one clear culprit.
The bypassed flag is the feature that keeps this honest. Real plants do force interlocks — a faulty sensor, a commissioning step — and pretending otherwise just pushes operators to do it invisibly. A bypassed permissive is forced satisfied so the gate can open, but it is flagged amber, called out in a banner, and the copy says plainly that the gate is open "on operator authority, not on a satisfied condition." That is the difference between a safety system and a checkbox.
This is a display and confirmation layer, not the safety function itself. The real interlock lives in the PLC or safety controller; this shows its state and gates the HMI action. Never let a web UI be the only thing standing between an operator and hazardous energy.
New components every week
Get the week's new Kelvin UI components and templates in one short email. No spam, unsubscribe anytime.