
Learn structured plc programming with modular design patterns and code reusability. Use simulations in the court system environment to practice advanced tools like web visualization and debugging.
Explore plc structured programming and design patterns through a hands-on, project-based approach, including finite state machine concepts, modular tooling such as a generic device, and fault-aware machine simulations.
Explore arrays as a collection of same-type variables with a defined size to manage multiple buttons. Use for loops and rising triggers to update ten counters from the array.
Explore using structures in PLC programming by defining a motor data type with nominal current, max current, nominal velocity, and motor type, and applying arrays of these structures.
Define and use enumerations in PLC programming to represent discrete motor types such as synchronous, brushless, and stepper; enforce valid values with strict attributes and qualified names.
Learn to debug PLC programs using watch lists to monitor variables online, powerful trace graphs, cross-reference insights, and breakpoints for step-by-step execution.
Create a CoDesys visualization in a standard PLC project, add visualization components, and wire a counter with rising and reset triggers. Display the counter with formatted text and alarms.
Learn to build and deploy Coats's web visualizations for PLCs, configure ETM web visualizations with update rate and buffer size, and navigate multi-page HMIs via button events.
Begin the PLC programming project by exploring global variables, actuators, sensors, and fault visualization, and walk through an end-to-end machine flow from product feed to color-based sorting.
Learn to implement a finite state machine for single-product processing with structured text. Explore homing, state transitions, sensor checks, actuators, and color-driven table handling.
Implement a basic finite state machine for a single-product processing machine, handling stop, hold, and emergency inputs with soft and hard stops, resume logic, and safe state transitions.
Apply a modular state-machine approach to programming a piston extraction station in a PLC system, handling start, stop, emergency, hold, and feed with position sensing.
Explore a modular processing and sorting machine workflow, detailing extraction and level stations, levers, grippers, sensors, and emergency controls to coordinate product movement, waiting conditions, and state transitions.
Explains a modular elevator control using a state-machine approach, with states 0, 10, 20, 30, 40, and 50 and emergency handling to manage lever, sensors, and product flow.
Implement a modular drilling station control using a state-machine approach, covering drill actuation, up/down movement, product detection, timing, and emergency stop handling.
Implement a modular plc sorting machine by extending state-driven table station, using timers and color sensing to sort red and blue products while ensuring safe emergency stops and parallel operation.
Apply a hierarchical state machine to synchronize stations, coordinating start, stop, hold, and emergency commands, while evolving a modular design with a generic device for fault detection and easy reconfiguration.
Learn to design a function block that can handle many different pistons according to its configuration, supporting single or double activation and feedback configurations, enabling fault simulation and diagnosis.
Develop a function block for a generic device using input/output and internal variables, with enums for activation and feedback types and a timer-based state machine.
Explore building a generic device using a four-state state machine with disabled, enabling, enabled, and disabling, including enable inputs, sensor-actuator mappings, and timeouts to manage single or double feedback.
Examine how a generic device handles multiple sensors and actuators, analyzing feedback configurations to detect disable, enable, and actuator faults through stable states and timeouts.
Enable the generic device in the extraction station and drive the piston via device commands to forward and backward positions, handling emergency and stopping states.
Integrate the extraction station with generic devices, control the lever and gripper, and establish state transitions to enable, disable, and coordinate stop, emergency, and elevator actions.
Learn PLC programming with structured patterns through generic device integration, enabling the elevator only when the lever is clear, using device state over sensors, and handling emergency stop.
Implement a drilling station by integrating generic devices, managing enable/disable states, and coordinating drill movement, activation, and air actuation via a state machine.
Implement state-based control of a processing and sorting machine using generic devices, coordinating table and gripper through enable, start, stop, and fault-aware emergency handling.
Integrate generic devices into a processing and sorting machine. Implement fault detection and emergency stop logic, and design a fault management system to memorize, sort, and display faults.
Develop a signal management component to track alarms, warnings, and messages, using a global signal list, structured data types, and a function block that updates, resets, and sorts by priority.
Understand signal management in structured programming by detecting new signals, tracking active alarms, warnings, and messages, and inserting them into a priority-ordered list with an index map.
Manage signals in the signal management function block by handling active signals, saturation, and reset. Configure maximum simultaneous signals via global constants to avoid hardcoded numbers.
Implement a signal management function block to handle faults and alarms, integrate it into the program, and create an HMI diagnostic view showing alarms, warnings, and messages.
Extend the signal management function block to detect faults in non-device sensors, using a signal monitor, state machines, and alarms across extraction, lever, and elevator stations.
Explore fault management in a drilling station by analyzing sensor limitations and actuation faults, and implement detection using timers, signal monitors, and function blocks within a signal management framework.
Develop a state-machine based fault detection for a processing and sorting machine, using table pickup, blue and red position sensors, and signal management to monitor sequence and faults.
Finish the first project by integrating control and diagnosis for a bottle filling and capping line, then apply signal management and a Cartesian robot to the new machine.
Configure seven generic devices for a bottle filling and capping line, define conveyors, filling, capping, and robot movements, and implement the main station state machine.
Build a conveyor station state machine that manages start, emergency, and outputs while counting products with sensors, and implement nested filling and capping FSMs with timers and device control.
Implement modular station state machines for bottle filling and capping, manage triggers and queues, handle emergency stops, and coordinate conveyors to keep the line running.
Learn a state-driven PLC approach to controlling the robot station for bottle picking, gripping, and placing, using horizontal, vertical, and gripper devices, with start, stop, and emergency handling.
Develop and test PLC programming signal management by wiring the global signal list to fault and alarm blocks, triggering alarms from the emergency button and adding timer faults for sensors.
Implement fault detection for the robot station by monitoring the pickup position sensor signal monitor and gripper actuator, integrating signal monitor blocks, and performing online validation during simulation.
Apply modular PLC programming techniques to assemble a bottle filling and capping machine from templates for the state machines, demonstrating a complete, template-driven PLC software approach.
Develop modular PLC programs using general-purpose components like the generic device, signal management tool, station template, and main program state machine to save time and improve reuse.
Discover further courses on plc programming, industrial automation, codesys, and plc open motion control. Access free GitHub exercises and explorations of digital twins and 3d visualization from basics to machines.
This course will teach you how to write better and re-usable code for your applications.
In this course, we dig deeper into PLC programming techniques and programming patterns for automation.
This course will be held entirely using the CoDeSys development environment and the Structured Text PLC language. So, if you are looking for a course on Ladder Logic, this is NOT the course for you.
To properly understand this course, the students should have basic knowledge about PLC programming and about CoDeSys.
If you do not have this knowledge, please check out my beginner course on Udemy: PLC Programming – Learn the Basics with CoDeSys .
In this course, we will learn different programming patterns for automation, focuses on modularity and code re-usability.
We will develop different tools and templates that can be re-used in many different projects and machines.
We will work on carefully designed simulations, provided by me, that will allow you to program a complete automatic machine, even without having a real PLC.
If you want to work as a PLC software engineer or if you want to make a career in automation, this is the course for you!
At the end of this course you will have learned many techniques that will allow you work better, faster and in a more efficient way.