PLC

On this day five years ago, I released the first three parts of the “PLC programming using TwinCAT 3” course on YouTube. Over the following 21 months, I would release the rest of the 15 parts of the course. In the end I spent a total of 700+ hours making this course, which turned this into my biggest hobby-project ever. In the now five years this course has existed, it’s been watched by tens of thousands of people equating to so many watch-hours that I would have to spend multiple lifetimes if I held this course the traditional (in a classroom) way instead. The crazy thing is that the watching curve doesn’t flatten out, it increases! The more time passes, the more people watch the course! So YouTube is apparently an extremely effective way to share your knowledge.

Read more

Imagine my surprise when I was asked to help with building a robot supposed to play against five times FIFA player of the year Cristiano Ronaldo! One of the world’s biggest YouTubers Mark Rober and his team asked me if I could help them with software development of a soccer goalie robot. The question that posed itself was whether one of the best football players in the world has any chance against an industrial automation system. Back in 1997 the super computer “Deep Blue” was the first to beat a world class chess master (Kasparov). In 2025, a PLC together with a motion capture system and some powerful drives had a challenge against a world class football player, Ronaldo.

Read more

ChatGPT… ChatGPT… It’s been on the news every day for the last two months. I’ve seen it being used for traditional IT-oriented languages/programming, but the question is: can it be used to do PLC-programming? Let’s find out!

Read more

The Arduino PLC and the Arduino PLC IDE… there has been a lot of buzz around it since it was announced recently. I’m a long-time user of the Arduino eco-system and have been using their IDE for over 10 years for various projects. Guess if I was surprised when they released their new IDE aimed at the industrial automation industry! The Arduino PLC IDE only supports one board right now, the Arduino Portenta Machine Control, and luckily I had just been using one of these boards for another project recently, so I could try the new PLC IDE that Arduino have released.

I thought I’d share my initial impressions, findings, praises & complaints with all of you by making a YouTube video where I go through the complete process of installing the IDE and configuring one Arduino board to run a simple PLC program.

Read more

Hey all readers! Another year has passed by, and I thought I’d just share some thoughts.
There haven’t really been many blog posts this year (as in pure blog texts), but rather blog posts with links to my YouTube videos. As you might already have guessed, all my spare-time went into finishing the free “PLC programming using TwinCAT 3” course on YouTube. I promised myself that I would finish this course this year, and I’m very happy to have delivered the last part just a few days ago. Now I know that it takes 720 hours to make what might be the world’s most popular PLC programming course.

The response to this course has been well beyond my imagination. I’ve on average probably received two dozen messages every week saying thank you from people all across the world. Many have started their careers thanks to my course, some have learned something new (for example, what TDD is). A few have written very angry/hateful e-mails stating that I’m destroying the automation industry and the job-market by putting out my course for free. I’ve realized you can’t make everyone happy.

Read more

One of the most anticipated products that Beckhoff has released this year is TwinCAT/BSD, which is Beckhoff’s new operating system which is an alternative to Windows for the PLCs. Did you ever want to play around/learn TwinCAT/BSD, but don’t want to spend the money to buy a PLC with it pre-installed? No worries, it’s entirely possible to run it fully virtualized in a virtual machine. Not only that, it’s also possible to run your TwinCAT 3 software in that virtual machine! I’ve created a step-by-step tutorial where I will show how you can run it locally on your PC. Start the video to join me on an adventure & let’s have some fun!

Read more

One of the things that have annoyed me ever since I started using TwinCAT is the fact that if you create an enumeration, it will automatically have a global scope. It will be accessible from all functions and function blocks. What’s even worse is that if you create a library project with an enumeration and include that library in another project, the enumeration will be visible there, too. This pollutes the namespace by creating unnecessary types. But no more.

Read more