Skip to content

OOIP for Controls and Automation Engineers

Welcome to Object-Oriented Industrial Programming (OOIP) examples and docs.

This repository was created to store and make available all of the PLC programming examples posted via my LinkedIn account. It demonstrates how to apply OOP principles and design patterns in CODESYS using IEC 61131-3 languages (primarily structured text).

Note: This project has no official affiliation with the CODESYS Group — just a practical guide offering an alternative approach to controls software development.

⚙️ Built and maintained by Jacob Lawson


Project Goals

✅ Provide practical examples of OOIP principles using CODESYS

✅ Demonstrate sclable design patterns for industrial controls projects

✅ Share best practices and reusability tips for PLC projects

✅ Create a structured and open knowledge base for eduactional and reference purposes


Who This Is For

  • Controls engineers transitioning to Structured Text and OO programming
  • Software developers collaborating with PLC/ Controls teams
  • Teams aiming to modernise architectures in a clean and maintainable way

Prerequisites

A basic level of programming and automation knowledge is assumed.

Examples are built using Codesys v3.5 SP20 Patch 1 so it is recommended that you install this version (or later) in order to follow along with these examples.

The Codesys IDE is available for free at the Codesys Store.


How to Use This Site

Start with the Features section to learn about individual OO features, then explore Patterns to see how you can start putting them into practice.


Using an example project

All examples are exported in .export format.

To import one of the examples:

--> Create a new standard project in CODESYS

--> Highlight the application level in the device tree

--> Go to the Project drop-down menu

--> Select Import

--> Navigate to the .export file and select the files you want to insert

Insert POU

Want to contribute?

Contributions are welcome! (soon) Feel free to get in touch and discuss how you can contribute your own examples or suggest inprovements to the project.

I'm hoping to create an examples section where people can share ther projects/ libraries with the rest of the controls/automation community. If you have something you'd like to add just let me know!

Repo Structure