
Download a free Codesys-based PLC programming software, learn six languages, simulate visualization and algorithms, and prepare to connect to a real PLC with paid licenses in future lessons.
Call standard functions like timers, counters, and edge triggers in structured text to build a sequential motor start-stop flow, using rising edge triggers for reliable timing.
Explore designing a finite state machine with a case statement in PLC programming, wiring a mixer, pump, gate, and timer to start and stop triggers for sequential process steps.
Explore non instantiated functions that return a value without instantiation, enabling boolean or other types to drive conditional logic in structured text via if statements.
Create a non instantiated function with a boolean return type in the PLC object oriented programming course, passing overload and temperature inputs to control motor coils in simulation.
Present the solution for exercise one of design it your self part 1, detailing a two-pump PLC system with start and stop controls, overcurrent checks, valves, ultrasonic threshold, and simulation.
Learn to organize plc variables with structured variables and structure-based declarations. Build motor templates containing start/stop, overload, contactor, coil, and temperature feedback, accessed as motor1.dot and motor2.dot.
Design a structure for motor inputs and a separate structure for motor outputs. Implement mapping to shorten names and simulate the PLC motor using the input and output structures.
Learn to design a generic sequential activator for multiple motors, using motor input/output structures, start/stop controls, wait times, overload handling, and fault reset.
Explore wrappers that encapsulate multiple hardware classes (motor, VFD, proximity, ultrasonic) to represent machines, and learn how to pass parameters between methods using internal variables, properties, or methods.
Demonstrate wrappers in structured text by building a conveyor motor, passing delay as a parameter from main to wrapper, and coordinating a timer-based start.
Design a modular plc in which a global constants list sets motors per sequence and the total sequences, enabling instantiation via a for loop with sequence inputs and outputs.
Link properties to real I/O by modeling a motor with coil, overload, and fault status, and map them to PLC inputs and outputs for reusable, modular control.
Extend a three-phase device by creating an inherited pump and reuse its properties; add a level sensor with a threshold to drive a boolean status that lights a PLC lamp.
Explore deep inheritance by extending a motor from a three phase device to a timed motor, adding a timer-based run function to automate on/off cycles.
Explore method override in object oriented programming by comparing a base motor class, a timed motor subclass, showing how overridden turn on behaviors determine which function executes.
Explain the protected access specifier in PLC object oriented programming, showing its visibility within a class and its inherited classes. Note main cannot access protected members, unlike private or public.
Build a motor class to demonstrate access specifiers with protected, private, and public methods. Use timer to track operation time and check product efficiency against 60 kg level sensor threshold.
Create and implement an interface to standardize start and stop operations across actuators like motor, valve, pump, heaters, and pistons, using a coil boolean property and polymorphism.
Demonstrate implementing two interfaces, analog and digital, to build a VFD and an ultrasonic sensor, linking signal, scale, and coil and applying start and stop control.
Demonstrates polymorphism via interfaces by wrapping any sensor implementing the analog interface, enabling runtime switching between voltage and current sensors without changing the wrapper.
Demonstrate delegation using pointers and references in a sensor wrapper, linking inputs to pressure sensor current and voltage, and scaling an analog signal for a state machine.
Create a state initializer in the FSM wrapper to map each state, pass its index, and cycle through states using waits and a threshold such as 80, wrapping to zero.
implements the ai actuator implementation as a feature following an interface, defines three boolean properties: coil, start, and stop, and implements turn-off and turn-on logic to drive the actuator.
Implement the fault feature in the features layer by adding fault and reset fault properties, implementing interfaces, and wiring set and get logic to clear the fault status on reset.
Implements ramp and scale functionalities for a VFD controller, using edge detection and interlocks to prevent simultaneous up/down ramps, and maps ramp output to a scaled analog signal.
Test and debug a VFD controller by instantiating the VFD, configuring input and output, applying ramp and frequency scaling, validating motor fault status in manual and auto modes.
Define an I detect interface with a boolean detect signal for a proximity sensor, implement AI detect, and create a common return boolean interface for FSM sensor checks.
Create a wrapper class to represent the machine, define constants and arrays for inputs, outputs, and actuators, and establish interfaces for the FSM.
Extend the wrapper layer by implementing a status flags feature for the state machine, define interfaces, implement properties with gets and sets, instantiate inputs, and map implementations.
Instantiate all fsm states inside the wrapper and map them into an execute array and a state map. Then test by activating the conveyor, elevator, and mixer.
Advance in fsm layer part six explains implementing a buffering state in a PLC, using proximity and dosing checks, a timer, and gating logic to the buffering silo.
Explore two guards in the FSM layer that prevent dosing when the buffering or storage is full, using buffering and storage flags to control mixer deposits and new batch initiation.
Implement fault handling in the wrapper by checking actuators for faults, saving their last status, and restoring it after faults with save and restore status, plus a general shutdown.
Implement a per-silo and machine low-product flag system, check load cell weights against the target weight, and halt batching when low product is detected.
Master PLC programming with this very unique course :
When having a project with changing requirements , traditional programming methods using ladder fall short and causes tons of modification to add a new feature to your PLC program.
Now with the most recent IEC-61131-3 standard features , Object oriented Programming (OOP) is Introduced where you can apply a very sophisticated and Advanced programming methods to create a advanced programs with solid infrastructure.
After completing this course you will have a very solid background on designing using OOP , which its concepts are used in the biggest programming languages like C++ / JAVA / C# and even Python.
Topic we will cover:
Basic of Structured Text programming Language
Modular Design
Classes
Methods
Properties
Inheritance
Polymorphism
Access Specifiers
Pointers and References
Interfaces and Abstractions
Advanced State Pattern
Wrappers and Features
Layered Design
Final Project covering a real-world problem to be solved using OOP
Anyone who is looking for the next level PLC programming , this is the right course for you.
The future of PLC programming is OOP , since it guarantees a powerful infrastructure for your project , and this is what the IEC-61131-3 standard is pushing for in the last couple years . Ladder alone is inefficient , and if you have programmed big projects before , you can tell how complicated modifying your program or adding a new machine or even a small feature. It can even involve you erasing your whole program and writing a totally new one to adapt to the new requirement .
But with Layered design and OOP , modification can be very simple , no need to copy paste code , not to change base code.
There is no other course on the internet that covers these topics in a comprehensive way , and that's my role , i'll feed spoon you these concepts slowly and step by step until you fully understand them.
I hope to see you all there .
Mouhammad Hamsho