CODESYS

ПИД-регулятор на CFC и ST

 

            Есть объект, на котором необходимо регулировать температуру. Для выполнения этой задачи используем ПИД-регулятор. Раздел описания переменных показан на рис. 1.

 

Рис. 1. Раздел описания переменных к программе

 

Таблица 1. Описание входов и выходов ПИД-регулятора

Наименование

Тип

Описание

ACTUAL

REAL

Текущее значение контролируемой переменной.

SET_POINT

REAL

Задание.

KP

REAL

Коэффициент передачи.

TN

REAL

Постоянная интегрирования, в секундах (т.е. "0.5" для  500 мс).

TV

REAL

Постоянная дифференцирования, в секундах (т.е. "0.5" для  500 мс).

Y_MANUAL

REAL

Определяет значение выхода Y, если MANUAL = TRUE.

Y_OFFSET

REAL

Стационарное значение Y.

Y_MIN, Y_MAX  

REAL

Значение выхода Y ограничено Y_MIN и Y_MAX. При достижении Y границ ограничения, выход LIMITS_ACTVE, (BOOL) принимает значение TRUE. Ограничение работает только при Y_MIN < Y_MAX.

MANUAL

BOOL

Значение TRUE, включает режим ручного регулирования по входу Y_MANUAL.

RESET

BOOL

TRUE сбрасывает регулятор; в это время Y = Y_OFFSET

 

            Для программы понадобятся следующие элементы: функциональный блок BLINK (для генерации импульсов заданной длительности), пользовательский функциональный блок OBJEKT (для имитации объекта регулирования) и функциональный PID (ПИД-регулятор).

Программа на CFC

Рис. 2. Программа на CFC

 

            В качестве объекта можно написать простейший функциональный блок на языке ST, который будет имитировать изменение температуры в зависимости от регулирования.

 

Объект на языке ST

Рис. 3. Объект на языке ST

 

            Основу визуализации составляет графический элемент «Тренд», в данном случае он настроен таким образом, что выводит начальную температуру объекта (зеленая линия), уставку (красная линия) и выход регулятора (синяя линия).

 

Визуализация работы ПИД-регулятора

Рис.4. Визуализация работы ПИД-регулятора