codesys

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

Dear existing & future PLC software developers, I have published the last part of my free PLC programming using TwinCAT 3 tutorial.

So we’ve come to an end. For the last two years all my weekends, holidays, summer/winter vacations and basically every free-moment I’ve had, went into the creation of the free “PLC programming using TwinCAT 3” course on YouTube. It’s been the biggest hobby-project I’ve ever commited myself to, and I together with my wife would like to finish by saying a few words.

Read more

Dear existing & future PLC software developers, I have published part 17b of my free PLC programming using TwinCAT 3 tutorial.

TDD is the practice of writing tests before writing the implementation code. Writing software using the practice of TDD is something that has been around in the traditional software development industry for a while, but only recently has gained attention in industrial automation. In this series of videos, we will look at the theory of TDD, and then see how it’s done in practice. In this episode, we will implement the code that we wrote tests for in episode 17a.

Read more

Dear existing & future PLC software developers, I have published part 17a of my free PLC programming using TwinCAT 3 tutorial.

TDD is the practice of writing tests before writing the implementation code. Writing software using the practice of TDD is something that has been around in the traditional software development industry for a while, but only recently has gained attention in industrial automation. In this series of videos, we will look at the theory of TDD, and then see how it’s done in practice.

Read more

Dear existing & future PLC software developers, I have published part 16 of my free PLC programming using TwinCAT 3 tutorial.

Ever wondered what challenges you face if you want to develop PLC software for the worlds largest optical telescope? In this episode we are going to talk about the TwinCAT automation interface, which you can use if you want to automate the configuration, development and deployment process of your PLC software.
Simply stated: automate the automation!

Read more

Dear existing & future PLC software developers, I have published part 15 of my free PLC programming using TwinCAT 3 tutorial.

The Automation Device Specification (ADS) is Beckhoffs middleware to communicate with Beckhoff PLCs. It’s used for all kinds of use cases, as software deployment, reading/writing of variables and for internal communication of software modules. In this part we’ll go through the theory and also write some C# software to communicate with a PLC. We’ll also do a simple C++ program running under Linux that talks to the PLC!

Read more

Dear existing & future PLC software developers, I have published part 14 of my free PLC programming using TwinCAT 3 tutorial.

After working for a few months and years, you’ll will be in a situation where you have to manage several PLCs and machines, and they will all be running different versions of TwinCAT. But we’ve so far only installed one version of TwinCAT on our development machine. What if we want to work with a machine that runs an older or newer version of TwinCAT? This part will go through how this is done.

Read more

Dear existing & future PLC software developers, I have published part 13 of my free PLC programming using TwinCAT 3 tutorial.

Proper version control is traditionally not done in the world of automation, which is a big shame. The question should not be whether version control should be used or not. The question should instead be what version control system should be used. In this part we will get an introduction to version control in general, and Git in particular. We will start with an introduction to some basic concepts of version control and then show you how you can put your automation projects under version control using Git, using free and open-source tools that are traditionally used in the software industry. You’ll learn how to do proper 100% free and Git-based version control using TwinCAT 3! Let’s start demanding more from our automation vendors and demand that the tooling for version control should be included by default, and get out of the dark ages!

Read more

Dear existing & future PLC software developers, I have published part 12 of my free PLC programming using TwinCAT 3 tutorial.

When installing the TwinCAT development environment and runtime you get access the core functionality, but sometimes you might want to extend this with additional functionality as for example adding an SQL database connection. In this chapter we will investigate some TwinCAT functions that can be added.

Read more

Dear existing & future PLC software developers, I have published part 11 of my free PLC programming using TwinCAT 3 tutorial.

When you start to develop PLC software and you’ve worked for a few projects, you will come to a point where you will notice that certain parts of the software, like function blocks, will be copied between the projects. You’ll either do it by simple rewriting the same functions or function blocks again, or you will simply copy and paste it from one project to another. Also, once a project gets big enough, you will want to utilize something called libraries. With this we can achieve code re-use.

Read more