First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

IEC 61131-3 Codesys Programming

Duration: 5 Days

Intended Audience

The course is aimed at engineering and maintenance personnel working with control systems who need to master IEC61131-3 application Development and become familiar with the CODESYS IDE and the IEC61131-3 programming languages IL, ST, LD, FBD, SFC, and CFC


Complex manufacturing systems depend on the integration and networking of different kinds controls to create a reliable automation system. Such systems often have to integrate components with a variety of user interfaces as well as varying functionality and differing command sets. It was in response to these kinds of challenges the the IEC 61131-2 standard was developed. CODESYS is an IEC61131-3 development environment developed by 3S-Smart Software, and will be the development environment used in this course. The hardware used on this course will consist of RaspberryPi and Arduino devices adapted for use in Industrial Environments via the addition of suitable add ons.

Candidates must have some experience in PLC programming and have a reasonable degree of programming experience in a high level programming language such C, C++ or Java.

Course Outline

  • Introduction to the IEC 61131-3 standard:
    • Data declaration
    • Rules for PLC programming
    • Program Structure
    • Syntax und Semantics of the five IEC programming languages:
      • Instruction List (IL)
      • Structured Text (ST)
      • Ladder Diagram (LD)
      • Function Block Diagram (FBD)
      • Sequential Function Chart (SFC)
      • Continuous Function Chart (CFC)
    • I/O Configuration
    • Predefined POUs (libraries)
  • Data types:
    • Standard data types
    • Defined data types (arrays, structures, enumeration types, ...)
    • Visualization:
    • Basic elements
    • Place holder concept
  • Visualization clients
  • Overview of CODESYS functions:
    • Task Configuration
    • Trace Configuration
    • Online Functionality (Breakpoint s, forcing of values, ...)
    • Administration of multiple watchlists and recipes Overview of CODESYS operators
    • Boolean and bitstring logic, comparisons, selections, REAL operators ....)
  • Libraries:v
    • Overview of the IEC standard library (string functions, triggers, counters, timers)
    • Creating customized internal libraries
  • Digital Signals and Digital I/O
    • Terminology
      • Discrete, Logical Binary
      • Sensors, Transducers, Transmitters
    • Switches - Limit switches, Safety Devices, Magnetic switches
    • Logical Sensors - Inductive sensors, Capacitative sensors, Photocells, Ultrasonic sensors, Encoders (Rotating sensors)
    • Discrete Inputs
    • Discrete actuators - Relays, Contactors, Solenoids, Magnetic Valves
  • Analog Signals and Analog I/O
    • Digitisation
    • Filtering
    • A/D Conversion
    • 4-20mA Standard
    • Thermocouples and temperature sensors
    • Flow sensors
  • Structured Design
    • Sequential design
    • Flowcharts
    • State based design and state diagrams
  • Practical Codesys Programming
    • Overview of embedded Linux and the RasbperryPi
    • Installing Codesys on the RaspberryPi
    • Networking, Gateways and Communications
    • Object Oriented Programming - an introduction
    • Applying OOP principles to IEC61131-3 Programming