Автоматизация и робототехника
Роботизация мокрых лабораторий: слой оркестрации
Почему планирование, скрытое состояние приборов и спроектированное восстановление после сбоев — а не какой-либо отдельный инструмент — решают, сможет ли линия работать без человека.
Отдельный прибор — дозатор, инкубатор, ридер планшетов — закрытая задача с известной физикой. Соедините шесть таких через одного транспортного робота, и получится нечто иное: распределённая система с разделяемыми ресурсами, несогласованными циклами и частичными отказами. Большая часть инженерной сложности лабораторной робототехники живёт именно в этом слое объединения. Приборы никогда не были трудной частью; трудная часть — между ними.
Расписание — часть протокола
Приборы линии имеют резко разные циклы — часовое инкубирование рядом с тридцатисекундным считыванием — и делят ресурсы единичной ёмкости: транспортная рука обслуживает все станции. Составление маршрутов для этого — производственная задача планирования, и это не канцелярия: расписание само по себе экспериментальная переменная. Планшет, простоявший в очереди к занятому ридеру сорок минут, успевает сильнее испариться и иначе «состариться» по сравнению со своими репликами; разброс времени ожидания — шум, которого исследователь не заказывал. Воспроизводимый протокол требует воспроизводимого расписания: жёсткие рамки времени принадлежат методу наряду с температурой инкубации и возрастом реагентов. Статическое расписание ломается на первом же отклонении, поэтому реальные системы перекладывают план непрерывно, по мере того как приборы сообщают своё состояние.
Каждый прибор — крепость
Приборы проектировались под управление человеком через собственный интерфейс, и значительная часть их внутреннего состояния — что центрифуга сделала с ошибкой дисбаланса, где, по мнению ридера, находится планшет — снаружи невидима. Интеграционные драйверы замазывают это, а абстракции текут: прибор сообщает «готов», не уточняя, к чему готов, и подтверждение «шаг выполнен» не определяет, что на самом деле произошло в лунке. Стандарты обмена с приборами — SiLA 2 и OPC UA в этой области — бьют точно в эту точку, давая инструментам общую модель команд и открытое состояние, но покрытие неровное, и интегратору всё равно приходится вручную кодировать знания о конкретном приборе. Интерфейс, а не мотор, — вот куда уходят месяцы интеграционных проектов.
Сбой — расчётный случай, а не исключение
В ручной лаборатории ошибки гасит человек, который заметил. В безлюдной линии первое же отклонение не встречает никого, поэтому восстановление нужно закладывать в конструкцию. Перемещения обязаны быть атомарными: планшет либо в гнезде А, либо в гнезде Б, а не между ними — иначе отключение питания посреди переноса оставит планшет «в пустоте», и учёт имущества потеряет смысл. Зрелые системы держат белый список распознанных исключений — короткий наконечник, отсутствующая крышка, разбалансированный ротор — с записанным сценарием восстановления для каждого, и определяют безопасные состояния: при любом неопознанном событии система приводит себя к известной конфигурации и останавливается с конкретной аварией. Человек не устраняется, а переезжает: из непрерывного оператора — в адресата определённого аварийного состояния. Насколько далеко может зайти такая делегация — вплоть до управления линией из другой страны — вопрос, который разбирает модель дистанционного управления.