Jakob Sagatowski's Posts

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

Dear existing & future PLC software developers, I have published part 9 of my free PLC programming using TwinCAT 3 tutorial.
In this part we’ll learn how to use one of the most used Beckhoff libraries for various purposes. We’ll learn how to measure execution time of PLC code, how to use a FIFO buffer and how to combine the power of using a TwinCAT real-time program with an application running in user-space (Windows).

Read more

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

As TwinCAT 3 conforms to the IEC61131-3 standard, there are certain things it has to be able to do. The Tc2_Standard library has many of the standard IEC functions such as timers and triggers, which we will look into in this part of the tutorial.

Read more

Although I mostly use this blog to post TwinCAT-related stuff, I sometimes make exceptions. This blog post is such an exception.

I was recently on vacation in the Stockholm archipelago on the island Utö. Together with my wife I stayed there during the nights of the Perseid meteor shower. The Perseids are a meteor shower associated with the comet Swift-Tuttle. The peak of the Perseids happened during the night between 12th and 13th of August. Utö is an ideal location for this as it’s quite remote and far from bigger cities and thus has a very dark sky. This year there was no moon that interrupted either so conditions were fantastic. We spent several nights under the stars and saw many Perseids. I brought my DSLR camera and a small tripod with me, so during these nights I made sure to take lots of photos to create a time lapse, which you can see below. Note that the moving light streaks in the movie are not Perseids. These are airplanes and satellites. The Perseids are only visible during one frame at a time in the time lapse so they just flicker by. In the movie you can see one Perseid which I’ve explicitly prepared so that you can see it in slow motion.

Being out for a couple of nights with perfect conditions made me realize how much I’ve missed the stars 💔.

Read more

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

In this part we will go back to basics of IEC 61131-3 and structured text and look into instructions. This will cover IF/ELSE, CASE-switches and FOR/WHILE-loops. We will utilize our knowledge to write a CSV (comma separate value) event logger by using a state machine.

Read more

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

In this part we will continue our journey of the object oriented features of IEC 61131-3 and look into something called interfaces. Interfaces provide a layer of abstraction so that you can write code that is ignorant of unnecessary details. Interfaces aid you in designing more modular and robust software. With interfaces it’s possible to decouple direct dependencies between objects in your software.

Read more

I’m currently doing a YouTube tutorial called “PLC programming using TwinCAT 3“, which is one of the biggest hobby projects I’ve ever committed myself to. When I started with the tutorial I had a gut-feeling that it would probably take a huge amount of time to pull this one off. Initially, I guessed I would have to spend around five minutes of work for every minute of produced movie (ratio of 5:1). Now that I’ve done a couple of videos and actually clocked the time it takes all I can say is that ….boy, was I completely off with that guess! Lately I have been receiving many e-mails and messages with the question “When is the next part of the tutorial coming out?”. Instead of just providing the boring and generic answer “When it’s finished” I have decided that I will instead try to explain what it takes to do a YouTube video, and why I am not releasing a video every week.

Read more

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

In this part we will start to look into the object oriented programming parts of structured text and IEC 61131-3 called function blocks, and I think it’s here things are really starting to get fun! For those that are Java, C, C++ or just “traditional” programmers, going into the realm of function blocks is like going from C-style structures and functions, and into classes in C++. With function blocks we can go from working in a procedural style programming into objected oriented style programming.

Read more