ELV-310 · Lesson 7 of 12 · 21 min

Landing systems, encoders and absolute positioning

A controller that does not know where its car is cannot do anything useful. It cannot decide which calls are ahead, cannot slow down in time for a floor, and cannot stop level with the sill. Tillicum car 1 knows where it is through a steel tape that runs from the car to a mechanical floor selector in the machine room, and through vanes in the hoistway that operate switches on the car top as it passes. Quayside car 2 knows through a coded tape hung the full height of the hoistway, read by a sensor head on the car, and through an encoder on the machine. Larchmont's car uses a perforated steel tape and magnets. This lesson covers how each kind of landing system works, how a controller learns the building, and what goes wrong.

Mechanical selectors and hoistway switches

The oldest automatic cars, like Tillicum car 1, reproduce the car's movement in the machine room. A thin steel tape is fastened to the car and runs over a toothed or perforated wheel on the floor selector, which turns a long screw or drives a carriage up and down a frame in step with the car. The carriage carries brushes that slide over rows of contacts, one row for each function and one contact in each row for each floor: car call cancelling, hall call stopping, direction preference, slowdown, and hall lanterns. When the carriage reaches the contacts for a floor with a call, the car begins to slow down. The selector is a mechanical model of the hoistway, and its accuracy depends on its tape, its gears and the adjustment of every contact.

Final positioning at each floor is done by switches on the car top. In the hoistway at each floor, a steel vane or a magnet is mounted on a bracket from the rail. As the car approaches, the vane passes between the poles of an inductor switch, or a magnet passes a reed switch, and the switch operates. Three switches are typical: up levelling, door zone, and down levelling. When the car is within the levelling zone, the controller drives it at levelling speed toward the floor until the levelling switch for its direction releases, at which point the car is level. The door zone switch tells the controller the car is close enough to the floor for the doors to open. On Tillicum car 1, the vane lengths and switch positions set the levelling and door zones; moving a vane by 5 mm (1/4 in) moves the stopping point at that floor by the same amount.

Left: a car top with three levelling and door zone sensors passing a vane at a floor, with the levelling zone and door zone marked against the sill. Right: a coded position tape hung the full height of the hoistway with a sensor head on the car reading it, and a motor encoder on the machine; the controller combines both. A dimension marks the door zone either side of the floor.
Landing systems: vanes and car top switches at each floor, and an absolute coded tape read along the whole hoistway.

Tapes, magnets and counting

Many controllers from the 1980s onward replaced the mechanical selector with a perforated steel tape hung the full height of the hoistway, with a sensor head on the car that counts the holes as the car passes them. The count tells the controller how far the car has moved; magnets fixed to the tape at each floor give the door zone and levelling signals and correct the count. This kind of system is incremental: it knows how far the car has moved since it last saw a reference, not where it is in absolute terms. After a power failure, an incremental system does not know where the car is until it passes a reference, usually a terminal landing or a floor magnet, and many controllers make a slow correction run on start-up to find one.

Absolute positioning systems remove that limitation. The tape carries a code, magnetic or optical, that is different at every point along its length, and the sensor head reads the code directly. The controller knows the car's position the instant it powers up, to within a millimetre or two, without moving. Quayside's cars use an absolute magnetic tape, and the same head carries two independent channels for the safety board, which is how the door zone is supervised in two channels as Lesson 6 described.

Encoders

An encoder is a sensor that turns rotation into electrical pulses or a coded position. Almost every modern traction machine has one, mounted on the motor shaft, and the drive uses it to control speed and, on permanent-magnet machines, to know the rotor angle so it can apply current at the right moment. An incremental encoder gives a fixed number of pulses per revolution on two channels, A and B, offset by a quarter of a pulse so the drive can tell direction; counting every edge of both channels gives four counts per pulse. Absolute encoders, used on many permanent-magnet machines, report the shaft angle directly over a serial link.

The motor encoder is excellent for speed and smooth control, but it is not a perfect measure of car position. Between the encoder and the car lie the sheave, whose groove diameter changes as it wears, the ropes, which stretch and creep in the grooves, and on 2:1 roping the car sheave. The controller therefore uses the motor encoder for speed and short distances and corrects its position against the landing system at every floor. A growing correction at each floor is a sign of sheave wear or rope creep.

# Motor encoder counts to car travel on Quayside car 2 (2:1 roping)
import math
pulses_per_rev = 2048
counts_per_rev = pulses_per_rev * 4             # every edge of channels A and B
sheave_d = 0.40                                   # drive sheave pitch diameter
roping = 2                                       # 2:1: car moves half the rope distance
car_per_rev = math.pi * sheave_d / roping
per_count = car_per_rev / counts_per_rev
print(f"car travel per sheave revolution: {car_per_rev:.3f} m")
print(f"car travel per encoder count: {per_count * 1000:.4f} mm")
floor_height = 3.0
counts = floor_height / per_count
print(f"counts for one floor of {floor_height} m: {counts:,.0f}")
# a groove worn 0.5 percent smaller makes the encoder over-read distance by the same share
error = floor_height * 0.005
print(f"position error per floor from 0.5 % groove wear: {error * 1000:.1f} mm")
Output
car travel per sheave revolution: 0.628 m
car travel per encoder count: 0.0767 mm
counts for one floor of 3.0 m: 39,114
position error per floor from 0.5 % groove wear: 15.0 mm

Each count is worth a small fraction of a millimetre (thousandth of a foot), far finer than any stop needs. The weakness is not resolution but drift: half a percent of difference between the assumed and actual groove diameter adds up to 15 mm (0.6 in) over one floor and far more over the whole rise, which is why the landing system corrects the count.

Learning the building

When a microprocessor controller is installed, or when its landing system is replaced, it must learn the building. On a learn run, the mechanic runs the car slowly from one terminal to the other on inspection or a special learn mode, and the controller records the position of each floor marker. The result is a floor table: the position of every floor, from which the controller calculates slowdown points, floor heights and the distance to go on every run. After the learn run, the mechanic checks each floor's stopping accuracy and corrects individual floors with small offsets if a floor stops consistently high or low, for example because a sill was set slightly off its nominal height.

# Build a floor table from a learn run and check the floor heights against the drawings
learned = [0, 4512, 3001, 2998, 3003, 2996, 3004, 3000]   # floor heights in mm from the learn run (positions converted from counts)
drawing = [0, 4500, 3000, 3000, 3000, 3000, 3000, 3000]
tolerance = 10
position = 0
print("floor  position  height  drawing  difference")
for floor, (h, d) in enumerate(zip(learned, drawing), 1):
    position += h
    diff = h - d
    flag = "  check marker" if abs(diff) > tolerance else ""
    print(f"{floor:5d} {position:9,.0f} {h:7,.0f} {d:8,.0f} {diff:+10.0f}{flag}")
Output
floor  position  height  drawing  difference
    1         0       0        0         +0
    2     4,512   4,512    4,500        +12  check marker
    3     7,513   3,001    3,000         +1
    4    10,511   2,998    3,000         -2
    5    13,514   3,003    3,000         +3
    6    16,510   2,996    3,000         -4
    7    19,514   3,004    3,000         +4
    8    22,514   3,000    3,000         +0

The lobby-to-second-floor height is taller, as the drawings show, and the learned heights all fall within a few millimetres of the drawings except floor 2, which is 12 mm (about 1/2 in) more than expected. That is worth a look: either the floor marker was mounted slightly off, or the sill is, and the two need different fixes. Priya prefers to find which before adding an offset in the parameters, because an offset hides the problem from the next mechanic.

Door zone, levelling and relevelling

The door zone is the short distance above and below each floor within which the doors may be open. Its size is set by the code and the maker, typically some tens of millimetres (inches) either side of the floor. Inside the door zone, the controller may open the doors before the car has fully stopped, which saves time on every stop and is called advance door opening or pre-opening, and it may move the car with the doors open to correct its level, which is called relevelling. Both depend on the controller knowing reliably that the car is inside the zone, which is why the door zone is monitored by two independent sensors and, on newer cars, a certified safety board.

Relevelling matters most on long-rise cars and hydraulics. When a group of passengers steps off a car at a floor, the ropes on a traction car shorten as the load comes off, and the car rises a little; when a full load steps on, the car sinks. On Quayside's 87-metre rise, rope stretch with a full load at the lobby is several millimetres. The controller watches the car's position while it stands at the floor and, if the car drifts outside the levelling tolerance, moves it back at levelling speed with the doors open. Accessibility rules call for stopping and levelling accuracy within 13 mm (1/2 in) under loading and unloading, and good cars do much better.

What goes wrong

Landing system problems tend to show themselves as stopping errors, nuisance faults or position loss. Tamsin's notes from the term list the ones she met.

  • A car that stops high or low at one floor only points to that floor's vane, magnet or marker, or to its sill.
  • A car that stops high going up and low going down at every floor has a slowdown or levelling adjustment problem, not a landing system problem; Lesson 8 covers it.
  • A car whose stopping error grows over weeks at every floor may have sheave wear or rope creep that the controller is correcting less and less well, or a tape that has slipped in its top hanger.
  • A car that loses position after a power failure and makes a correction run has an incremental system working as designed; one that loses position while running has a sensor, tape or noise problem.
  • A car with door zone discrepancy faults has a sensor out of alignment, a damaged marker, or dirt or ice on the tape.
  • A tape that has been knocked out of its guides by a mechanic's toolbag, a cable tie or a falling object will wear its sensor head and give intermittent faults.

Worked problem

A stop that drifts over a month

Larchmont's single car stopped within 3 mm (1/8 in) at every floor after its adjustment last year. Over the past month the building has complained of a lip at every floor going up, and the controller's log shows its position correction at each floor has grown from about 2 counts to about 40 counts, always in the same direction. What does this suggest?

Show solution
  1. The error is at every floor and in one direction, so it is not a single marker.
  2. A growing correction at every floor means the motor encoder's idea of distance is drifting from the landing system's.
  3. On a belt-suspended car with a small sheave, a change in the effective diameter of the sheave or belt slip is a likely cause, as is a landing tape that has slipped at its hanger.
  4. Check the tape hanger and tension first, because it is quick; then check the sheave and belts against ELV-230's criteria; then relearn the floor table only once the cause is fixed.

Answer: The drift points to the tape hanger or the suspension, not to the controller; fix the cause before relearning.

Common mistakes

  • MistakeAdding a floor offset to cure a stop at one floor without checking the marker and sill.

    InsteadFind whether the marker or the sill is off; an offset hides the real problem.

  • MistakeTreating the motor encoder as an exact measure of car position.

    InsteadSheave wear, rope stretch and creep make it drift; the landing system corrects it at floors.

  • MistakeRelearning the floor table to cure a stopping drift.

    InsteadFind the cause first: tape hanger, sheave wear or slip. Relearning only resets the error.

  • MistakeAssuming an incremental system has failed when it makes a correction run after power-up.

    InsteadThat is normal for incremental systems; absolute systems know their position at power-up.

  • MistakeCleaning the tape with a solvent or tool the maker does not allow.

    InsteadFollow the maker's cleaning method; damaged codes or magnets cause discrepancy faults.

Summary and key terms

  • Older cars use mechanical floor selectors and vanes with car top switches; newer cars use hoistway tapes read by a sensor head.
  • Incremental systems count from a reference; absolute systems read a unique code at every point.
  • Motor encoders give fine speed and position information but drift with sheave wear, stretch and creep.
  • A learn run builds the floor table; individual floor offsets correct small errors after the cause is understood.
  • The door zone allows advance door opening and relevelling, and is monitored in two channels on newer cars.
  • Stopping errors at one floor, at every floor or growing over time each point to different causes.
Landing system
The sensors and markers that tell the controller the car's position, slowdown points, levelling zone and door zone.
Vane
A steel plate mounted in the hoistway at a floor that operates car top switches as the car passes.
Incremental encoder
An encoder that gives pulses as it turns; position is counted from a reference.
Absolute positioning
A position system that reads a unique code at every point and knows the position at power-up.
Learn run
A slow run from terminal to terminal during which the controller records each floor's position.
Floor table
The controller's stored list of floor positions.
Relevelling
Moving the car back to the floor at low speed with the doors open after it drifts out of level.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. Why does the controller correct the motor encoder count at each floor?

    Show answer

    Because sheave wear, rope stretch and creep make the encoder's distance drift from the true car position.

  2. A car stops low at floor 9 only. What do you check first?

    Show answer

    The floor 9 marker or vane, then the floor 9 sill height.

  3. What is the difference between an incremental and an absolute position system after a power failure?

    Show answer

    An incremental system must find a reference before it knows the position; an absolute system knows it at once.

  4. Name two things the door zone allows the controller to do.

    Show answer

    Open the doors in advance as the car arrives, and relevel with the doors open.

  5. With 8,192 counts per sheave revolution and 0.628 m (25.1 in) of car travel per revolution, how far does the car move per count?

    Show answer

    About 0.077 mm (0.0031 in).

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz