1.Есть N (4) норий
Как они включаются ?
Нории автономны друг от друга ?
Нории автономны друг от друга это 4 отдельных механизма (вертикальных транспортёра)
включаться они функциональным блоком кстати к созданию которого вы приложили свою руку
Код:
FUNCTION_BLOCK EL (* Управление Норией *)
VAR_INPUT
auto : BOOL; (* Автоматический режим работы *)
man_start,
man_stop : BOOL; (* Экранные кнопки СТАРТ и СТОП *)
auto_start,
auto_stop : BOOL; (* Сигналы в режиме автомат СТАРТ и СТОП *)
sens_reidi : BOOL; (* Включение (обратная связь ?) *)
sens_sped : BOOL; (* Контроль скорости *)
sens_podpor : BOOL; (* Подпор продуктом *)
sens_tok : BOOL; (* Контроль токовой нагрузки электродвигателя *)
reset : BOOL; (* Сигнал сброса аварии *)
time_sped : TIME; (* уставка времени для таймера аварии скорости механизма *)
time_podpor : TIME; (* уставка времени для таймера аварии подпора механизма *)
END_VAR
VAR_OUTPUT
out : BOOL; (* Выходы на пускатель *)
fAlarm : WORD; (* Флаг аварий *)
END_VAR
VAR
step : (stop, start, alarm); (* Состояние управляющего процесса *)
timer_reidi : TON; (* Контроль включения *)
timer_sped : TON; (* Контроль скорости *)
timer_podpor : TON; (* Контроль по подпору продуктом *)
RTRIG_auto_start: R_TRIG;
RTRIG_auto_stop: R_TRIG;
END_VAR
(*********************************************)
CASE step OF
stop:
timer_reidi(in:=FALSE);
timer_sped(in:=FALSE);
timer_podpor(in:=FALSE);
fAlarm := Ok;
RTRIG_auto_start(CLK:=auto_start);
step := SEL( SEL( auto, RTRIG_auto_start.Q, man_start), step, start);
start:
timer_reidi(in:= NOT sens_reidi, pt:=T#1s, Q=> fAlarm.xReidi );
timer_sped(in:=NOT sens_sped, pt:=time_sped, Q=> fAlarm.xSped );
timer_podpor(in:=sens_podpor, pt:=time_podpor, Q=> fAlarm.xPodpor );
fAlarm.xTok := sens_tok;
RTRIG_auto_stop(CLK:=auto_stop);
step := SEL(man_stop OR RTRIG_auto_stop.Q, step, stop);
step := SEL(fAlarm <> Ok, step, alarm);
alarm :
step := SEL(reset AND NOT sens_tok, step, stop);
END_CASE
out := step=start;
2.Есть M (32) вентиляторов (?)
Пуск/стоп - раздельные импульсы.
Нужен режим авто(см.ниже) и ручной.
опять же функциональный блок
Код:
FUNCTION_BLOCK CULER (*Функциональный блок для управления ВЕНТИЛЯТОРОМ*)
VAR_INPUT
auto : BOOL; (* Автоматический режим работы *)
man_start,
man_stop : BOOL; (* Экранные кнопки СТАРТ и СТОП *)
auto_start,
auto_stop : BOOL; (* Сигналы в режиме автомат СТАРТ и СТОП *)
sens_reidi : BOOL; (* Включение (обратная связь ?) *)
reset : BOOL; (* Сигнал сброса аварии *)
END_VAR
VAR_OUTPUT
out : BOOL; (* Выходы на пускатель *)
fAlarm : WORD; (* Флаг аварий *)
RTRIG_auto_start: R_TRIG;
RTRIG_auto_stop: R_TRIG;
END_VAR
VAR
step : (stop, start, alarm); (* Состояние управляющего процесса *)
timer_reidi : TON; (* Контроль включения *)
END_VAR
(***********************************)
CASE step OF
stop:
timer_reidi(in:=FALSE);
fAlarm := Ok;
RTRIG_auto_start(CLK:=auto_start);
step := SEL( SEL( auto, RTRIG_auto_start.Q, man_start), step, start);
start:
timer_reidi(in:= NOT sens_reidi, pt:=T#2s, Q=> fAlarm.xReidi );
RTRIG_auto_stop(CLK:=auto_stop);
step := SEL(man_stop OR RTRIG_auto_stop.Q, step, stop);
step := SEL(fAlarm <> Ok, step, alarm);
alarm :
step := SEL(reset, step, stop);
END_CASE
out := step=start;
а фб уже даёт команду на модули Вывода и получает информацию о механизме из модулей ввода все режимы ручной автомат есть в ФБ.
3.Для каждой нории есть набор маршрутов из K (160) вариантов (?)
Как активируются маршруты ? В каком порядке ?
Немного не так в массиве лежат варианты для всех норий для каждой свои
Код:
(*нория №1-1*)
2#00000000000000000001000000000001,
2#00000000000000000001000000000001,
2#00000000000000000001000000000001,
2#00000000000000000001000000000001,
2#00000000000000000001000000000001,
2#00000000000000000001000000000001,
2#00000000000000000001000000000001,
2#00000000000000000001000000000001,
2#00000000000000000001000000000001,
2#00000000000000000001000000000001,
(*нория №1-11*)
2#00000000000000000001000000001000,
2#00000000000000000001000000001000,
2#00000000000000000001000000001000,
2#00000000000000000001000000001000,
2#00000000000000000001000000001000,
2#00000000000000000001000000001000,
2#00000000000000000001000000001000,
2#00000000000000000001000000001000,
2#00000000000000000001000000001000,
2#00000000000000000001000000001000,
(*нория №2-1*)
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
2#00000000000000000010000000000001,
(*нория №2-19*)
2#00000000000000000010000000000010,
2#00000000000000000010000000000010,
2#00000000000000000010000000000010,
2#00000000000000000010000000000010,
2#00000000000000000010000000000010,
2#00000000000000000010000000000010,
2#00000000000000000010000000000010,
2#00000000000000000010000000000010,
2#00000000000000000010000000000010,
маршруты запускаться из скады. В скаде выбираем нужный маршрут из выпадающего списка в результате получаем его номер и отправляем его в ПЛК там он попадает в программу обработки маршрутов там смотрим какой нории это маршрут и по cese выбираем нужный псле того как получили сигнал старт маршрута из скады запускаем маршрут после предпускового сигнала.
4.Каждый маршрут - это список необходимых ему вентиляторов (?)
Есть обратная связь по аварии от вентиляторов ? Аварийные действия ?
Где и как расположены физические реле для пуска/стопа вентиляторов ?
каждый маршрут это не только список вентиляторов но и список транспортеров перекидных клапанов и задвижек.
По аварии есть обратные связи их обрабатывает Фб вентилятора приводил выше
реле расположены в щитовых на этажах ими управляют модули вывода му110-16к сигнал о работе собирают модули ввода мв110-16дн