# Interlock

> Dashboard component reference for the Interlock status banner, its states, the manual rearm and its permission.

The **Interlock** component shows the live stop-interlock status of one unit and offers
the manual rearm (see [Process](process) for what a stop interlock is and how it ends
runs). It is part of the Process family: it is not offered in the dashboard's Add
palette. A unit's screen hosts it, and a model's screen template carries it with the unit
resolved when a unit opens the screen.

## Properties {#properties}

| Property | What it does | Values | Default |
|---|---|---|---|
| Unit | The unit whose interlock this reports. The editor offers every unit of every model as `Model · Unit`. | a unit | none |

## What it shows {#what-it-shows}

A healthy, bound interlock is deliberately silent: in the **Normal** state the component
draws nothing and takes no room on the screen, so the banner claims the operator's
attention only when something needs it. An unbound component says `(no unit)`.

| State | How it is drawn |
|---|---|
| Normal | Nothing. The component collapses. |
| Interlock tripped | A loud critical banner: a live external stop is in force and runs end. |
| Interlock awaiting reset | A caution banner with the **Rearm** button. |
| Interlock unavailable | A caution banner reporting that the status cannot be read (no source configured, or the Process service unavailable). |

Every banner carries the state's reason line plus the configured source's name, its
current Boolean value (`True`, `False`, or the gap mark when it has none) and its quality
(`Good` or `Unavailable`). The transient result of a rearm is written on the banner too.

## Rearming {#rearming}

**Rearm** appears only in the awaiting-reset state. It is enabled while all of these
hold, and the button's tooltip says what is missing otherwise:

- the physical source has cleared (the latest status says a rearm is safe),
- the unit is not busy with a run,
- no rearm call is already in flight,
- the operator is permitted.

The rearm is journaled with the name of the signed-in operator (or `Not signed in`), and
the permission is rechecked at the moment of the press, never only when the screen
rendered.

## Permission {#permission}

- On a unit's Process screen, rearming takes the **Run procedures** permission.
- On a dashboard, it takes the **Dashboard operation** permission **and** the
  **Run procedures** permission, because the rearm reaches the Process service.

A blocked rearm is said by the shared corner lock and the button's own tooltip; the
banner keeps its lines for the plant.
