Хабр, привет! Мы — биотехнологическая компания BIOCAD, разрабатываем, исследуем и производим лекарственные препараты. Сегодня Александр Колесов, руководитель отдела разработки ПО, расскажет, как мы строили собственную систему управления биореакторами на базе openSCADA и отечественных контроллеров. Сперва поговорим о том, что такое биореактор и зачем он нужен. Это — аппарат, предназначенный для суспензионного культивирования клеток млекопитающих или микроорганизмов в питательной среде при контролируемых условиях. Рынок биореакторов — горячая тема. В 2020 году его объем составлял $5,4 млрд, но аналитики ожидают, что за семь лет он преодолеет планку в $16,4 млрд. Разработками в этой области занимаются организации из десятков стран мира, однако крупнейшие поставщики биореакторов находятся во Франции, Германии и США. Их клиенты — корпорации, исследовательские институты и фармакологические компании. Дело в том, что биореакторы используют во многих видах деятельности: от производства кисломолочной продукции до медицинских исследований. Мы в BIOCAD применяем их в разработке лекарств— например, для борьбы с онкологическими и аутоиммунными заболеваниями. Структура биореактора меняется в зависимости от типа производства или разрабатываемого препарата — какие-то компоненты добавляют, какие-то, наоборот, убирают. Однако одним из ключевых элементов каждого устройства является так называемый культуральный сосуд (биореактор). Чаще всего это — крупная колба с крышкой, в которой происходит микробиологический синтез. В колбе имеется миксер, перемешивающий питательную среду, чтобы полезные вещества равномерно распределялись между всеми клетками. К сосуду также подключены трубки разного диаметра — они нужны для подачи кислорода, азота и углекислого газа, а также отвода метаболитов. За «прокачку» воздушных смесей отвечают контроллеры расхода газов (MFC), а за движение жидкостей — специальная насосная станция. Микробиологический синтез — тонкий процесс, поэтому в биореакторе нужно поддерживать постоянную температуру питательной среды. Требуется строгое соблюдение условий культивирования, а также соблюдение дозировок дополнительно вносимых питательных веществ. Даже при небольших отклонениях от нормы возникает риск гибели клеток и потери процесса. По этой причине в паре с биореактором работают сложные системы автоматизации и управления с высокоточными датчиками и контроллерами. Они регулируют вес культуральной жидкости, уровень pH, потребление кислорода и другие параметры. Биореакторы могут быть различных объемов: существуют как промышленные установки на сотни литров для массового производства вакцин (если говорить о сфере фармакологии), так и более компактные варианты. Последние нужны для разработки рецептуры и проведения тестов в лабораториях. Например, вот так выглядит «настольный» биореактор BioGain II в BIOCAD: Мы решили постепенно отказаться от устройств автоматизации, поставляемых коллегами — работа с готовыми продуктами имела свои недостатки: Закрытость систем. Установки, поставляемые нашими партнерами, были проприетарными и, соответственно, закрытыми для модификаций. В большинстве случаев мы были вынуждены работать в рамках той функциональности, которую поставщик предлагает «из коробки». Мы могли вносить какие-либо изменения или добавлять интеграции с новыми информационными системами, но этот вопрос решался долго и с привлечением сервисных служб поставщика. Аналогичная ситуация сложилась с ПО SCADA. Это — программный пакет, способный обрабатывать существенные объемы данных на лету и предоставлять статистику. Мы ежегодно платили за техническую поддержку и обновления, однако ничего не могли поделать, если заложенные в систему функции не отвечали нашим требованиям. На запросы по функциональности технические специалисты поставщика чаще всего отвечали: «Это работает так, как работает». Устаревшее оборудование. Российский рынок не был основным для наших партнеров, что отражалось на цепочке поставок. Когда за рубежом уже использовали новые установки, мы получали их предыдущее поколение, а это были громоздкие аналоговые платформы. С ними было сложно выделиться, поскольку их инструментарий был идентичен тому, что уже использовали конкуренты. Мало данных. Аналоговая природа системы управления накладывала ограничения на объемы данных о процессах внутри биореактора, которые мы могли собирать. Например, сигнал на выходе аналогового датчика уровня pH можно преобразовать только в одну инженерную единицу — кислотность среды. Единственное, что мы можем дополнительно проконтролировать, это обрыв кабеля (неисправность сенсора) — тогда сигнал просто пропадает. Обработка собранных данных также вызывала сложности, так как все протоколы были проприетарными, и исправить что-то самостоятельно мы не могли. Встал вопрос импортозамещения. В какой-то момент ряд элементов зарубежных биореакторов стало невозможно приобрести, что вызвало проблемы с масштабированием, обслуживанием и эксплуатацией парка биореакторов. Поэтому мы открыли новое направление по автоматизации техпроцессов и начали разработку собственной системы управления биореакторами. Сперва мы пошли простым путем и попробовали собрать аналог зарубежной установки — проанализировали её датчики, преобразователи, контроллеры и SCADA-системы. Для компонентов, которые были нам недоступны, подобрали аналоги. Далее, опираясь на уже известную элементную базу, стали писать собственное программное обеспечение. Но «первый блин вышел комом» — мы потратили на разработку год, а итоговый продукт получился слишком громоздким. Наша установка по размерам напоминала шкаф, весила около 300 кг, а её стоимость не сильно отличалась от решений зарубежных коллег. На этом этапе пришла идея модернизировать всю систему управления — сделать её цифровой и отказаться от коммерческих SCADA-систем, то есть перейти на open source. Система управления биореактором — это программно-аппаратный комплекс, где все процессы взаимосвязаны. Если установлен неподходящий датчик или насос, то недостаток приходится компенсировать на программном уровне, но если «железо» изначально выбрано корректно, то результат выходит хорошим. Поэтому мы вели разработку сразу в двух направлениях — аппаратном и программном. Что с программным решением Раньше для сбора, отображения и архивирования информации о техпроцессах внутри биореактора мы использовали коммерческое SCADA-решение Wonderware. Чтобы получить больше гибкости в вопросах мониторинга, веб-визуализации и обмена данными с другими информационными системами, мы переключились на открытое ПО. Выбор остановили на продукте openSCADA. Разработка первого прототипа заняла у нас примерно три-четыре месяца. Полностью работоспособную систему, которую мы могли стабильно поддерживать и масштабировать, запустили спустя год. Теперь мы можем расширять возможности openSCADA с помощью «самописных» микросервисов на языке Golang. На базе openSCADA мы реализовали веб-интерфейс для управления биореакторами. Он содержит важную информацию о состоянии аппаратных модулей, и из него можно управлять всеми функциями: датчиками, термостатами, миксерами и насосами. Например, настраивать скорость вращения «мешалки» или задавать для неё пороговое значение. Работу начали с того, что заменили элементную базу на российские компоненты. Мы могли продолжить использовать зарубежные контроллеры, но это сказалось бы на скорости поставки и технической поддержке. Плюс нам было бы сложнее договориться с производителями о доработке под наши задачи. Программируемый логический контроллер (ПЛК), а также модули ввода-вывода мы построили на решениях FASTWEL. Все устройства компания поставляет «пустыми» (без «зашитых» алгоритмов) — это удобно, потому что так мы можем самостоятельно запрограммировать любую логику работы. Например, контроллер FASTWEL отвечает за технологический процесс — поддержание температуры, уровня растворенного кислорода и pH в культуральном сосуде биореактора. Алгоритмы открывают клапаны, запускают насосы, и реализуют защитные механизмы при возникновении нештатных ситуаций (могут автоматически остановить насос). Также мы использовали устройство Trim5 фирмы Segnetics. Оно выступает в роли сенсорной панели для отображения ключевых параметров процесса. То, что теперь мы плотнее сотрудничаем с российскими партнерами, не означает, что мы полностью разорвали отношения с иностранными коллегами. Например, совместно с компанией Hamilton был разработан уникальный датчик биомассы для контроля жизнеспособности клеток — ранее на рынке таких продуктов не было. По большей части переход на новую элементную базу прошел гладко. Пожалуй, единственной серьезной проблемой, с которой мы столкнулись, стал кадровый вопрос. Было сложно найти специалистов, способных свободно ориентироваться в проекте, находящемся на стыке двух областей — проектирования автоматизированных систем управления технологическим процессом (АСУ ТП) и веб-разработки. Нам были нужны инженеры, владеющие навыками программирования алгоритмов для ПЛК, и одновременно разбирающиеся в тонкостях frontend- и backend-разработки. Оба направления имеют свою специфику и необходимы при создании систем, управляющих физическими устройствами — будь то биореактор или роботизированная рука на конвейере. К таким системам иные, более строгие, требования по надежности и безопасности. Помимо навыков программирования, нужные нам специалисты должны иметь представление о биотехнологиях. Найти таких людей на рынке труда практически невозможно, поэтому для нас единственно верным выходом стало обучение собственных кадров. Начиная разработку собственного инструмента для управления биореакторами, мы поставили перед собой задачу сделать его цифровым с помощью отечественного аппаратного обеспечения и open source. Эту задачу мы выполнили — вместо массивного шкафа, получили компактную систему весом не более 5 кг. Важный момент состоит в том, что благодаря цифровизации мы получили возможность получать больше данных о технологических процессах. Теперь с датчика мы снимаем не один сигнал, а сотни — включая множество диагностических параметров о состоянии сенсора. Аналогичная картина сложилась с исполнительными механизмами — контроллерами расхода газов, блоком смешения, насосной станцией. Информация о состоянии этих модулей позволяет нам точнее вести техпроцесс и не гадать, что сейчас происходит внутри биореактора. Можно изучить любой параметр или их связку в динамике — например, понять, как менялся расход кислорода за весь процесс культивирования клеток. Поскольку мы построили наше решение на базе открытого программного обеспечения, то смогли самостоятельно реализовать несколько нестандартных функций. Например, мы добавили в SCADA возможность работы с telegram-ботом. Он оповещает персонал о нештатных ситуациях. Сотрудник подписывается на важное для него оборудование и получает уведомления о ходе технологического процесса и авариях. Также у бота можно запросить график с любым ключевым параметром биореактора — без необходимости заходить в веб-терминал. Такую функциональность ни один коммерческий пакет нам предложить не может. Но пожалуй, самым полезным нововведением стала возможность перестраивать одну и ту же инфраструктуру под любые задачи. Мы контролируем все — от конструкторской разработки и проектирования до программного обеспечения, позволяющего интегрироваться с другими системами. В итоге мы можем решать задачи, которые стоят именно перед нашим производством, а не перед каким-то усреднённым, под которые заточены коробочные продукты. Один биореактор можно настроить на подготовку среды для самых разных микроорганизмов благодаря рецептурному управлению. В этом случае мастер-технолог вручную настраивает все шаги алгоритма — запустить насос на час, потом повысить температуру до значения N и так далее. Такой подход позволяет производить широкий спектр препаратов, не изменяя конструкцию биореактора на уровне «железа». Новое решение уже помогло ускорить разработку препаратов и снизить их стоимость — в некоторых случаях почти в три раза. Мы не планируем останавливаться на достигнутом и продолжим развивать систему управления биореакторами. В перспективе мы планируем отказаться от сторонних решений и полностью перейти на собственные разработки. Плюс мы накопили обширный свод данных о процессах и хотим реализовать профильные аналитические решения. Мы уже разработали прототип цифрового двойника датчика растворенного кислорода и уровня кислотности среды для выявления аномалий технологического процесса. Будем внедрять предиктивную аналитику для прогнозирования чрезвычайных ситуаций и работать над адаптивными регуляторами, способными повысить точность управления ключевыми параметрами. Также в планах реализовать цифровую модель биореактора. Она позволит сократить количество экспериментов и эффективнее масштабировать процессы.