Home / DC Solutions / Technical Manuals / Fire System Cockpit

Technical Manual · Fire Control

Fire Suppression System — Control Cockpit

Methodology behind the operational fire-system cockpit: ISA-18.2 alarm state machine, VESDA staged cause-effect matrix, FM-200 pre-action and N2 purge discharge logic, manual controls, and the engineering basis linking protected volume to the conventional BMS engine. This cockpit is state-driven — the dominant logic is a discrete event machine, not a mass-equation calculator.

Alarm engine RZAlarmState v1.43.4 Basis ISA-18.2 / NFPA 2001 / NFPA 72 Stages 6 (0–5) VESDA zones 8 (4 halls × 2)
▶ Open the live Fire System Cockpit

01 Purpose & scope

The fire-system cockpit (fire-system.html) is an operational BMS dashboard for monitoring and simulating the data-centre fire-suppression system: pre-action sprinkler zones, FM-200 / inert-gas clean-agent cylinders, and the N2 purge system. It documents alarm progression, cause-effect interlocks, and manual override controls — it is not a sizing calculator. Agent-quantity math lives in the separate fire-calculator.html (documented in manual/fire.html).

The cockpit serves four operational questions: what is the current alarm stage, which cause-effect actions have been triggered, are the manual abort / bypass / simulation controls in a safe state, and does the locked protected-volume basis match the rest of the DC suite. All state is deterministic — no Math.random(), no back-solved constants.

02 Inputs — controls & locked basis

The cockpit has three input categories: manual operator controls (abort / bypass / simulation), the locked engineering basis inherited from conv-engine.js, and the read-only alarm-state inputs driven by the cause-effect rule machine.

Manual operator controls

ControlTypeEffectInterlock
Manual AbortPushbutton / softwareHalts the countdown timer at Stage 4; returns to Stage 3 (Confirmed, not yet armed). Does NOT reset detection.Active only when state.stage === 4 (Armed). Disabled at all other stages.
Bypass (zone)Toggle per zoneInhibits a VESDA or detector zone from advancing the state machine. Zone shows ISA-18.2 suppressed state.Requires conscious ARM + confirmation step in simulation mode to prevent accidental zone lockout.
Simulation ArmToggleArms the simulation so staged fire scenarios can advance stages 0→5. Cockpit is in DEMO mode only — not wired to a real FACP.Simulation badge is displayed prominently (amber dashed border) per doc-05 §1; advancing stages is blocked unless ARM is active.
Stage advanceSimulation onlyManually advances the alarm state machine one stage at a time (used for training/demo). Each stage triggers the full cause-effect output for that stage.Blocked unless state.armed === true.
Reset / Lockout releaseManualResets cockpit to Stage 0 Normal after a post-discharge lockout. In a real system this requires a physical key-reset at the FACP.Only available at Stage 5 (Discharged / Lockout).

Locked engineering basis (read-only)

ParameterSymbolValueSource
IT loadIT_LOAD_KW1 850 kW (1.85 MW)CONV_CALC.snapshot.site.it_load_kw — conventional BMS basis engine
Rack count (8 kW/rack)RACKS231CONV_CALC.snapshot.racks.at_8kw
Protected hall volumeHALL_VOL_M3831 m³ (rack-footprint basis)Derived: round(231 × 1.2 m² × 3.0 m)
Pre-action zonesZONE_COUNT5 (PACV-01 .. 05)Fixed — data-hall layout
VESDA zones8 (4 halls × 2 circuits each)Site design — coverage per NFPA 72
Fire reserve tankTANK_CAP_M3114 m³Civil — fixed capacity
Pump demandPUMP_DEMAND_LPM2 500 L/minHydraulic design basis
Note on protected volume: the cockpit derives HALL_VOL_M3 = 831 m³ from the rack footprint basis (CONV_CALC snapshot). The fire-calculator manual cites 2 688 m³ (32 × 20 × 4.2 m) — that is the gross enclosure volume used for agent-mass sizing. The two figures are used for different purposes and are both correct within their domain. The cockpit does not recompute agent mass; it inherits the pre-action zone count and volume context from the BMS basis.

03 Alarm state machine methodology

The cockpit's dominant logic is the ISA-18.2 seven-state alarm model, implemented in js/rz-alarm-state.js (RZAlarmState v1.43.4). The module provides state definitions, severity tiers, a colour-discipline arbiter, and an equipment-state mapper — all without DOM mutation at load time.

ISA-18.2 alarm states

STATES = { normal, unack, ack, rtn_unack, shelved, suppressed, oos } alarmActive = true ONLY for: unack, ack resolveColor(alarmState, domainColor): if (alarmActive || state.color && state !== 'normal') → return state.color else → return domainColor (domain colour only when NORMAL) In RZAlarmState.resolveColor(). Colour discipline: status wins over domain. Red is permitted ONLY when alarmActive === true (unack or ack). All other states use their own non-red colour.ISA-18.2 · STANDARD

Severity tiers

TierRankColourTrigger examples
Critical4#ef4444 (fault-red)Active discharge, fire pump trip, pressure below low-low alarm
High3#f97316 (orange)Pressure below low alarm, VESDA action, confirmed cross-zone fire
Medium2#f59e0b (amber)VESDA alert, pre-action armed, jockey pump run
Low1#eab308 (yellow)Standby / OOS / bypass / suppressed states, tank below 80%

Equipment-state to alarm-state mapping

deriveFromEquipment(equipState): fault | tripped → { alarm: 'unack', severity: 'critical' } isolated → { alarm: 'oos', severity: 'low' } maintenance → { alarm: 'oos', severity: 'low' } standby → { alarm: 'normal', severity: 'low' } de-energized → { alarm: 'suppressed',severity: 'low' } simulated → { alarm: 'normal', severity: 'low' } energized → { alarm: 'normal', severity: 'low' } In RZAlarmState.deriveFromEquipment(). Maps RZLineModel / RZBreakerSymbols data-state into the inspector Alarms tab. Only fault/tripped produces alarmActive = true and thus the red colour channel.ISA-18.2 · STANDARD

04 Cause-effect matrix & staged discharge

The cockpit implements a 6-stage cause-effect rule machine (var CE[0..5]) that advances linearly on alarm confirmation. Each stage triggers a deterministic set of outputs — no probabilistic branching. Stage 5 discharge must complete within the NFPA 2001 10-second limit for halocarbons (FM-200). The N2 purge for pre-action valve supervision operates as a continuous standby function, not a timed discharge event.

StageNameColourCause-effect outputs
0NormalGreen (is-normal)All quiescent. Jockey pump holds 12.5 bar static. FACP and VESDA under continuous supervision. Pre-action valves closed. N2 supply at 2.4 bar standby pressure.
1VESDA AlertAmber (is-active)Aspirating smoke concentration above alert threshold. Warning only — no output action. Operator notified for physical investigation.
2VESDA Action / Smoke DetectorAmber (is-active)First-stage sounder activated. Pre-alarm sent to BMS and building management. Operator acknowledge required. Still no suppression output.
3Confirmed Fire (cross-zone)Red (is-active)Two independent detection zones confirmed (cross-zone logic). AHU / CRAH units commanded off. Fire dampers commanded closed. Pre-action valve charge initiated. Smoke-control mode engaged per ASHRAE 62.1.
4Suppression ArmedAmber (is-armed)Release circuit armed. Countdown timer active (configurable delay, typically 30–60 s). Manual abort station live. Fire pumps transition to AUTO-run on pressure drop below 10.5 bar (FP-01) / 9.5 bar (FP-02). This is the last safe window for manual abort.
5Discharge / Post-Discharge LockoutRed (is-active)Pre-action solenoid valves open. FM-200 cylinders (or inert-gas bank) discharge to protected zone. Discharge must complete within ≤10 s (halocarbon, NFPA 2001). Hold time ≥10 min. Post-discharge lockout is maintained until a qualified technician performs manual key-reset at the FACP.

N2 purge — pre-action supervision

N2 supply: N2-GEN-01 → distribution header @ 2.4 bar (standby) N2 zone branches: PV-N2-MANIFOLD → PACV-01..05 (one per pre-action zone) Purpose: maintain dry-pipe pressure in pre-action piping; supervise pipe integrity Discharge trigger: Stage 3 confirmed → solenoid PACV-xx opens → N2 charges water column N2-GEN-01 is tagged data-state="standby" (ISA-18.2 normal, not an alarm). Amber pipe colour in the SVG is DOMAIN colour for N2/inert-gas medium — not a status colour.NFPA 13 / ASHRAE 62.1 · STANDARD
Alarm colour discipline: in the cockpit, red (#ef4444) is reserved exclusively for active alarm / trip / fire / active discharge (stages 3 and 5, and any pipe in flow-fire animation). The N2 supply pipes are rendered in amber (--n2-amber: #fbbf24) because amber is the domain colour for inert-gas medium, not a fault indicator. Confusing domain colour with alarm colour is a known BMS anti-pattern per doc-10 §Color and doc-27 §3.3 — this cockpit does not repeat it.

05 Pressure thresholds & pump start logic

The fire-pump ladder is driven by a set of deterministic pressure setpoints. The jockey pump maintains static pressure; progressive pressure drops trigger each successive pump start. All thresholds are displayed explicitly in the cockpit per doc-05 §Pressure Thresholds.

SetpointValue (bar)Meaning
P_STATIC12.5Normal static system pressure maintained by jockey pump.
P_JOCKEY_ON11.5Jockey pump start (minor leakage / test demand).
P_JOCKEY_OFF12.8Jockey pump stop (normal pressure restored).
P_FP1_ON10.5Main fire pump FP-01 (electric · 227 m³/h · 75 kW) auto-start.
P_FP2_ON9.5Diesel standby pump FP-02 (227 m³/h) auto-start.
P_LOW_ALM8.5Low pressure alarm — operator intervention required.
Jockey pump state = (stage ≥ 3 AND press ≤ P_JOCKEY_ON) ? 'RUN' : 'AUTO' FP-01 state = (stage ≥ 3 AND press ≤ P_FP1_ON) ? 'RUN' : 'AUTO' FP-02 state = (stage ≥ 4 AND press ≤ P_FP2_ON) ? 'RUN' : 'AUTO' FP-02 diesel only activates from Stage 4 (Armed) — it will not auto-start on a minor leakage demand that could be handled by FP-01.

06 Worked example — 2 688 m³ gross volume → FM-200 agent mass band

This example bridges the cockpit context (operational state machine) to the NFPA 2001 agent-quantity lookup. The cockpit does not execute this calculation — it is shown here as illustrative context linking the protected enclosure geometry to the sizing basis. Full calculation is in manual/fire.html and js/fire-engine.js.

  1. Gross enclosure: 32 m × 20 m × 4.2 m = 2 688 m³
  2. Agent: FM-200 (HFC-227ea). NFPA 2001 Class-A design concentration: 7.0%
  3. Specific vapour volume at 20 °C: s = 0.1269 + 0.0005132·20 = 0.13716 m³/kg
  4. Agent mass: W = (2688 / 0.13716) · (7.0 / 93.0) = 1 478 kg
  5. Intensity check: 1478 / 2688 = 0.550 kg/m³ — within the NFPA 2001 design band of 5.1–5.5 kg/m³ per 100 m³ basis.
  6. Occupant safety: NOAEL 9.0% > design 7.0% → margin 2.0 pts ✓
  7. Discharge time limit (halocarbon): ≤ 10 s — cockpit Stage 5 triggers the discharge sequence; the physical cylinder bank must meet this limit.
  8. Post-discharge hold time: ≥ 10 min before ventilation re-entry. Cockpit shows lockout state until manual key-reset.
Honesty note: the cockpit's protected-volume parameter (HALL_VOL_M3 = 831 m³ rack-footprint basis) and the gross enclosure sizing volume (2 688 m³) serve different purposes. The cockpit uses the rack-footprint figure to stay consistent with the conventional BMS suite. The gross-enclosure figure is the input to the agent-mass calculation. A real design would reconcile both with the AHJ and the FACP supplier.

07 References & standards

08 Assumptions & limitations

The cockpit is a demonstration and training tool only — it is not connected to a real FACP, real smoke detectors, or live suppression cylinders. Simulation mode requires explicit ARM before any stage can advance, and all staged scenarios are deterministic (no random alarm generation). Pressure values are simulated based on the stage rules, not measured from real transducers.

Protected-volume derivation uses the rack-footprint approximation (racks × 1.2 m² × 3.0 m). This is appropriate for BMS-suite consistency but will diverge from a detailed room survey that accounts for raised-floor void, ceiling plenum, obstructions, and actual clear height. Final system design and AHJ approval must be performed by a qualified fire-protection engineer. The NFPA 2001 agent-mass worked example in §06 is an illustrative sizing estimate; it does not substitute for a sealed engineering calculation.

The ISA-18.2 alarm-colour rule (red reserved for alarmActive = true states only) is strictly enforced in the cockpit UI. Operators trained on systems that use red for "anything abnormal" must note that amber and grey are the correct colours for shelved, suppressed, and OOS states in this implementation.

▶ Open the live Fire System Cockpit