Версия для печати

Функция модель процеса - PROC_C

Дата: 2009-05-28

Добавлено: komatic

Тема: Step7

Скопировать функциональный блок можно из примеров в Step7 - zEn01_13_STEP7__PID-Temp

Краткое описание:
Функциональный блок PROC_C моделирует последовательное соединение, состоящее из трех звеньев с задержкой первого порядка.
Переменная помехи или переменная внешнего воздействия DISV может накладываться на выходной сигнал оконечного элемента управления.
Коэффициент усиления GAIN может использоваться для определения статического усиления процесса.

PROC_C поможет понять, как можно использовать и конфигурировать регуляторы с аналоговыми сигналами управления.

process_PID
Рис. 1.

Выбирая параметры, пользователь может так изменять модель, чтобы аппроксимировать реальный процесс.
Установка одного из параметров временной задержки:TM_LAGх = 0 секунд снижает порядок динамической характеристики процесса с третьего порядка до второго порядка.

Пример работы:
Параметры регулятора CONT_C - GAIN=3, Ti=10s, Td=5s, TM_LAG=3s
Параметры PROC_C - GAIN=1, TM_LAG1=5s, TM_LAG2=5s,TM_LAG3=5s

process
Рис. 2.

Исходный текст функционального блока:

FUNCTION_BLOCK FB100 TITLE ='process for continuous control' AUTHOR : SIMATIC FAMILY : PROCESS NAME : PROC_C VERSION : '2.0' //reversed by komatic VAR_INPUT INV : REAL ; //входная переменная DISV : REAL ; //переменная возмущения AMB_TEM : REAL := 2.000000e+001; //температура окружающей среды GAIN : REAL := 1.500000e+000; //кфт пропорциональности TM_LAG1 : REAL := 6.000000e+001; //время задержки 1 [s] TM_LAG2 : REAL := 1.000000e+001; //время задержки 2 [s] TM_LAG3 : REAL ; //время задержки 3 [s] CYCLE : REAL := 1.000000e-001; //время выполнения блока [s] END_VAR VAR_OUTPUT OUTV : REAL ; //выходная переменная END_VAR VAR_IN_OUT COM_RST : BOOL; //полный рестарт END_VAR VAR sRueck1 : REAL; //Rьckkopplungswert 1 sRueck2 : REAL; //Rьckkopplungswert 2 sRueck3 : REAL; //Rьckkopplungswert 3 END_VAR VAR_TEMP Hvar : REAL ; //вспомогательная переменная rCycle : REAL; //время цикла вreal rTmLag1 : REAL; //время задержки 1 in real rTmLag2 : REAL; //время задержки 2 in real rTmLag3 : REAL; //время задержки 3 in real OutvNew : REAL; //новое значение выхода END_VAR BEGIN OutvNew:=(INV+DISV)*GAIN; IF COM_RST THEN OUTV:=OutvNew+AMB_TEM; sRueck1:=OutvNew; sRueck2:=OutvNew; sRueck3:=OutvNew; COM_RST:=0; ELSE rCycle:=CYCLE; rTmLag1:=TM_LAG1; rTmLag2:=TM_LAG2; rTmLag3:=TM_LAG3; IF rCycle < 1.000000e-003 THEN IF rTmLag1>=rCycle*5.000000e-001 THEN Hvar:= rCycle/(rTmLag1 * 2.0 +rCycle); Hvar:=(OutvNew-sRueck1)*Hvar; OutvNew:=Hvar+sRueck1; sRueck1:=2.0 *Hvar+sRueck1; ELSE Hvar:=rCycle/(rTmLag1+rCycle); sRueck1:=(OutvNew-sRueck1)*Hvar+sRueck1; OutvNew:=sRueck1; END_IF; IF rTmLag2>=rCycle*5.000000e-001 THEN Hvar:=rCycle / (rTmLag2*2.0 +rCycle); Hvar:=(OutvNew - sRueck2)*Hvar; OutvNew:=Hvar+sRueck2; sRueck2:=2.0 *Hvar+sRueck2; ELSE sRueck2:=OutvNew; END_IF; IF rTmLag3>=rCycle*5.000000e-001 THEN Hvar:=rCycle/ (rTmLag3*2.0 +rCycle); Hvar:=(OutvNew - sRueck3)*Hvar; OutvNew:=Hvar+sRueck3; sRueck3:=2.0 *Hvar+sRueck3; ELSE sRueck3:=OutvNew; END_IF; OUTV:=OutvNew+AMB_TEM; END_IF; END_IF; END_FUNCTION_BLOCK





Просмотров: 6538

Комментарии к материалу

Добавлен: Pie-Man    Дата: 2011-02-28

А какой тулзой графики нарисовались?

Добавлен: komatic    Дата: 2011-02-28

PLCANALYZER ver5_11

Добавлен: Pie_Man    Дата: 2011-02-28

Спасибо

Добавлен: Pie-Man    Дата: 2011-03-01

вас не затруднит кинуть линк на скачку на night124 собака rambler.ru спасибо

Добавлен: komatic    Дата: 2011-03-01

выслал что мог :)

Добавлен: Andrey    Дата: 2011-12-04

А где можно скачать эту прогу? Сейчас на наладке нахожусь, очень нада

Добавлен: komatic    Дата: 2011-12-04

напишите мыло, вышлю ссылку

Добавлен: Andrey    Дата: 2011-12-04

andrey-vic собака rambler.ru

Добавлен: Andrey    Дата: 2011-12-04

komatic, если получится отправить сегодня буду очень благодарен. Завтра на объекте и попробую. Заранее спасибо!!!

Добавлен: komatic    Дата: 2011-12-04

проверьте почту

Добавлен: Andrey    Дата: 2011-12-19

Для komatic.
Сразу не ответил, прошу извинения. Огромное спасибо за присланный софт! Пока сервер с WinCC 7.0 настраивали, очень помогло налаживать регуляторы!!!!

Добавлен: Владимир    Дата: 2012-02-28

Прошу прощения, но кто нибудь сталкивался с ситуацией, когда после снятия защиты FB не открывается? "Compiler information:fatal error" код ошибки 34:38

Добавлен: komatic    Дата: 2012-02-28

небыло вроде такого раньше

Добавлен: Владимир    Дата: 2012-03-02

А нет ли (случайно :-) ) исходного текста блока MEAS_MON (именно он, зараза, ругается после снятия защиты) очень надо!

Добавлен: Владимир    Дата: 2012-03-24

По поводу "не открытия FB после снятия защиты" Все нормально. Просто, видимо, пытался снять защиту с уже кривого FB.Взяв его из чистой библиотеки все стало открываться.

Добавлен: Евгений    Дата: 2015-05-28


Вы упомянули что в данном блоки 3 звена.
Обычно объект управления состоит из статической характеристики, инерционного звена и звена запаздывания.
Какой параметр к чему относится ?
Поясните пожалуйста.

Добавлен: Евгений    Дата: 2015-05-28

имитирование перемещение исполнительного механизма например в блоки PROC_C реализована?

Добавлен: Vadim    Дата: 2019-12-17

Эта строка точно правильная?
IF rCycle < 1.000000e-003
THEN
Это получается чтобы условие выполнялось rCycle должен быть меньше 0,001.

Добавить комментарий

Ваше имя:

Текст комментария (4000 max):

Введите сумму с картинки: