ELV-430 · Lesson 12 of 12 · 24 min
Capstone: the Tillicum car 1 modernization and the certification exam
Tillicum car 1's acceptance inspection was booked for a Thursday in the tenth week, two days later than the original plan and one week inside the contingency Lena had added in lesson 2. The pretests were complete and recorded, the unintended movement test had been rerun after the gripper valve fix, the fire alarm technician had been booked for the morning, and Jonah had spent the previous afternoon cleaning the machine room, the pit and the car top as if the inspector were going to eat off them. Camille Draper, who had accepted Larchmont East and Birchwood car 2, arrived at eight. This capstone follows the acceptance day, the handover and the first weeks of service, the life-cycle comparison that the owner was given, and Tamsin's preparation for the certification exam that finished her apprenticeship.
Before the inspector arrives
Priya's rule for acceptance day was that the inspector should never wait for the crew. The job file was on the machine room bench, in the order Camille would want it: the permit and its two conditions, the variance for the retractable pit ladder, the approved drawings marked up as built, the requirements list from lesson 3, the pretest plan with every result signed and dated, the instrument calibration certificates, the hitch channel note from lesson 3 with the authority's reply, the motor, drive and landing system settings, the ride quality report from lesson 11, and the new maintenance control program. The test weights were on pallets in the lobby. The jumper board read zero, and Ray had counted the jumpers in the jumper box against the log. The car was parked at the lobby with its doors closed, ready to run.
# Acceptance day: documents and conditions checklist for Tillicum car 1
items = [ # (item, ready?)
("permit and conditions", True),
("variance for retractable pit ladder", True),
("as-built drawings in the machine room", True),
("requirements list and pretest results, signed", True),
("instrument calibration certificates", True),
("hitch channel repair note and reply", True),
("drive and controller settings record", True),
("ride quality baseline report", True),
("new maintenance control program", True),
("posted machine room temperature range", False),
("jumper board count zero, jumper box reconciled", True),
]
missing = [i for i, ok in items if not ok]
print(f"{len(items) - len(missing)} of {len(items)} ready")
for i in missing:
print(" not ready:", i)10 of 11 ready not ready: posted machine room temperature range
The checklist caught one thing: the controller maker's sign stating the machine room's allowed temperature range, which ELV-410's survey had found missing on the old car, had been ordered but not mounted. Tamsin mounted it before eight. It would not have stopped the acceptance, but an inspector who finds a small thing missing at the start of the day looks harder at everything after it.
The acceptance inspection
Camille started with the documents and then walked the job from the top down: the machine room, with its ventilation fan running on the new sensor, its lighting measured at the controller, the car lighting disconnect, the working clearances in front of the cabinets and the new signs; the machine, the brake and the rope gripper; the hoistway from the car top on the new inspection station, with the guardrail that was a permit condition; the pit, with its stop switch moved to the access door, its light switch, receptacle and the retractable ladder; and the car, with its fixtures, phone and door equipment. Then the tests began, in the order Priya had set out in the pretest plan so that the weights went into the car once and came out once.
Camille chose which tests to witness from the pretest records, as authorities commonly do, and asked for some to be repeated in front of her. She saw the safety circuit opened at a sample of switches chosen by her, not by the crew; the interlocks on three floors she picked; the final limits at both ends; the brake holding 125 % of rated load at the bottom landing; the governor's overspeed switch stopping the car; the rope gripper tripped for ascending overspeed with an empty car and for unintended movement with a full car at the top landing, with the stopping distances measured; the door closing force and time on two floors and the light curtain across its full height; firefighters' service with the fire alarm technician activating the lobby, machine room and hoistway detectors in turn; the emergency phone call to the monitoring centre; and the car top and in-car inspection stations with their priority. Every result matched the pretest record within its measurement tolerance.
# Acceptance tests witnessed on Tillicum car 1, compared with the pretest records
tests = [ # (test, pretest result, acceptance result, limit, units, lower is better)
("brake hold, 125 % load", "held", "held", "no creep in 5 min", "", True),
("gripper, unintended movement, full car", 118, 124, 1220, "mm", True),
("gripper, ascending overspeed, empty car", 160, 155, 1220, "mm", True),
("door closing time, floor 4", 3.0, 3.1, 1.4, "s", False),
("door closing time, floor 6", 3.0, 3.0, 1.4, "s", False),
("closing force, floor 4", 105, 108, 135, "N", True),
]
for name, pre, acc, lim, u, low in tests:
if isinstance(pre, str):
print(f"{name:42s} pretest {pre:>8s} today {acc:>8s} ({lim})")
continue
ok = acc <= lim if low else acc >= lim
print(f"{name:42s} pretest {pre:8.0f} today {acc:8.0f} limit {lim:g} {u} {'pass' if ok else 'FAIL'}")brake hold, 125 % load pretest held today held (no creep in 5 min) gripper, unintended movement, full car pretest 118 today 124 limit 1220 mm pass gripper, ascending overspeed, empty car pretest 160 today 155 limit 1220 mm pass door closing time, floor 4 pretest 3 today 3 limit 1.4 s pass door closing time, floor 6 pretest 3 today 3 limit 1.4 s pass closing force, floor 4 pretest 105 today 108 limit 135 N pass
Findings and return to service
Camille's report had two minor findings. The braille plate beside the floor 7 button in the car operating panel had been mounted beside the wrong button, swapped with the plate for floor 8 during assembly, which the crew had missed because both plates had been checked for presence and height but not read. And the controller's code data plate, which ELV-410's fifth finding had required, showed the code edition correctly but had the rated speed stamped in the wrong units. Neither affected safety, and Camille allowed the car to return to service with both to be corrected and reported within thirty days. Tamsin swapped the braille plates that afternoon and sent a photograph; the corrected data plate came from the controller maker the following week. The car carried its first passengers at four o'clock, ten weeks and two days after it had been taken out of service.
Priya held a short meeting with the crew the next morning to record what had gone well and what had not. The survey had been good enough that the only surprise was the hitch channel; the critical path had held because of the second door crew; the gripper valve had been caught by a pretest, as it should have been; and the braille plates had been missed because the checklist said 'present and at height' rather than 'read each plate'. That line went into Northcrest's fixture checklist the same day. A modernization that ends with a list of lessons for the next one is a modernization that has been done properly.
Handover and the first weeks
The handover to the building and to the maintenance route was planned as carefully as the work. Grace Holm and the building's staff were shown the new emergency phone and the help-on-the-way light, the firefighters' keys and their storage, the in-car features and who to call. Ray, who would maintain the car, took over the new maintenance control program, the as-built drawings, the diagnostic tool access the specification required, the spare parts list and the baseline records. The contract included a maintenance and warranty period during which Northcrest would correct defects at its own cost, and Priya scheduled two extra visits in the first month, because new installations commonly have a few early faults as parts settle and the building's traffic tests the settings. Car 1 had two: a door reopening on a hall call at floor 3 because the door hold time was set too short for the walking distance from the corner office, and a nuisance fault from a landing system sensor bracket that had shifted slightly, both corrected on the next visit and recorded.
Was it worth it?
Before the work, the owners had asked the question every owner asks: what would it cost to keep the old car going instead? Lena's answer was a life-cycle comparison over twenty-five years: the cost of each option, including maintenance, repairs, energy and the cost of the outage, brought to present value with a discount rate so that money spent later counts for less than money spent now. The comparison is only as good as its assumptions, which Lena listed in the proposal so that the owners could change them.
# Life-cycle cost over 25 years: keep the 1962 car running, or modernize now (illustrative, dollars)
years = 25
rate = 0.04 # discount rate
def pv(cash): # present value of a list of yearly costs, year 1 to n
return sum(c / (1 + rate) ** (y + 1) for y, c in enumerate(cash))
# keep: rising repair costs, a forced controller replacement in year 6 under worse conditions, energy of the M-G set
keep = []
for y in range(years):
maint = 9500 + 900 * y # maintenance and repairs rising as parts get harder to find
energy = 2700
forced = 420000 if y == 5 else 0 # unplanned controller replacement after a failure (with a longer outage)
keep.append(maint + energy + forced)
# modernize: the job now, lower maintenance and energy, a controller refresh in year 20
mod = []
for y in range(years):
maint = 6200 + 300 * y
energy = 730
refresh = 120000 if y == 19 else 0 # board and software refresh at about 20 years
mod.append(maint + energy + refresh)
job = 385000
print(f"keep the old car: present value {pv(keep):,.0f} dollars")
print(f"modernize now: present value {job + pv(mod):,.0f} dollars (including the {job:,.0f} job)")
diff = (pv(keep)) - (job + pv(mod))
print(("modernizing costs less by " if diff > 0 else "keeping costs less by ") + f"{abs(diff):,.0f} dollars over {years} years")keep the old car: present value 663,015 dollars modernize now: present value 594,859 dollars (including the 385,000 job) modernizing costs less by 68,156 dollars over 25 years
On these assumptions the two options came out close, with modernizing somewhat cheaper, and the decisive points were not in the totals: keeping the old car meant an unplanned controller replacement after a failure, with a longer outage at a time the owners did not choose, and a car without the protection, accessibility and communication that the building's tenants now expected. Life-cycle numbers rarely make a modernization decision on their own, but they stop it being made on the price of the job alone.
The certification exam
Tamsin's apprenticeship ended with the certification that lets her work as a mechanic on her own. In British Columbia, elevating devices mechanics are certified by Technical Safety BC, in classes that cover different kinds of equipment and work; the Class A certificate, for all elevating devices, requires completion of the Mechanic-in-Training apprenticeship and its supplementary training, about 8,000 hours of work experience and a written examination. The exam is open book, takes four hours and needs 70 % to pass, with up to three attempts and a wait of thirty days after a failed one, and the permitted materials include the elevator code edition in force, the electrical code's elevator section, the accessibility standard for elevators, the provincial regulation and the industry's field safety handbook. Certificates are renewed every three years with proof of continuing education. Elevator mechanics are certified provincially rather than through the Red Seal program.
Moira's advice about an open-book exam was the same as her advice about the code: an open book is only useful to someone who knows where things are in it. In the last two months Tamsin tabbed her code book by section, made her own index of the requirements she had used on the job (the alteration lists, the brake and governor rules, the door limits, the electrical protective devices, the pit and car top requirements), and practised with question banks from the training program, timing herself so that no question took more than a few minutes. She kept a score sheet by topic, so that her study time went to the topics where she was weakest, not the ones she enjoyed.
# Practice exam sampler and score tracker by topic
import random
random.seed(5)
bank = { # topic: number of questions in the practice bank
"code": 120, "installation": 90, "safety": 80, "maintenance": 95, "electrical": 70, "hydraulic": 45,
}
blueprint = {"code": 12, "installation": 8, "safety": 8, "maintenance": 8, "electrical": 6, "hydraulic": 4} # questions per topic on a practice paper
paper = {t: random.sample(range(bank[t]), n) for t, n in blueprint.items()}
print(f"practice paper: {sum(blueprint.values())} questions drawn from {sum(bank.values())}")
# scores from Tamsin's last four practice papers, percent correct by topic
history = {
"code": [58, 66, 71, 79],
"installation": [74, 78, 80, 83],
"safety": [81, 85, 88, 90],
"maintenance": [70, 76, 79, 84],
"electrical": [62, 64, 70, 73],
"hydraulic": [60, 64, 70, 78],
}
pass_mark = 70
print(f"{'topic':14s}" + "".join(f"{'p' + str(i + 1):>6s}" for i in range(4)) + " trend focus")
for t, s in history.items():
trend = s[-1] - s[0]
focus = "study" if s[-1] < pass_mark + 5 else ""
print(f"{t:14s}" + "".join(f"{x:6d}" for x in s) + f" {trend:+4d} {focus}")
overall = [sum(history[t][i] * blueprint[t] for t in history) / sum(blueprint[t] for t in history) for i in range(4)]
print("overall:", ", ".join(f"{x:.0f} %" for x in overall), f"(pass mark {pass_mark} %)")practice paper: 46 questions drawn from 500 topic p1 p2 p3 p4 trend focus code 58 66 71 79 +21 installation 74 78 80 83 +9 safety 81 85 88 90 +9 maintenance 70 76 79 84 +14 electrical 62 64 70 73 +11 study hydraulic 60 64 70 78 +18 overall: 68 %, 73 %, 77 %, 82 % (pass mark 70 %)
The tracker did what it was meant to: it showed that Tamsin's weakest topic at the start was the code itself, the topic she most needed for an open-book exam, and that the months of the modernization, reading the alteration lists and writing the requirements list, had done more for her code scores than any study session. She sat the exam in April and passed comfortably. Lena handed her the keys to her own van the following Monday, with Route 7's newest unit, Tillicum car 1, on her list, and Jonah Sweeney as her helper.
Worked problem
An exam question worked the way the job works
A practice question reads: 'An existing traction elevator's relay controller is replaced with a microprocessor controller. The machine, ropes and safeties are kept. Which of the following must now be provided?' The options list several devices. How should a candidate approach it?
Show solution
- Recognize it as an alteration question: the answer is in the code's alteration section for a controller change, not in the new-installation requirements.
- Turn to the alteration item for controllers in the edition the exam uses, using the tabs and index made during study.
- Read the list of requirements it pulls in and match them against the options, such as protection against ascending car overspeed and unintended movement.
- Do not choose options because they are good practice or required for new installations if the alteration item does not pull them in.
Answer: Go to the alteration item for a controller change, read what it pulls in and match the options against it, exactly as the Tillicum requirements list was built.
Common mistakes
MistakeArriving at acceptance with the documents still being assembled.
InsteadHave the job file ready and in order before the inspector arrives.
MistakeChecking fixtures for presence and height only.
InsteadRead each braille plate and marking against its button.
MistakeTreating the end of acceptance as the end of the job.
InsteadPlan the handover, the warranty visits and the lessons learned.
MistakeComparing options on the job price alone.
InsteadCompare life-cycle costs with stated assumptions.
MistakeStudying favourite topics for the exam.
InsteadTrack scores by topic and study the weakest ones.
Summary and key terms
- Acceptance day goes smoothly when the job file, the weights and a zero jumper count are ready before the inspector arrives.
- The inspector walks the job and witnesses tests chosen from the pretest records; results should match them.
- Minor findings are corrected and reported within the time allowed; lessons learned go into the next job's checklists.
- Handover covers the building staff, the maintenance mechanic, the new program, the warranty and extra early visits.
- Life-cycle comparisons with stated assumptions show owners the cost of keeping old equipment as well as replacing it.
- The certification exam rewards knowing where things are in the code and studying by weakness, as the job does.
- Acceptance inspection
- The authority’s inspection and witnessed tests before a new or altered unit returns to service.
- Job file
- The permit, drawings, records and correspondence for a job, kept in order for the inspector and the owner.
- Warranty period
- The time after completion during which the contractor corrects defects at its own cost.
- Life-cycle cost
- The total cost of an option over its life, brought to present value.
- Present value
- The value today of future costs, reduced by a discount rate.
- Open-book exam
- An exam where permitted reference materials may be used.
Practice problems
Work each problem on paper first, then reveal the answer to check.
Why test in the pretest order on acceptance day?
Show answer
So the weights go into the car once and come out once.
How did the inspector choose which tests to witness?
Show answer
From the pretest records, choosing samples herself.
Why were two extra visits scheduled in the first month?
Show answer
New installations commonly have early faults as parts settle and traffic tests the settings.
What does a discount rate do in a life-cycle comparison?
Show answer
Makes money spent later count for less than money spent now.
What is the most useful preparation for an open-book exam?
Show answer
Knowing where things are in the code, with tabs and a personal index, and practising by topic.
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.