FAT-210 · Lesson 12 of 12 · 20 min
Capstone: programming and testing a panel for a mid-rise office
The Tamarind House panel is seventeen years old, its manufacturer has stopped making parts for it, and its loop cards have started to drop devices on hot days. The building's owner has hired Bramwell to replace it with a current model, reusing the two existing loops and all 340 field devices. Ravi Menon has written the design, and Donna Achebe has given the job to Sasha, with Gerry as her lead. 'You will build the program, swap the panel and run the test,' Donna says. 'Gerry signs off, but it's your job.' This capstone follows the job from the first site visit to the final paperwork, using everything in this course: the control unit's parts, zones and addressable loops, circuit classes, initiating and notification circuits, the single-stage sequence, programming, the cause-and-effect matrix, the annunciator and the panel's place on the monitoring network.
The design and the documents
Ravi's design package has six parts. The equipment list gives the new panel, two loop cards, a network-ready display, the communicator, two remote power supplies kept from the old system, and the batteries. The riser diagram shows the panel in the ground-floor electrical room, loop 1 serving floors 1 to 3 as Class A, loop 2 serving floors 4 to 6 as Class B with isolators at each floor, six notification circuits (one per floor), and the relays for elevator recall, two air handlers, door holders, stair door unlocking and the shunt trip. The point list gives every address, label and zone. The cause-and-effect matrix from lesson 9 sets every output. The battery and voltage drop calculations from FAT-130 confirm the power supply. And the sequence of operation describes the single-stage response in words.
Because the control unit is being replaced, every input and output in the building will pass through new equipment, so the Charlotte Fire Department asks for a full NFPA 72 acceptance test of the system, not just of the new panel. Captain Strand's office reviews the design before the work starts and asks for one change: a second annunciator at the loading dock entrance, which firefighters now use more than the main door.
Building the program before the swap
Sasha starts by uploading the old panel's program and printing its device list, then walks every floor with the point list to confirm that what is on the ceiling matches what is on paper. She builds the new program in the manufacturer's software from the point list and the matrix, not by converting the old program, because the old one contains seventeen years of patches and the new panel's logic works differently. Each device gets its type, label and zone; each output its function; and each matrix row becomes a rule using groups. Before going near the building, she runs the matrix cases through the software's simulator, as lesson 8 described, and Ravi reviews the program against the sequence line by line.
# Compare the devices the new panel found on its loops with the point list
point_list = {"1-001": "smoke", "1-047": "smoke", "1-050": "smoke", "1-063": "heat",
"2-031": "waterflow", "2-044": "smoke", "2-060": "relay", "2-075": "pull station"}
found = {"1-001": "smoke", "1-047": "smoke", "1-050": "smoke", "1-063": "heat",
"2-031": "waterflow", "2-044": "heat", "2-060": "relay", "2-075": "pull station",
"2-099": "heat"}
for addr in sorted(set(point_list) | set(found)):
a, b = point_list.get(addr), found.get(addr)
if a == b:
continue
if a is None:
print(f"{addr}: found a {b} that is not in the point list")
elif b is None:
print(f"{addr}: {a} in the point list but not found on the loop")
else:
print(f"{addr}: point list says {a}, loop has a {b}")
print(f"{len(found)} devices found, {len(point_list)} in the point list (extract)")2-044: point list says smoke, loop has a heat 2-099: found a heat that is not in the point list 9 devices found, 8 in the point list (extract)
The panel's loop scan on swap day finds two surprises, shown here in an extract. Address 2-044, on the fifth floor, is a heat detector in a kitchenette where the point list says smoke: someone had swapped it years ago after nuisance alarms without updating the records. Address 2-099 is a heat detector nobody knew about, in a storage closet a tenant's electrician had wired in. Both are now real devices with known types and labels, and the point list, program and drawings are corrected before testing goes any further.
Swap day
The swap is planned for a Saturday, when the building is empty. On Friday Sasha sends the impairment notice: the building owner, the supervising station and the fire department are told the system will be out of service from 07:00 to about 15:00, and the owner arranges a fire watch, a person who patrols the building every hour with a radio, as the fire code requires. On Saturday the old panel is powered down and labeled, the field wiring is tagged and photographed, and the new panel is mounted. Loops, notification circuits, relays and the communicator are landed one by one, each checked against the riser diagram. The new batteries go in last, after the AC supply is confirmed.
With the panel powered, Sasha lets each loop card scan its loop, compares the result with the point list as shown above, and then downloads the program. By early afternoon every device is online, the troubles are down to the two known differences being fixed, and the panel can detect and notify on its own. The fire watch continues until the first full functional check: one device on each floor, each notification circuit, and an alarm signal received at the monitoring station. At 15:40 the system goes back into service and the impairment is closed.
Testing every device and every output
The full test takes three days the following week, with the building occupied, so it runs in the early mornings and evenings with the tenants told in advance. Sasha and a second technician work floor by floor. Each detector is tested with the method its type needs, each pull station is operated, each waterflow switch is tripped by the sprinkler contractor opening the inspector's test valve, and each tamper switch is operated by moving its valve. For every input, the panel and both annunciators are checked for the right message, and the matrix is used to confirm every output that should operate does, and every output that shouldn't stays still.
The class tests are done next. On loop 1, the Class A loop, Sasha opens the loop on the second floor and confirms every device stays online while the panel reports the trouble, then repeats the test with a ground fault. On loop 2, she shorts the loop on the fifth floor and confirms the isolators confine the loss to that floor's devices. Every notification circuit is opened to confirm its trouble, and every remote power supply has its AC power removed to confirm its trouble reaches the panel. Finally the batteries are tested: the AC supply is turned off, the system runs on batteries, and the voltage is measured under alarm load.
# Acceptance test summary from the test log: expected outputs against what was observed (extract)
tests = [ # (input, expected outputs, observed outputs)
("FL4 DUCT DET AHU-2", {"EVAC", "AHU2_OFF", "MON_ALM"}, {"EVAC", "MON_ALM"}),
("FL1 MAIN LOBBY SMOKE", {"EVAC", "RECALL_ALT", "DOORS", "MON_ALM"}, {"EVAC", "RECALL_ALT", "DOORS", "MON_ALM"}),
("FL6 WATERFLOW (97 s)", {"EVAC", "MON_ALM"}, {"EVAC", "MON_ALM"}),
("FL3 VALVE TAMPER", {"MON_SUP"}, {"MON_SUP"}),
("ELEV MACH RM HEAT", {"EVAC", "RECALL_MAIN", "HAT", "SHUNT", "MON_ALM"}, {"EVAC", "RECALL_MAIN", "HAT", "SHUNT", "MON_ALM"}),
]
fails = 0
for name, exp, obs in tests:
missing, extra = exp - obs, obs - exp
timing = "(97 s)" in name
ok = not missing and not extra and not timing
fails += not ok
note = []
if missing:
note.append("missing " + ", ".join(sorted(missing)))
if extra:
note.append("unexpected " + ", ".join(sorted(extra)))
if timing:
note.append("waterflow over 90 s")
print(f"{'PASS' if ok else 'FAIL'} {name:24s} {'; '.join(note)}")
print(f"{len(tests) - fails} of {len(tests)} passed in this extract; failures are fixed and retested")FAIL FL4 DUCT DET AHU-2 missing AHU2_OFF PASS FL1 MAIN LOBBY SMOKE FAIL FL6 WATERFLOW (97 s) waterflow over 90 s PASS FL3 VALVE TAMPER PASS ELEV MACH RM HEAT 3 of 5 passed in this extract; failures are fixed and retested
The extract of the test log shows the two failures the test found, out of several hundred checks. The fourth-floor duct detector for AHU-2 sent the alarm but didn't stop the fan: in the new program the duct detector was in the AHU-1 group, a slip when the groups were built from the old program's notes. And the sixth-floor waterflow took 97 seconds from the start of flow to the alarm, so the sprinkler contractor shortened the switch's retard. Both were fixed and retested, and the retests are recorded beside the failures, not instead of them.
The fire department, the monitoring station and the owner
On the last evening, Captain Strand's inspector joins the test for a sample of devices on every floor, watches the elevator recall and the stair door unlocking, and checks the two annunciators and their labels. The supervising station confirms it received alarm, supervisory and trouble signals with the right account and zones during the test, and the communicator's two paths are each failed in turn to confirm the station sees the path trouble. The owner's building manager is trained on the panel and annunciators: what each indication means, what she may press, and whom to call.
Closing the job
The job isn't finished until the paperwork is. Sasha completes the NFPA 72 record of completion and the acceptance test report, with the device record for all 341 devices and every output, the class and battery tests, and the list of deficiencies found and corrected. She saves the final program with its version number and date to the building's records and to Bramwell's archive, sets the panel's clock and site passcodes, changes the default programming passcode, and updates the point list, matrix and record drawings to show the kitchenette heat detector and the closet detector. The documents go into the documentation cabinet beside the panel and to the owner.
| Item | Result |
|---|---|
| Devices found and tested | 341, including two corrected in the records |
| Program corrections from testing | Duct detector moved to the AHU-2 group |
| Field corrections from testing | Floor 6 waterflow retard shortened to bring the time under 90 s |
| Class tests | Loop 1 open and ground passed; loop 2 short confined to floor 5 |
| Batteries | Standby and alarm load test passed |
| Monitoring | Alarm, supervisory, trouble and both path troubles received |
| Records | Program archived; point list, matrix and drawings updated |
At the debrief, Gerry asks Sasha what she would do differently. She says she would build the groups from the matrix itself, not from the old program's notes, because that is where the duct detector slip came from. Gerry agrees, and adds one thing of his own: the two devices nobody knew about were found because she walked the floors with the point list before the swap. 'Most people would have trusted the old records,' he says. 'Those two would have been missing from the new system for another seventeen years.'
Worked problem
Deciding whether a retest is enough
After moving the duct detector to the AHU-2 group and downloading the corrected program, Sasha retests the duct detector and AHU-2 stops. Is that retest enough?
Show solution
- The program change touched the AHU-1 and AHU-2 groups, not just one device.
- Any other device in those groups could have been affected by the edit.
- The safe retest covers every input in both groups and both fan shutdowns, plus a check that nothing else changed.
- A program comparison between the tested version and the corrected version confirms that only the group membership changed.
Answer: Sasha runs the program comparison, which shows a single change, then retests every device in both AHU groups with both fans running. All pass, and the comparison and retests are attached to the report.
Handing over to the service team
Before the job closes, Sasha meets the Bramwell service technician who will look after Tamarind House from now on. She walks him through the new panel, shows him where the remote power supplies and their breakers are, gives him the program version and the passcodes his access level needs, and explains the two record corrections. The annual inspection date is set for twelve months after the acceptance test, and the service file is updated with the new equipment's part numbers and battery date codes.
Common mistakes
MistakeConverting an old panel's program without checking it.
InsteadBuild the new program from the point list and the matrix.
MistakeTrusting old records for the device count.
InsteadWalk the floors and compare the loop scan with the point list.
MistakeLeaving the system out of service without a fire watch.
InsteadSend the impairment notice and arrange the fire watch first.
MistakeRecording retests in place of the original failures.
InsteadRecord both, so the report shows what was found and fixed.
MistakeFinishing without updating the records and passcodes.
InsteadArchive the program, update documents and set site passcodes.
Summary and key terms
- A panel replacement is a full system test, because every input and output passes through new equipment.
- The program is built from the point list and the matrix, simulated and reviewed before the swap.
- Swap day needs an impairment notice, a fire watch, careful terminations and a loop scan against the point list.
- Testing covers every device and output, class tests, notification circuit and power supply troubles, batteries and monitoring.
- Failures are fixed, retested and recorded alongside the originals.
- The NFPA 72 record of completion, archived program and updated records close the job.
- Impairment notice
- A notice to the owner, monitoring and fire department that a system will be out of service.
- Fire watch
- A person patrolling a building to detect and report fire while the system is impaired.
- Loop scan
- The panel discovering every device on a loop and its type.
- Record of completion
- The document recording the installed system and its test results.
- Retest
- Testing again after a correction, recorded with the original failure.
- Program archive
- Stored copies of each version of the site program with dates.
Practice problems
Work each problem on paper first, then reveal the answer to check.
Why did the fire department ask for a full test, not just a test of the new panel?
Show answer
Every input and output now passes through new equipment.
What found the two unrecorded detectors?
Show answer
Walking the floors with the point list and comparing the loop scan.
Why did the duct detector not stop AHU-2?
Show answer
It had been put in the AHU-1 group in the new program.
What does a program comparison prove before a retest?
Show answer
Which parts of the program changed, so the retest covers them.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.