KARTU - картонажная упаковочная система вариант Увельский

Автоматика необходима для поддержания картонажной системы и рабочего места упаковщика в должном состоянии

и представляет собой набор клапанов аспирации, аспирующей системы

ВХОДЫ
Enable | Разрешение работы, не используется
Work | Старт режима работа
Clean | Старт режима зачистка
DVU | ДВУ бункера, пока в сработке и до этого был режим Работа - продолжаем этот режим
Cls1 | аспирац. задвижка закрыта
Mdl1 | аспирац. задвижка в среднем
Opn1 | аспирац. задвижка открыта
Cls2 | аспирац. задвижка закрыта
Mdl2 | аспирац. задвижка в среднем
Opn2 | аспирац. задвижка открыта
Cls3 | аспирац. задвижка закрыта
Mdl3 | аспирац. задвижка в среднем
Opn3 | аспирац. задвижка открыта
Error | ошибка не исп.
EmrgStop | экстренный останов, закрыть\октлючить всё
ВЫХОДЫ
State | состояние блока
_Wrk | флаг работа
_Cln | флаг зачистка
_Cls1 | команда закрыть
_Mdl1 | команда в среднее
_Opn1 | команда открыть
_Cls2 | команда закрыть
_Mdl2 | команда в среднее
_Opn2 | команда открыть
_Cls3 | команда закрыть
_Mdl3 | команда в среднее
_Opn3 | команда открыть
_Blow1 | продувка\протряска первого уровня
_Blow2 | продувка\протряска второго уровня
_Blow3 | продувка\протряска третьего уровня
_Blow4 | продувка\протряска четвертого уровня
CntClean | счетчик времени на зачистку
TimeOpCls | время нужное задвижкам на открытие\закрытие, в случае если нет соответствующих датчиков
TimeMdlOpn | изначально время на достижение среднего положение, трансформировалось во время буфера между продувками (ПЕРЕИМЕНОВАТЬ В RoboPlant)
TimeClean | Время на зачистку
TimeBlow1 | Время продувки\протряски 1
TimeBlow2 | Время продувки\протряски 2
TimeBlow3 | Время продувки\протряски 3
TimeBlow4 | Время продувки\протряски 4

Алгоритм функционирования

Вход | Предыдущее состояние | Выход
Work==1 | State==0 | State=1
Work==1 | State==1 | _Cls(i) - 1, если не закрыты Выжидаем время TimeOpCls State=2
Work==1 | State==2 | _Mdl(i) = 1, Выжидаем время TimeOpCls State=3 _Wrk=1
Work==0 DVU==1 | -- | --
Work==0 DVU==0 | State==3 | _Mdl(i)=0 State=4
Work==0 DVU==0 | State==4 | _Wrk=0 State=5
Work==0 DVU==0 | State>0 && State<6 | State=0 _Cls(i)=1 _Mdl(i)=0
Work==0 Clean==1 | State==0 | State=6
Work==0 Clean==1 | State==6 | Сброс внутренних счетчиков State=7
Work==0 Clean==1 | State==7 | _Opn(i)=1 выжидаем время TimeOpCls State=8
Work==0 Clean==1 | State==8 | выставляем внутренний флаг startBlow State=9
Work==0 Clean==1 | State==9 | _Cln=1 State=10
Work==0 Clean==1 | State==10 && CntClean | CntClean++
Work==0 Clean==1 | State==10 && CntClean>=TimeClean | _Opn(i)=0 startBlow=0 State=11
-- | State==11 | _Cln=0 State=12 на следующем шаге закрытие задвижек снятие всех сигналов State=0

последовательность продувки при внутреннем флаге startBlow
_Blow1 на время TimeBlow1
выжидание TimeMdlOpn
_Blow2 на время TimeBlow1
выжидание TimeMdlOpn
_Blow3 на время TimeBlow1
выжидание TimeMdlOpn
_Blow4 на время TimeBlow1
выжидание TimeMdlOpn