Variable Speed Drive (VSD) Controller
A task that really pushed my limits was being the technical lead on a project to implement a VSD controller interface from the ground up.
We sold what most folks just refer to as Drives. These are actually one or more VSD units paired with all the accessory electronics to switch anywhere from 100 to 5000 volts over a wide range of frequencies. They are usually outfitted with a controller interface of some kind that also manages things like customer digital and analog I/O, MODBUS comms, SCADA services, and sensors.
All of our drive models came with a controller that would manage the components mentioned and run the whole system in several ESP specific operating modes to minimize downtime or optimize performance. Oh, and all of these bits of info, configuration, and operation options where exposed via a ~4" touchscreen display programmed with a vendor provided tool in ladder logic, function block diagram, and a sort of scripting language.
My task was to guide a team of developers and engineers in developing a replacement for both the hardware and software. The main goal being to pack everything into a form that would be open, accessible, and maintainable by as many developers and engineers as possible.
- Hardware:
- Technologics TPC-7990 w/ supercap addon
- Nimbelink LTE Cell Modem
- Panda Wireless WiFi Adapter
- Custom sheet metal enclosure
- Client Tech:
- Yocto Linux, C++ 11, Qt 5.7, Python 3.4, MQTT, NGINX, MODBUS, Flask, SQLAlchemy