Python & Programmable Logic Controllers: A Step by Step Guide
Programmable Logic Controllers (PLCs) have ruled the world of factory automation since the 1970s. While the technology inside of PLCs has evolved, the programming languages, communication protocols, and standards for working with PLCs are quite dated. Unfortunately, you cannot program a PLC in Python.
But there are many Python packages for connecting to PLCs! By using these packages, you can build control systems where the traditional PLC code handles time critical factory functions, while Python running on a PC or server collects data from it or makes high level decisions, maybe even with on machine learning or data science. This simple setup is at the core of big concepts and buzzwords like "Industrial IoT" or "Machine Condition Monitoring".
This talk will be a step by step guide for building a very simple first demo: The PLC will blink a traffic signal. Python will control the frequency of the blinking. For communication, we will use the ancient Modbus protocol. In the second part of the talk, I will go over just enough of the basic concepts that you need to know for effectively searching for answer to your Python+PLC questions.
- General knowledge of Python and packages (standard library, pip install, etc)
- Basic concepts of networking (IP addresses, packages, etc)
Jonas is a software developer and automation engineer, currently living in Oakland, California. In his job, he writes software for factories and biotech laboratories. When he talks about having "downtime", it means that he is stressed because the robots have stopped moving. In his past projects, he's built smartphone apps that send postcards to real mail boxes, software for 3D printing terrain maps, and little robots that solder each other together to become larger robots. When Jonas is not in the factory he is probably on his bicycle.
- Website: https://jonasneubert.com
- Blog: https://blog.jonasneubert.com
- Github: https://github.com/jonemo
- Twitter: https://twitter.com/jonemo
- Linkedin: https://www.linkedin.com/in/jonasneubert/
- Previous talks: https://jonasneubert.com/talks/