FBD Последовательное Управление: Учебник по Программированию Конечных Автоматов

Однажды стажер спросил, почему его программа для машины розлива иногда пропускала шаг и заполняла бутылку до того, как она была установлена. Ответом не был отсутствующий таймер — это было отсутствие состояния. Его программа была кучей независимых условий; настоящие последовательные машины — это конечные автоматы, и разница заключается в разнице между программой, которая работает на бумаге, и программой, которая работает в понедельник.

Последовательное управление повсюду в автоматизации: линия розлива, поворотный стол, пресс для штамповки, покрасочная камера. Классическая ошибка — писать каждый выход как свободное условие — "когда сенсор A и таймер B, откройте клапан C" — а затем отлаживать невозможные комбинации в 2 часа ночи. Решение состоит в том, чтобы перестать думать о выходах и начать думать о состояниях.

Что такое конечный автомат на самом деле

Конечный автомат — это набор именованных шагов и правила для перехода между ними. Машина всегда находится ровно на одном шаге: ОЖИДАНИЕ, ПОЗИЦИЯ, ЗАПОЛНЕНИЕ, ЗАКРЫТИЕ, ВЫБРОС. Каждый шаг имеет действия при входе, условия выхода и охрану. Бутылка заполняется только на шаге ЗАПОЛНЕНИЕ, и шаг ЗАПОЛНЕНИЕ доступен только из ПОЗИЦИИ, когда сенсор бутылки подтверждает позицию. Это звучит как бюрократия; это ведет себя как инженерия.

В FBD от xLogicSoft конечный автомат четко отображается на классическом шаблоне сдвигового регистра или на флагах F, используемых в качестве битов шагов. Шаблон: один флаг F на шаг, набор условий перехода и блок одноразового перехода, чтобы машина продвигалась ровно на один шаг за событие. Поскольку текущий шаг всегда виден — ЖК-дисплей показывает, какой флаг F активен — оператор и техник по обслуживанию могут одним взглядом увидеть, где, по мнению машины, она находится. Эта единственная функция сокращает время на устранение неполадок больше, чем любой диагностический мануал.

Построение: Три Станции Розлива

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

  • Шаг 0 IDLE: все выходы отключены. Переход: датчик присутствия бутылки, кнопка запуска.
  • Шаг 1 ПОЗИЦИЯ: конвейер работает, пока бутылка не остановится под головкой заполнения. Переход: датчик позиции.
  • Шаг 2 ЗАПОЛНЕНИЕ: клапан заполнения открывается на заданный промежуток времени или до срабатывания датчика уровня. Переход: таймер завершен.
  • Шаг 3 ЗАКУПОРКА: закупориватель опускается и нажимает. Переход: давление подтверждено, таймер завершен.
  • Шаг 4 ВЫБРОС: конвейер работает, чтобы вынести бутылку. Переход: датчик выхода сработал.

Каждый переход использует блок задержки включения или блок реле с подмывом (одноразовый), так что продвижение происходит ровно один раз. Охрана на каждом переходе — это сам шаг — Шаг 2 не может начаться, если машина не находится на Шаге 1, и точка. Бутылка не может быть заполнена заранее, потому что "рано" не существует как условие; его нет в таблице шагов, и бутылка не будет установлена, пока машина не покинет ПОЗИЦИЮ.

Дайте оператору ручной режим шага, прежде чем давать ему что-либо еще. Вход выбора позволяет машине продвигаться на один шаг за раз через последовательность, так что техник по настройке может поочередно перемещать линию через ПОЗИЦИЮ, ЗАПОЛНЕНИЕ и ЗАКРЫТИЕ, наблюдая за актуаторами. Конечный автомат делает это тривиальным — продвижение на один шаг — это просто принуждение к следующему переходу — и превращает ввод в эксплуатацию из загадки в контрольный список. Машины, которые нельзя пройти вручную, — это машины, которые отлаживаются с помощью отвертки.

Тест Режима Отказа

Вот упражнение, которое показывает, построили ли вы конечный автомат или кучу условий: перечислите экстренные ситуации. Бутылка застряла под головкой заполнения? Машина должна оставаться на ЗАПОЛНЕНИИ, остановить насос и сигнализировать — а не блуждать в ВЫБРОС и сбрасывать продукт на пол. Сенсор выходит из строя и сообщает "бутылка присутствует" навсегда? Машина должна истечь время на шаге ПОЗИЦИЯ и сигнализировать, а не заполнять одну и ту же невидимую бутылку всю ночь. Сенсор выходит из строя в другую сторону, "никогда не присутствует"? Машина терпеливо ждет — это нормально, так и должны вести себя машины.

Напишите в программу контрольный таймер: если машина находится на любом не-IDLE шаге дольше максимального времени шага, переходите в состояние FAULT, отключите выходы и включите сигнализацию. Максимальное время — это число, которое вы уже знаете из времени цикла — вы не догадываетесь, вы применяете физику.

Решите, что происходит после сбоя, прежде чем он произойдет. Общий выбор: машина останавливается там, где она есть, оператор устраняет причину, нажимает сброс, и последовательность возвращается в IDLE — или к началу прерванного шага, если продукт все еще безопасен. Возврат в IDLE проще и безопаснее для небольших машин; возобновление в середине цикла быстрее, но требует, чтобы каждое состояние выхода было известно и доказано. Для машины розлива IDLE — это честный ответ — полупустая бутылка в любом случае является бракованной.

Почему FBD превосходит лестницу в этом

Одна привычка отладки сразу же оправдывает себя: сделайте текущий шаг видимым на переднем ЖК-дисплее в виде простого числа. Первый отчет оператора становится "он застрял на шаге 4", а не "он делает что-то странное", и шаг 4 указывает прямо на его условие перехода. В xLogicSoft биты флагов находятся прямо в окне монитора, так что сессия на ноутбуке показывает ту же картину, что и ЖК-дисплей. Сопоставление слов оператора с состоянием программы сокращает двухчасовую охоту до двадцати минут каждый раз.

Лестничная логика может выразить конечный автомат, но для этого требуется сто рунгов и схема, которую никто не читает. В FBD структура шагов находится перед вами: сдвиговой регистр или блок флагов показывает текущий шаг, блоки перехода видны, и последовательность читается сверху вниз. Среда xLogicSoft включает около семидесяти функциональных блоков, и машина с пятью шагами и блокировками удобно помещается на одной странице программы. Когда машина меняется — новая станция, новый сенсор — вы добавляете шаг и два перехода вместо переподключения логики.

Начните с таблицы шагов на бумаге, затем флагов, затем переходов. Программа будет скучно правильной, и скучно правильная — это высший комплимент, который может получить программа автоматизации. Машинам не нужно быть умными; им нужно быть предсказуемыми.