Jonas Neubert

… works with bits and atoms

What is a PLC and how do I talk Python to it?

Published - Oct 27 2019

(Updated: )

This post is part 1 of a series. Scroll down for a table of contents.

If you’ve found your way to this blog, chances are you already know that I’ve given a few conference talks about using Python in automation. You are right now reading the blog post version of content I presented at PyCon 2019. I started my talk there by answering the question: Why do I keep talking about this topic?1

Back at the turn of the century, when I was going to high school2, I managed to finagle my way into an internship at the nearby semiconductor factory. The clean room was the coolest thing I had ever seen! Given my, uh, limited qualifications I was a pretty useless intern, but the three weeks I spent at the factory had an outsized impact on my life and set the direction of my career.

Since this internship, I have been fascinated by the role that software plays in building the amazingly complex machines which we call “factories”. But I also sometimes feel like I’ve stumbled upon some very weird niche: Most software developers never even encounter factory automation as a place where they can apply their skills. At software conferences the topic has a very low profile, and the same is true for podcasts and blogs and all the other places where software engineers exchange knowledge.

I figured I could help change this just a little bit. The goal I set for myself is to prepare one software conference presentation about some automation topic every calendar year. So far, it worked and the conference presentations streak has been going for three years!

In 2017 I brought a conveyor belt on stage at Pycon and in 2018 I did a deep dive into barcodes. For 2019 I decided to put together a presentation on Programmable Logic Controls (PLCs).

Head over to my talks page for links to video recordings of me talking about PLCs at Python conferences. This blog post is the first in a series that puts the contents of these talks in writing, including all the content I had to cut out due to time limits on conference talks.

I will add links to the table of contents as I publish each part.


  1. In case you are wondering about the money: There isn’t any. Presenting at PyCon is a great experience, but PyCon do not get paid. ↩︎

  2. Technically, I didn’t go to “high school” because that concept doesn’t really exist in Germany. I was in the final two years of Gymnasium, which, for the majority non-German audience of this blog is easiest translated with “high school”. ↩︎