Below you will find a list of software that I’ve created specifically for usage with TwinCAT.


TcUnit is an xUnit type of framework specifically done for Beckhoffs TwinCAT3 development environment. It consists of a single library that is easily integrated into any existing TwinCAT3 project. TcUnit tests can be integrated into a CI/CD pipeline using Jenkins. Go the the website for TcUnit.

OSCAT-Basic modified for TwinCAT

This is a modified version of the OSCAT Basic library, so that it TwinCAT can resolve library dependencies for OSCAT. The original is available at

A precompiled version of the library can be downloaded here.

Read more on:

TwinCAT Library Categories

This is a template for defining your own library categories for TwinCAT3. Without defining a library categories, all your libraries will be shown under the (Miscellaneous)-category in TwinCAT.

Download the template here.

Read more on:

TwinCAT static code analysis loader

All software can be downloaded here.

This is a TwinCAT static code analysis script and program to automatically launch the static code analysis of TwinCAT when commiting code to a version control system. Details about this project are available in a series of posts I’ve made about continous integration/continous delivery (CI/CD) with TwinCAT available at:

The GitHub repository includes the following content:


A TwinCAT PLC project that is to be analysed for static code analysis. This also includes the windows batch-script to be executed by a Jenkins job when a GIT repository change has been detected in the TwinCAT PLC project. This BAT-script launches the TwinCAT static code analysis program described below (TcStaticAnalysisLoader).


A C# .NET program that does the static code analysis using Beckhoffs TE1200 product and reports the result back to the caller as either ERROR, UNSTABLE or SUCCESSFUL which can be used for instance in a Jenkins build slave. The static code analysis is filtered out from the TwinCAT build procedure. This program is used together with the batch-script from the CodeAnalysisDemoTcLibrary folder.

15 Comments, RSS

  1. jamazama

    Im interested in learning how to use the Beckhoff PLC /HMI software(CODESYS). Are there tutorials available and can this automation software be downloaded for personal use?

  2. Rakesh yadav

    Sir i am electrical engineer From Madhaypradesh.Sir i have no knowledge about twincat software programming cx 9020 sir plz support me how can I learn programmingbmy many frnd said dont do this and learn but i want learn. I have also knowledge of ther plc delta mitusibishi,omron pls support

  3. Vencent

    Hi, Jakob
    Thank you very much for your high quality tutorial of twinCAT, I really learned a lot, appreciate it.
    I used TIA Portal to program for Siemens PLC, Beckhoff hardware is so complex to understand, Could you make a video about how to configure Beckhoff hardware in TwinCAT.
    thx again

  4. Jeroen

    Hi Jakob,

    I recently discovered all your TwinCAT tutorials: they are BY FAR the best PLC tutorials I have ever seen! Really appreciate your efforts on this and can’t wait until the next parts are released!

    I also admire they way you program in a OOP way, but I’m still having difficulties to see how one can program a complete machine (with motors, IO, …) in a good OOP way. Do you somewhere have an example program of a complete machine?
    I might learn a lot of it: how do you do alarm management, how do you deal with parameters, …

    Thx a lot!

    • Hi Jeroen! Thanks for your feedback.
      Yes, I know this is hard to come by, and as far as I know there is no example for a complete machine. There are some resources regarding OOP design in my links, as there are some other bloggers that have written about it. This might be something to do a series of videos for in the future. If my videos bring you value, please consider becoming a Patron, which will support me in creation of the videos and will also give you early access to new videos.

  5. José

    Hi Jakob,

    firstly congratulations and thank you, your tutorial was the first i found to learn how to program with twincat 3 and was really helpful for me since i had some programing knowledge but from c++.

    Now i still learning but for my thesis i got the task to program a DC power supply with Beckhoff components and twinCAT 3 via RS232 (serial communication) but after 2 weeks without results i decided to write you.

    firstly, do you know if that´s possible?
    we have in the lab a CX5020 and an external RS232 port the EL6002 also from beckhoff and the power supply it is an Aim TTi QPX600DP, i´ve read the manual and that device should be programmable with the RS232 interface with ASCII-code but i couldn’t find any example,
    In the beckhoff webpage i´ve found an example for how establish the serial communication, i copied it but i don’t see any change or signal that tells me that twincat recognize the device, i hope you can help me and if you know how to send ASCII-code to the device via that interface i would appreciate it so much. thank you again and greetings.

  6. raOliveira

    Hi Jakob.

    Many thanks for your experience and tutorials, awsome work!!

    I’m trying to achieve a FULL SCM (source control management) environment with Azure and/or GitLab, pipelines, CI/CD, unit tests, Jenkins automation, DevOps and some other analytics, etc.

    At the moment i’m in trials phase with some software to see which are the best for my interests.
    From your experience, do you have any advice for me? Do you have already some kind of SCM “setup” you use?

    I was successfull with you tutorial from TcUnit + Jenkins, but i’m open to another solutions.
    The SCM environment that i’m creating, also needs support for Tia Portal (Siemens), but for now Beckhoff first.

    Thank you.

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.