YouTube

If you want to write TwinCAT 3 software and run it, it’s not obvious how to get TwinCAT 3 to run on your desktop machine, be it directly on the machine or inside a virtual machine. The primary reason for this is because TwinCAT 3 is running in something called kernel space. While I was bored recently on a late afternoon, I discovered that Beckhoff had quietly added some files in the TwinCAT 3 folder in one of the newer releases of TwinCAT 3, that might change all of this.

How you may wonder? Let’s find out!

Read more

Dear developers,

this year there have been a lot of changes, and I guess the end of the year is a time for reflection. This year I have (once again) moved from Sweden to Germany for new opportunities. Every opportunity usually brings its challenges. Moving abroad is always a challenge, and I wouldn’t be honest if I didn’t say that I miss Sweden every day. This blog and my YouTube channel have been one way for me to think of something else than home.

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

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

I have reached 1000 subscribers on YouTube! I never thought I’d get anywhere close to this huge amount of subscribers, especially not this fast! Since I published the first episodes of the “PLC programming using TwinCAT 3 tutorial” in the beginning of March on YouTube, the channel has received over 30.000 views. It seems free PLC programming tutorials are appreciated. It’s time to celebrate and answer some questions that I’ve got from you viewers!

 

Read more

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

Arrays allow us to define types of variables that can hold several data items of the same kind. In this part of the tutorial we will look at a data unit type that allows us to hold several data items of different kind. We will also look at one of the basis of modularization and re-use in software development called functions. We will look at how we can get data in and out of functions, and we will also look at the difference between passing parameters by value and by reference. We will finish this part by writing our very first function!

Read more