CODESYS ControlElement Libraries
Introduction
CODESYS ControlElement Libraries includes the ControlLoopLibrary library which provides parameters for controls, filters, and transfer functions for process control and signal processing.
Product description
The ControlLoopLibrary library includes function blocks for process control. It consists of different elements that are assembled flexibly into a control structure. These include various differentiators and integrators, for which various anti-windup strategies are available. In this way, the structure of the created control can be derived from the selected components. Some transfer functions are also achieved according to this scheme. This library also provides an example for the use of nested object-oriented function blocks.
The library also contains several digital filters that can be used for signal processing. For this purpose, it is necessary to determine the rating parameters yourself.
The following function blocks are included in the library:
Controller_Base: Abstract base function block for creating individual controlsController_P: Function block for implementing a P controlController_PD: Function block for implementing a PD controlController_PI: Function block for implementing a PI controlController_PID: Function block for implementing a PID control
Integrator_Base: Base function block for creating individual integral approximationsIntegrator_ParabolicApproximation: Function block for approximating the integral by means of a parabola using the last valuesIntegrator_RectangleApproximation: Function block for approximating the integral by means of a rectangleIntegrator_TrapezoidApproximation: Function block for approximating the integral by means of a trapezoid
These functions blocks provide different strategies to avoid an overflow of the integrator in case of a prolonged control variance.
AntiWindUp_Base: Abstract base function block for creating individual anti-windup strategiesAntiWindUp_Clamping: Function block for using an anti-windup strategy that fixes the integrator value to the set maximumAntiWindUp_BackCalculation: Function block for using an anti-windup strategy that decreases the integrator value over time
Differentiator_Base: Abstract base function block for creating individual differentiator approximationsDifferentiator_BackwardDifference: Function block for linear approximation of the integral using the last valueDifferentiator_LinearAverageApproximation: Function block for linear approximation of the integral using the last valuesDifferentiator_LinearFourPointApproximation: Function block for linear approximation of the integral using the last valuesIntegrator_ParabolicApproximation: Function block for approximating the differential by means of a parabola using the last values
BangBangController: Function block for implementing a two-point controlBangBangControllerWithTimeHysteresis: Function block for implementing a two-point control with time-based hysteresisBangBangControllerWithValueHysteresis: Function block for implementing a two-point control with value-based hysteresis
ThreePointController: Function block for implementing a three-point controlThreePointControllerWithValueHysteresis: Function block for implementing a three-point control with value-based modulation
Controller_Base: Abstract base function block for creating individual filtersFilter_FIR: Function block for implementing a finite impulse response filterFilter_IIR: Function block for implementing an infinite impulse response filterFilter_SOS: Function block for implementing a second-order section filter
PWM_CreatorBase: Base function block for creating individual PWM signalsPWM_Creator: Function block for creating a PWM signalPWM_Creator_FixedCycle: Function block for creating a PWM signal whose cycle time may differ from the task cycle time
DT1: Function block for writing aDT1transfer member. For easier application, a configuration using theDifferentiator_LinearAverageApproximation is setas default:DT1_LinearAverageIT1: Function block for writing aIT1transfer member. For easier application, a configuration using theIntegrator_TrapezoidApproximation is setas default:IT1_TrapezoidPT1: Function block for writing aPT1transfer member. For easier application, a configuration using theIntegrator_TrapezoidApproximation is setas default:PT1_TrapezoidPT2: Function block for writing aPT2transfer member. For easier application, a configuration using twoIntegrator_TrapezoidApproximation is setas default:PT2_Trapezoid