Talks - Jacob Lapenna: Open Source Industrial Control: Turning 2,800 Tons of Metal with Python...

Learn how Python and open source tech control massive 2,800-ton industrial machines. See how Raspberry Pis, WebSockets & Flask replace traditional PLCs in hydropower plants.

Key takeaways
  • Project involves controlling massive 2,800-ton rotating machines using Python and open source technologies instead of traditional PLCs

  • System uses Raspberry Pis, WebSockets, Flask, Celery, Redis and browser-based interfaces to control and monitor industrial equipment

  • Architecture consists of distributed components:

    • Rotor control box (brain/server)
    • Stator box (worker)
    • Browser-based interface
    • Air-gapped network for security
  • Power distribution managed through:

    • 480V to 120V transformers
    • Multiple power supplies controlled via PMBus/I2C
    • SCRs (Silicon Controlled Rectifiers) for current switching
    • Custom PCBs and relay controls
  • Key innovations:

    • Converting large machines into DC stepper motors
    • Real-time monitoring using rotary encoders
    • Partial discharge mapping using NFC antennas
    • Automated calibration procedures
    • Portable design using Pelican cases
  • Benefits include:

    • Reduced training needs (familiar browser interface)
    • Easy version control of plain text code
    • More accessible than traditional PLC programming
    • Modular and scalable hardware/software
    • Real-time insight for operators and managers
  • Current limitations:

    • Not true real-time system (acceptable for this use case)
    • Prototype status
    • Limited organizational support/adoption
  • System enables precise slow-speed control for maintenance tasks like bearing alignment and testing

  • Used at US Bureau of Reclamation for managing 250+ rotating machines across 53 hydropower plants

  • Project demonstrates convergence of IT and operational technology in industrial control systems