PLC-Based Elevator Control System

ENMT211 Industrial Automation · Team of 2 · Omron PLC / CX-Programmer

PLC elevator control rig

Summary

Designed and implemented a PLC-based control system for a multi-floor elevator rig in the Controls Lab using an Omron PLC (CX-Programmer). Working in a team of two, we developed a finite state machine-based scheduling algorithm, a custom motion controller (no built-in PID blocks allowed), door interlock logic, and full button/light interface behaviour.

The system operated under hardware supervision from an embedded MCU that would override unsafe behaviour. The final implementation achieved reliable floor stopping, realistic door behaviour, and fair request scheduling without indefinite user waits.

Project Context

This was a real PLC controlling a physical elevator rig permanently installed in the lab — not a simulation. This included real motors, limit switches, quadrature encoder feedback, analogue motor control (0–5 V DAC output), physical doors with interlocks, and an MCU safety supervisor that would take control if unsafe conditions occurred (doors open during movement, incorrect voltage, etc.). The PLC had to control the system without triggering MCU intervention.

Motion Control

Built a custom motion controller from scratch (built-in PID blocks were prohibited). The controller implements four distinct motion phases: Accelerate → Cruise → Decelerate → Hold. Encoder-based position tracking issued directional speed commands via DAC. A calibrated hold voltage (unique per rig) was applied when stationary to satisfy the MCU tolerance window. Overshoot prevention required careful deceleration tuning based on encoder counts before floor detection.

Door Logic & Safety Interlocks

Doors only open when the elevator is at a floor (limit switch active) and the carriage output is at the hold value. Doors must fully close before movement begins. Open/close commands are deactivated once the limit switch confirms state — failure to release would trigger MCU override. The implementation includes a door state machine with timed open duration, explicit interlock conditions, and movement inhibit logic. Doors never open while in motion.

Scheduling Algorithm

Implemented a direction-based elevator scheduling algorithm: continue servicing requests in the current direction, queue requests behind the direction change, reverse only when no further requests exist in the current direction, and move to the nearest pending request when idle. This prevents starvation and mirrors real elevator dispatch logic. The scheduling logic was implemented as a structured FSM for clarity.

My Contribution

Designed the elevator scheduling FSM, implemented the custom motion control logic (accel/decel profile), integrated encoder feedback for floor positioning, developed door interlock logic, structured the Ladder program for clarity, debugged overshoot and hold-value drift, and tested under real hardware constraints.

Artifacts

Elevator Program Files (.zip) — Elevator simulator files

Project Files (.zip) — CX-Programmer ladder logic project

Key Skills & Tools

Industrial Automation

  • Omron PLC programming (CX-Programmer)
  • Ladder Logic
  • Structured Text (IEC 61131-3)
  • High-speed counter configuration
  • Analogue DAC motor control

Control Systems

  • Custom motion controller design
  • Encoder-based positioning
  • Acceleration/deceleration profiling
  • Industrial safety interlocks

Software Engineering

  • Finite State Machine design
  • Request scheduling algorithms
  • Symbol-based PLC programming
  • Hardware–software integration

← See All Projects