- •Введение
- •1. Технические характеристики контроллеров
- •2. Структура алгоблока. Последовательность обслуживания алгоблоков
- •2.1. Структура алгоблоков
- •2.2. Последовательность обслуживания алгоблоков
- •3. Простой пид-регулятор
- •3.1. Алгоритмы, входящие в состав простого регулятора
- •3.2. Безударные переключения регулятора
- •3.3. Назначение и оценка зоны нечувствительности
- •Око (01) – Оперативный контроль регулирования
- •4. Модификация пид-регулятора
- •5. Программный регулятор с прз
- •Координаты графика алгоритма прз
- •6. Программный регулятор с кус
- •Координаты графика (кусочно-линейной функции) алгоритма кус
- •7. Регулятор с переменной структурой
- •7.1. Комбинированный регулятор с переменной структурой
- •7.2. Реализация привязки по каналу возмущения
- •Контур 01 (первый алгоблок). Привязка входов алгоритма око
- •Контур 02 (второй алгоблок). Привязка входов алгоритма око
- •8. Регулятор повышенной надёжности
- •8.1. Конфигурационная таблица программы 1
- •8.2. Программа защиты по аналоговому каналу
- •Представление информации на лп контроллера р-130
- •8.3. Конфигурационная таблица программы 2
- •8.4. Алгоритм простого блока мажоритарного выбора
- •8.5. Программа простого алгоритма мажоритарного выбора
- •9. Сар соотношения растворов реагентов
- •9.1. Простой регулятор соотношения
- •9.2. Программа регулирования соотношения расходов
- •9.3. Регулятор соотношения с переключением каналов
- •10. Регулятор с автоподстройкой
- •11. Каскадный регулятор
- •12. Регулятор обратного действия22
- •12.1. Формирование запрета
- •12.2. Конфигурационная таблица
- •13. Таблицы приёма, передачи и отображения параметров
- •13.1. Спецификация разработанных программ
- •13.2. Отображение информации на лп контроллера 02
- •13.3. Таблица перечня параметров
- •13.4. Передача информации в сеть «Транзит»
- •13.5. Приём информации из сети «Транзит»
- •13.6. Отображение информации на лп контроллера 03
- •14. Организация связи сети контроллеров с верхним уровнем
- •15. Документы, прикладываемые к по сар
- •16. Пути совершенствования сар на базе контроллеров
- •16.1. Повышение эффективности кросс-средств
- •16.2. Пути совершенствования библиотек алгоритмов
- •Заключение
- •Список Литературы
- •Приложение а Модули усо
- •Типы модулей усо
- •1. Входные аналоговые сигналы
- •2. Аналоговые выходные унифицированные сигналы
- •3. Входные дискретные сигналы
- •4. Дискретные выходные сигналы
- •Погрешность модулей усо
- •Приложение б Диапазон изменения сигналов и параметров
- •Приложение в Типы сигналов и их соответствие
- •Взаимное соответствие типов сигналов
- •Приложение г Справочная информация по алгоритмам
- •Принятые сокращения
- •Приложение д Ряд Пада
- •Проверка на достоверность аналоговых сигналов
- •Функциональный блок запоминание
- •Функциональный блок ограничение скорости
- •Приложение з Выбор исправного канала из двух
- •Функциональный блок ноль-орган
- •Функциональный блок расчета скользящего среднего
- •Функциональный блок переключатель трехканальный
- •Контрольные вопросы по темам
- •Тема: Реализация аналоговых систем управления
- •Тема: Организация информационного обмена контроллера с пэвм
- •Приложение к Задания по обратному программированию
- •Приложение л Принципы программирования
- •Приложение м Блок циклической индикации
- •Лицевая панель регулирующей модели
- •Приложение н Фрагменты работы Быкова а.Ю.
- •Оглавление
- •Севастьянов Борис Георгиевич Реализация законов аналогового регулирования на контроллерах
- •404110, Г. Волжский, пр. Ленина, 69.
- •404110, Г. Волжский, пр. Ленина, 69.
Проверка на достоверность аналоговых сигналов
Реализация программы31 проверки на достоверность для одного входного
аналогового сигнала для контроллера ПЛК-154 на языке ST (рис. 78)
FUNCTION_BLOCK analog_defens
VAR_INPUT
x: REAL;
END_VAR
VAR_OUTPUT
x1: REAL; D: BOOL;
END_VAR
VAR
ZPM: Zapom; ZPM2: Zapom;
blinker2: BLINK; blinker1: BLINK;
RS_tr: RS;
ton1: TON;
ZPM_F: Zapom; ZPM3: Zapom;
OGS: ogran_skor;
OBR: BOOL; Vyb_PROV: BOOL; Dgen: BOOL; POR: BOOL;
END_VAR
Рис. 78. Программная реализация алгоритма проверки на достоверность
для одного аналогового канала
Функциональный блок запоминание
FUNCTION_BLOCK Zapom
VAR_INPUT
c: BOOL:=TRUE;
x: REAL;
END_VAR
VAR_OUTPUT
d1: BOOL;
y: REAL;
END_VAR
VAR
Rtr: R_TRIG;
tp_time:TP;
d: BOOL;
END_VAR
tp_time(IN:=c, PT:=T#0.3s);
d1:=tp_time.Q;
Rtr(CLK:=c);
d:=Rtr.Q;
IF d=TRUE THEN y:=x;
END_IF
Функциональный блок ограничение скорости
FUNCTION_BLOCK ogran_skor
VAR_INPUT
in: REAL; lim: REAL;
END_VAR
VAR_OUTPUT
Q: REAL;
prev: BOOL;
END_VAR
VAR
podkluchenie: R_TRIG;
C_pod: BOOL;
Qpred: REAL;
END_VAR
podkluchenie(CLK:=TRUE , Q=>C_pod );
IF C_pod=TRUE THEN Q:=in;
END_IF
Qpred:=Q;
IF ABS(in-Qpred)>lim THEN prev:=TRUE;
IF (in-Qpred)>0 THEN Q:=Qpred+lim*1;
ELSIF (in-Qpred)>0 THEN Q:=Qpred+lim*(-1);
ELSIF (in-Qpred)=0 THEN Q:=Qpred+lim*0;
END_IF; ELSE Q:=in; prev:=FALSE; END_IF
Приложение з Выбор исправного канала из двух
Программная реализация выбора исправного канала из двух (рис. 79)
FUNCTION_BLOCK Maj_2_2_CKC
VAR_INPUT
x1: REAL; x2: REAL;
Op1: BOOL; Op2: BOOL; uv_oper2: BOOL; uv_oper1: BOOL;
END_VAR
VAR_OUTPUT
y: REAL;
otkaz1: BOOL; otkaz2:BOOL; rashojdenie: BOOL;
END_VAR
VAR
ok1:BOOL; ok2:BOOL;
x1_def: analog_defens; x2_def: analog_defens;
ckc1: Skolz_SRednee; ckc2: Skolz_SRednee;
no2: Null_organ; no1: Null_organ; no3: Null_organ;
D1_1: BOOL; D2_2: BOOL;
rs1: RS; rs2: RS;
per: PER_3KAN;
ton1: TON; ton2: TON;
dd1: Digit_Defens; dd2: Digit_Defens;
vybran1_kanal: BOOL; vybran2_kanal: BOOL; podkl_2: BOOL; podkl_1: BOOL;
ojidanie: BOOL; All_ok: BOOL;
srednee1_2: REAL ;
blinker: BLINK;
zpm: Zapom;
END_VAR
Рис. 79. Программа выбора исправного канала из двух каналов
Функциональный блок ноль-орган
FUNCTION_BLOCK Null_organ
VAR_INPUT
x1: REAL; x2: REAL; x_vg: REAL; x_ng: REAL; delt_x: REAL;
END_VAR
VAR_OUTPUT
D1: BOOL; D2: BOOL; D: BOOL;
END_VAR
VAR
Z: REAL;
END_VAR
Z:=x1-x2;
IF Z<(x_vg-delt_x) THEN D1:=FALSE;
END_IF;
IF Z>=x_vg THEN D1:=TRUE;
END_IF;
IF x_vg>Z THEN
IF Z>=(x_vg-delt_x) THEN D1:=D1;
END_IF;
END_IF;
IF Z>(x_ng+delt_x) THEN D2:=FALSE;
END_IF;
IF Z<=x_ng THEN D2:=TRUE;
END_IF;
IF x_ng<Z THEN
IF Z<=(x_ng+delt_x) THEN D2:=D2;
END_IF;
END_IF;
D:=D1 OR D2
Функциональный блок расчета скользящего среднего
UNCTION_BLOCK Skolz_SRednee
VAR_INPUT
x: REAL; Csb: BOOL;
END_VAR
VAR_OUTPUT
Sred: REAL; Yzap: REAL;
END_VAR
VAR
i: INT;
J:ARRAY[0..9] OF REAL;
Co: BOOL;
blinker1:BLINK;
Cvkl:R_TRIG;
podkluchenie:R_TRIG;
Sta: BOOL;
Sum: REAL;
END_VAR
podkluchenie(CLK:=TRUE , Q=>Csb );
blinker1(ENABLE:=TRUE , TIMELOW:=T#0.4s , TIMEHIGH:=T#0.4s );
Sta:=blinker1.OUT;
Cvkl(CLK:=Sta );
Co:=Cvkl.Q;
IF Csb=TRUE THEN
FOR i:=0 TO 9 DO J[i]:=x;
END_FOR;
Sred:=x;
sum:=x*10;
END_IF;
IF Csb=FALSE THEN
IF Co=TRUE THEN
sum:=sum-j[9];
FOR i:=9 TO 1 BY -1 DO
J[i]:=J[i-1];
END_FOR;
J[0]:=x;
Sum:=Sum+J[0];
Sred:=sum/10;
END_IF;
END_IF;
Yzap:=J[9];
