Basic
30 min

Chiller Lead-Lag Sequencing

HVACchillerlead-lagREALalarm
Chiller Lead-Lag Sequencing scenario preview

Ready to build this?

Sign up free — no credit card required. This scenario requires the Basic plan.

Sign up to play this scenario →

Already have an account? Log in

Briefing

Three chillers serve a building cooling loop in a lead-lag arrangement. As cooling demand rises, additional units are staged on. When demand falls, lag units are shed. Runtime hours rotate the lead chiller each day to equalise wear. A chiller alarm removes that unit from the rotation and hands load to the next available unit.

Objectives

  • COOLING_DEMAND >30% starts the lead chiller (CHILLER1_RUN initially)
  • COOLING_DEMAND >60% stages on the first lag chiller
  • COOLING_DEMAND >85% stages on the second lag chiller
  • Chiller demand drops <25% sheds lag1; drops <55% sheds lag2 (hysteresis)
  • CHILLER1_ALARM (or 2 or 3) removes that unit from service; next available takes over
  • RESET_PB clears alarms and re-enables faulted chillers
  • LAG_LOAD_BALANCE output (REAL) reports the fraction of chillers running (0, 0.33, 0.67, or 1.0)

Hints

  • Use an array or three bits to track lead/lag order; rotate on a daily (simulated) basis
  • Hysteresis: stage-on thresholds are 30/60/85%, shed thresholds are 25/55/80%
  • LAG_LOAD_BALANCE := (running count) / 3.0 * 100.0
  • An alarmed chiller must be excluded from both lead and lag selection

I/O Table

Inputs

COOLING_DEMAND

Cooling demand signal 0–100%

REAL · %IW0

CHILLER1_ALARM

Chiller 1 fault/alarm

BOOL · %I0.0

CHILLER2_ALARM

Chiller 2 fault/alarm

BOOL · %I0.1

CHILLER3_ALARM

Chiller 3 fault/alarm

BOOL · %I0.2

RESET_PB

Alarm reset push-button

BOOL · %I0.3

STAGE1_DEMAND

Demand ≥30% (hysteresis, off <25%) — start 1st chiller

BOOL · %I0.4

STAGE2_DEMAND

Demand ≥60% (hysteresis, off <55%) — start 2nd chiller

BOOL · %I0.5

STAGE3_DEMAND

Demand ≥85% (hysteresis, off <80%) — start 3rd chiller

BOOL · %I0.6

Outputs

CHILLER1_RUN

Chiller 1 run command

BOOL · %Q0.0

CHILLER2_RUN

Chiller 2 run command

BOOL · %Q0.1

CHILLER3_RUN

Chiller 3 run command

BOOL · %Q0.2

LAG_LOAD_BALANCE

Load balance fraction 0–100%

REAL · %QW0

Your program will be tested against:

All test cases run automatically when you submit. Assertions are hidden until you pass.

  1. #1Lead chiller starts when demand exceeds 30%

    COOLING_DEMAND=40 -> CHILLER1_RUN (initial lead)

  2. #2Lag chiller stages on at >60% demand

    COOLING_DEMAND=65 -> lead + lag1 running

  3. #3All 3 chillers run at >85% demand

    COOLING_DEMAND=90 -> all chillers on

  4. #4Chiller alarm removes unit from service

    CHILLER1_ALARM while running -> CHILLER1_RUN stops, next unit starts

  5. #5Lag chiller sheds when demand drops

    Demand drops from 65% to 20% -> only lead runs

Ready to build this?

Sign up free — no credit card required. This scenario requires the Basic plan.

Sign up to play this scenario →

Already have an account? Log in