# Управление двигателем | Типовые задачи Предыдущий Следующий

## Общие сведения Наименование: ENGINE. Тип выхода: целый положительный. Количество входов: 5, 8 или 9. ## Назначение Алгоблок предназначен для управления непосредственно двигателем или двигателем исполнительного механизма, такого как насос, компрессор и пр. ## Примечания по входам •порядок входов: «Управляющий выход», «Состояние», «Команда СТОП», «Команда ПУСК», «Таймаут на останов/пуск», «Сигнал БЛОКИРОВКА (без задержки)», «Сигнал БЛОКИРОВКА (с задежкой)», «Задержка блокировки», «Приоритет»; •описание входов: oвход 1: «Управляющий выход» — дискретный выход (или ссылка на него), на который выдается сигнал управления; oвход 2: «Состояние» — дискретный сигнал состояния, снимаемый с исполнительного механизма: 0 — остановлен, 1 — запущен; oвход 3: «Команда СТОП» — передний фронт дискретного сигнала подает команду на останов исполнительного механизма: подается логический нуль на первый вход алгоблока («Управляющий выход»); oвход 4: «Команда ПУСК» — передний фронт дискретного сигнала подает команду на запуск исполнительного механизма: подается логическая единица на первый вход алгоблока («Управляющий выход»); oвход 5: «Таймаут на останов/пуск» — целое положительное число, задаваемое в тактах контроллера (1 такт = 100 мс); если равен 0, то таймаут неограничен; oвход 6: «Сигнал БЛОКИРОВКА (без задержки)» — дискретный сигнал останавливает исполнительный механизм (при необходимости) и не дает его запускать; oвход 7: «Сигнал БЛОКИРОВКА (с задержкой)» — дискретный сигнал останавливает исполнительный механизм (при необходимости, и только после истечения времени задержки блокировки после пуска — задается на восьмом входе) и не дает его запускать; oвход 8: «Задержка блокировки» — целое число больше нуля, задаваемое в тактах контроллера (1 такт = 100 мс); oвход 9: «Приоритет» — приоритетное (безопасное) состояние исполнительного механизма: 0 — остановлен; 1 — запущен; •вход 9 («Приоритет») можно не указывать — по умолчанию значение равно логическому нулю; •входы 6—9 можно не указывать — по умолчанию блокировки отсутствуют (приоритет — см. п. выше). ## Функционирование После холодного старта модуля ПР первый выход алгоблока устанавливается в приоритетное (безопасное) состояние, которое определяется состоянием девятого входа («Приоритет»). При подаче команды стоп/пуск на третий/четвертый вход («Команда СТОП»/«Команда ПУСК») подается соответствующий сигнал управления на первый вход («Управляющий выход») и ожидается сигнал соответствующего состояния на втором входе («Состояние»). Если сигнал соответствующего состояния не приходит за время таймаута, заданного на пятом входе («Таймаут на останов/пуск»), то возникает ошибка останова или пуска. После прихода правильного сигнала состояния ошибка снимается. При приеме сигнала блокировки на шестой вход («Сигнал БЛОКИРОВКА (без задержки)») без задержки или на седьмой вход («Сигнал БЛОКИРОВКА (с задержкой)») с задержкой, заданной на восьмом входе («Задержка блокировки»), подается приоритетный сигнал управления на первый вход («Управляющий выход»). Возникает состояние аварии (с блокированием управления). При уходе сигнала блокировки состояние управляющего механизма сохраняется, управление разблокируется. Конечные и промежуточные состояния исполнительного механизма определяются по значению выхода алгоблока (см. таблицу ниже). Таблица. Описание функционирования
Значение алгоблока | Выдача сигнала на «Управляющий выход» | Описание состояния исполнительного механизма
1 | 0 | Остановлен: первый вход («Управляющий выход») и второй вход («Состояние») равны логическому нулю
2 | 1 | Запущен: первый вход («Управляющий выход») и второй вход («Состояние») равны логической единице
4 | 0 | Останавливается: первый вход («Управляющий выход») равен логическому нулю, а второй вход («Состояние») равен логической единице на время меньшее, чем указано в пятом входе («Таймаут на останов/пуск»)
8 | 1 | Запускается: первый вход («Управляющий выход») равен логической единице, а второй вход («Состояние») равен логическому нулю на время меньшее, чем указано в пятом входе («Таймаут на останов/пуск»)
16 | 0 | Ошибка останова по таймауту: первый вход («Управляющий выход») равен логическому нулю, а второй вход («Состояние») равен логической единице на время большее, чем указано в пятом входе («Таймаут на останов/пуск»)
32 | 1 | Ошибка запуска по таймауту: первый вход («Управляющий выход») равен логической единице, а второй вход («Состояние») равен логическому нулю на время большее, чем указано в пятом входе («Таймаут на останов/пуск»)
64 | Безопасное состояние | Авария (сработала блокировка). Шестой вход («Сигнал БЛОКИРОВКА (без задержки)») без задержки или седьмой вход («Сигнал БЛОКИРОВКА (с задержкой)») после задержки равен логической единице, а также: •когда девятый вход («Приоритет») равен логическому нулю: первый вход («Управляющий выход») и второй вход («Состояние») равны логическому нулю. •когда девятый вход («Приоритет») равен логической единице: первый вход («Управляющий выход») и второй вход («Состояние») равны логической единице Примечание: состояние алгоблока с данным кодом имеет более высокий приоритет, чем код 128
128 | не Вход 2 | Ошибка состояния: •первый вход («Управляющий выход») и второй вход («Состояние») не равны после запуска или останова; •второй вход («Состояние») имеет неинициализированное состояние или недостоверное значение после запуска или останова
## Особые ситуации Неинициализированные состояния или недостоверные значения входов 3—9 приравниваются к нулю. ## Примеры использования B10 = ENGINE(DO1.1; DI1.2; DO2.3; DO2.4; 30; DI1.6; DI1.7; 300; 0) // Использование в аргументах констант и каналов B10 = ENGINE(DO1.1; DI1.1; B1; B2; 50) // Использование в аргументах каналов и идентификаторов алгоблоков B110 = ENGINE(DO1.1; DI1.2; DO2.3; DO2.4; AO1.5; DI1.6; DI1.7; AO1.8; DI1.9) B120 = result(AO2.1; B110) // Запись результата в канал AO2.1