
Turn chaos into structure. Build scalable automation the right way.
This course isn’t about pushing buttons in TIA Portal. It’s about learning a method, a way of thinking about automation software that makes your projects cleaner, more flexible, and future-proof.
Why This Course?
TIA Portal is powerful, but most engineers still code project by project, machine by machine. The result? Spaghetti logic, duplicated effort, and painful maintenance.
Asset-Oriented Programming (AOP) changes that. Instead of writing isolated bits of logic, you structure your PLC projects around “assets” like pumps, valves, filters, drives, each built with reusable blocks, faceplates, alarms, and interlocks.
The result is:
✅ Faster development
✅ Easier debugging
✅ Consistency across projects
✅ A scalable system you can grow with confidence
This course was built to teach you that approach, step by step.
- No vague theory.
- No copy-paste coding.
Just a structured path to mastering AOP in Siemens TIA Portal.
Who This Course Is For
✅ Engineers who already know TIA basics but want to level up their architecture
✅ Professionals moving from traditional programming into structured, reusable design
✅ Teams looking to standardise code, faceplates, and libraries
✅ Anyone who wants their Siemens projects to be cleaner, easier to maintain, and future-proof
❌ Beginners, you may struggle with deeper concepts.
What You’ll Learn
By the end of this course, you’ll know how to:
- Understand the AOP mindset, what assets are, why they matter, and how to structure projects around them.
- Design and implement UDTs to standardise data for each asset.
- Build libraries that make reuse simple and scalable across projects.
- Create clean interfaces using
InOut
and structured data blocks. - Develop interlocks and shutdown logic that’s consistent across assets.
- Handle alarms and HMI integration with reusable faceplates.
- Build a simulation layer for testing before hardware is available.
- Tie it all together with a complete real-world project: a sand filter with sequences, backwash cycles, alarms, and operator screens.
Course Features
🎥 Video Lessons – Complex ideas broken down with clear visual explanations.
💻 Practical Examples – Apply concepts directly inside TIA Portal.
📂 Downloadable Files – UDTs, libraries, projects, and faceplates ready to explore.
📚 Do & Grow Access – Included as part of the Do & Grow membership, or available as a standalone course.
🌍 Complete Coverage – From theory to practice, covering every layer of an AOP project.
Why Learn From Me?
I’ve seen both sides: the quick-and-dirty project that works today but breaks tomorrow, and the structured approach that scales across years and sites.
This course is the result of:
- Years of real-world Siemens projects across multiple industries.
- Teaching engineers in workshops where clarity and structure matter most.
- Writing detailed guides and lessons that thousands of engineers already use to learn TIA Portal.
Now, it’s all here in one resource designed to help you build better projects, faster.
Take the Next Step
If you want more than just code that “works”…
If you want to write automation software that’s clean, reusable, and professional…
This is the course for you.
Start learning Asset-Oriented Programming in TIA Portal today and bring structure to your automation projects.
Enroll In Course
- Lifetime Access, independent of a subscription
- Supports the site and me, enabling more content in the future
Free
- Do & Grow subscription required
- Cheapest and easiest way to access the course
Enroll With Udemy
Rather do this course on Udemy? Use the button below to grab it there instead, I don’t mind!
Introduction (~20mins)

Download resources used later in this course
This will allow you to have a look at your own pace through the project
(You will need TIA V17 or above!)
Assets & User Defined Types (~45mins)

(4 minutes of video)
What exactly is an “Asset”?
By understanding how the term is being used, it will help in the creation of data sets later on

Small article that explains the basics behind what a UDT is.
Plus, some considerations to bear in mind for later in the course

(18 minutes of video)
Lets take a more in-depth view at UDTs by walking through the “UDT_Quarter_Turn_Valve” example and the how it was created

(12 Minutes Of Video)
Learn how to create difference instances of the Asset’s Data.

(8 Minutes Of Video)
Bespoke data “Structs” provide a way to add additional data to individual Asset instances
Library Management & “Types” (~35m)

(19m Of Video)
Walkthrough of the “Library Management Console” and how its used

(5m Of Video)
Learn about Library “Types” and why we need to use them

(13m Of Video)
Learn how to version types in the Project Library, this is important for standardization later on
PLC – Hardware Configuration (~35m)

(18m of Video)
Take a look through CPU configurations and IO modules used in this project

(7m of Video)
Learn how to attach PLC Tags to physical IO hardware and a naming convention that will help understand the locality of the signal
Input Mapping (~35m)

(13m of Video)
Learn how to create an Input Mapping Layer for your raw signals. This provides a place to modify and simulate signals for use in your main project

(23m of Video)
Learn how to expand a basic Input Mapping Block into one that provides complete, and automated, simulation. Perfect for testing full system behaviour
PLC – Managing Assets (~60m)

(13m of Video)
First look at Asset Management and how these are put together. Later lessons will build on this concept

(30m of Video)
Explore the functions of the Analog_Asset_Manager. The lesson explains how non-specific sub-functions are used to provide functionality for the specific asset manager

The correct structuring of Asset Managers’ instance data is crucial. This text lesson helps highlight the overall usage of the Asset Manager

(13m of Video)
A walkthrough of the Quarter Turn Valve Manager. This looks at the differences between instruments and devices when it comes to management of assets
PLC – Data Management (~20m)

(10m of Video)
Interfaces are key to the AOP design approach. Using InOut interfaces is also important and is required to make this design work most efficiently

(10m of Video)
You cannot access global data from inside a function block when using standard approaches. This lesson explains why!
PLC – Alarm Management (~45m)

(10m of Video)
Learn why constants are used to index the alarm array

(7m of Video)
This lesson looks at the Alarm Data structure, and how we’re using two UDTs to make up that data. We’ll also look at comments and why they need to appear in two places in this case

(10m of Video)
The “Global Alarm Manager” is the logic that sets, accepts and resets the alarm. It also provides a status for us to control SCADA / HMI indications with

(17m of Video)
This lesson takes a look at ProDiag and how PLC controlled alarms can be configured and made a part of Asset Oriented Programming
PLC – Managing Interlocks (~30m)

(17m of Video)
A look at how interlocks can be managed with a single DB and UDT. And a small example of raising system interlocks based on data from multiple places

(15m of Video)
First look at “Extension” and creating interlocks using bespoke data in the asset management layers
PLC – Interacting With Devices Via The “Control Layer” (~6m)

(5m of Video)
Learn how we’re going to interface with the devices in this project, via a “Control Layer”, which allows us to easily access the interface of our managers from our sequences.
PLC – Sequencing (~110m)

(9m of Video)
Let’s take a look at how we’re setting up sequence interfacing, so that we can pass structures and necessary signals to the sequence

(30m of Video)
A walkthrough the structured setup of a sequence in Ladder Logic.
This focuses on how components of the sequence interact more than “What we’re doing”, but still explains how the sequence is working along the way

(40m of Video)
This lesson takes a look at the “Wash Sequence”, written in SCL. Focusing on the CASE statement and surrounding structure

(23m of Video)
This lesson explains why and how we’re using “Output Requests” and “Output Commands” to control how multiple areas interact with asset commands

(8m of Video)
This lesson takes a closer look at the “Shutdown Sequence Manager” and how that interacts with both the parent sequence it sits in, and the request handler
PLC – Processing Outputs (~22m)

(Article – 2m)
This article shows an example of the “Output Mapping Layer”

(10m of Video)
This lesson covers protecting the outputs against undesired changes when in Simulation mode, and why we may want to consider this

(10m of Video)
This lesson covers the “Auto Feedback” system, which allows assets to set their own simulation based on processed output requests
HMI – Faceplates (~50m)

(25m of Video)
Learn about Faceplates and how they are used in the Library Management system of TIA Portal

(12m of Video)
Learn how to create a faceplate from scratch, and how to create a custom interface using static & dynamic properties

(11m of Video)
Now that we know how to create a faceplate, this video demonstrates how to create instances and tag them appropriately. We also look up upgrading faceplace instances

(3m of Video)
A small video that explains how to link UDT data for assets to our new Faceplates
HMI – Alarming (~42m)

(4m of Video)
A quick recap of how the PLC is put together and how this is expected to tie in with the HMI / SCADA system

(6m of Video)
This lesson explains Classes and details how to create an alarm class

(20m of Video)
Learn how to create discrete alarms, tag them and the caveats of using Siemens Comfort Panels with Boolean Arrays for alarm management!

(12m of Video)
Lets take a look at setting up the Alarm View control, tying it to the correct classes and generating some alarms in Runtime
HMI – Simulation (~20m)

(6m of Video)
An introductory video into Simulation HMIs and what they’re used for. We’ll take a quick look at what all of the different items on the asset objects mean

(10m of Video)
A walkthrough of how to create Simulation faceplates for our assets

(4m of Video)
This lesson is a small video that demonstrates the Enable / Disable Hard Simulation button now that we have all of the pieces needed
Sand Filter Project Examples (~105m)

(40m of Video across multiple videos in lesson)
Walkthrough of the solution project structure, with explanations as to why the project is setup the way it is.
This lesson is comprised of smaller videos inside

(5m of Video)
Walkthrough the HMI in Runtime Mode

(25m of Video)
Walkthrough the Filtration Sequence with the HMI Runtime

(21m of Video)
Walkthrough of the Wash Sequence with the HMI Runtime

(13m of Video)
A walkthrough of the Analog Setup page and the faceplate used for each analog instance
Course End (~5m)

(4m of Video)
A quick thank you 🙂
END
This section does not have any lessons.
Hello Liam,
Interesting!
I am thinking about something similar as I am programmer for 40 years (15 years Step 7 and later TIA) and I am missing something like TIA capable of OO approach where any object has its own class and methods.
What timeline do you have in mind?
Regards
Boyan
Hi Boyan,
This is in active development, with new lessons being added all the time. I don’t have a timeline as this is getting larger as it’s being developed. However, I am nearly at a point where it may be beneficial for early adopters of the course to enrol for a reduced rate and benefit with the extra modules as and when they come out (at no extra cost).
Keep an eye on this page!
I’m currently developing asset/object orientated programming for my organization so it would be great to get access to your already produced course content even if the course is not fully finished. Also are you programming to any existing standards or defined conventions or are your methods of your own creation?
Hi,
Thanks for expressing your interest. I’ve had enough people ask about this now that I think I’ll open the course up with a discount until its finished. The main theory is all up now. I’m just finishing building the environment to showcase it in action. If people are happy to wait then by all means I don’t mind people jumping on the course now and benefiting at a lower price and free updates later.
I’m not programming to any “standards” for Asset Oriented design, but the core principles follow OOP as close as possible, with things like inheritance and overriding (using variants)
Watch this space, I’ll update shortly with enrollment details, but there’s some things I need to sort out first
Hi Liam,
Do you know when the downloadable resource will be available?
Hi, apologies for the late reply, for some reason I wasn’t notified in the admin section to you commenting.
The download section will be available once the course is complete. The course is being developed, edited, and published as I go, in order to get it out there and so people can take advantage of the theory before its all ready. It’s getting there. As soon as the PLC is complete, I will release it. I’ll then update the download once the HMI is complete as well.
What I don’t want to do is constantly poll people saying “I’ve updated the project”