Day 1:
- Introduction to PLC programming;
- Introduction to IEC 61131-3;
- Language features;
- Structuring programs using functions and function blocks;
- Hands-on;
- Extensions for object-oriented programming;
- Object-oriented PLC programming example.
Day 2:
- Object-oriented programming introduction;
- Structuring programs using classes: rationale;
- Data encapsulation and polymorphism;
- Making simple models of classes using UML;
- Object-oriented modeling exercises;
- Programming hands-on.
Day 3:
- Using models for behavior;
- State machines;
- Examples on how state machines can be used to specify program behavior;
- Examples on how state machines can be used to implement program behavior;
- Modeling and programming exercises;
- Describing interactions between program components;
- State machine modeling exercise;
- Programming hands-on.
Day 4:
- Object structure in machine memory;
- Interfaces and references;
- The use of polymorphism in programming: making program parts extensible and reusable;
- Refactoring programs to cover non-functional requirements;
- Programming hands-on.
Day 5:
- Object-oriented methodology and process for constructing software;
- Describing interactions between a machine and its environment: use cases;
- Describing machines in terms of objects: class and object modeling heuristics;
- Making use case realizations using sequences;
- Describing machine behavior;
- Architecture and non-functional requirements: software evolution;
- Implementing the model;
- Addressing issues of program evolution;
- Exercise: object-oriented modeling of a system of own daily practice.