Найти в Дзене

Иллюзия бесплатного софта в АСУ ТП: как вендоры продают воздух, зачем нужны USB-ключи и почему останавливаются заводы

Глубокая ночь. Непрерывный процесс производства на крупном химическом предприятии. Внезапно насосы-дозаторы прекращают подачу реагентов, отсечные клапаны с характерным хлопком переходят в закрытое состояние, а на 21-дюймовом экране операторской станции (HMI) исчезает детально прорисованная мнемосхема реакторов. Вместо нее на черном фоне горит лаконичная табличка: "Runtime License Not Found. Evaluation Mode Expired. Execution Stopped". Аварийная остановка линии, многочасовой простой, нарушение технологии кристаллизации и колоссальные финансовые убытки. Причина? Днем системный администратор проводил плановую чистку серверной стойки от пыли и переставил небольшую зеленую флешку - аппаратный ключ защиты SCADA-системы - в соседний USB-порт. Операционная система не успела корректно переинициализировать драйвер ключа, промышленное программное обеспечение не обнаружило лицензию, честно отработало два часа в бесплатном демонстрационном режиме и штатно отключило управление цехом. Вопросы лицензи
Оглавление

Глубокая ночь. Непрерывный процесс производства на крупном химическом предприятии. Внезапно насосы-дозаторы прекращают подачу реагентов, отсечные клапаны с характерным хлопком переходят в закрытое состояние, а на 21-дюймовом экране операторской станции (HMI) исчезает детально прорисованная мнемосхема реакторов. Вместо нее на черном фоне горит лаконичная табличка: "Runtime License Not Found. Evaluation Mode Expired. Execution Stopped".

Аварийная остановка линии, многочасовой простой, нарушение технологии кристаллизации и колоссальные финансовые убытки. Причина? Днем системный администратор проводил плановую чистку серверной стойки от пыли и переставил небольшую зеленую флешку - аппаратный ключ защиты SCADA-системы - в соседний USB-порт. Операционная система не успела корректно переинициализировать драйвер ключа, промышленное программное обеспечение не обнаружило лицензию, честно отработало два часа в бесплатном демонстрационном режиме и штатно отключило управление цехом.

Вопросы лицензирования программного обеспечения в сфере промышленной автоматизации (Operational Technology, OT) кардинально отличаются от привычного мира IT. В классическом программировании разработчик скачивает бесплатный редактор кода, пишет скрипт на Python и разворачивает его на бесплатном сервере с Linux. В суровых реалиях АСУ ТП вендоры монетизируют каждый шаг. Требуется заплатить за право написать код, заплатить за право скомпилировать этот код, а затем еще раз заплатить аппаратному контроллеру за право этот код исполнять.

Разберем механизмы лицензионного контроля на производстве. Как именно корпорации считают переменные, почему облачные подписки категорически не приживаются на реальных заводах, в чем разница между программным и аппаратным ключом защиты, и как грамотный выбор аппаратной платформы позволяет избежать паралича производства при выходе сервера из строя.

Анатомия жадности: Engineering против Runtime

Для специалиста, пришедшего в автоматизацию из веб-разработки, главным концептуальным шоком становится жесткое разделение программного обеспечения на среду разработки (Engineering) и среду исполнения (Runtime). Это две совершенно разные статьи бюджета.

Engineering License: налог на право писать код

Для создания управляющей логики промышленного контроллера требуется специализированная среда разработки (IDE), соответствующая стандарту IEC 61131-3. Интегратор обязан приобрести лицензию на эту среду. Зачастую стоимость такой лицензии сопоставима со стоимостью мощного сервера. Данная лицензия жестко привязывается к рабочему месту - ноутбуку инженера-проектировщика. На строительной площадке или в цеху ноутбук находится в зоне постоянного риска: падение с лесов, попадание влаги, воздействие сильных электромагнитных полей или случайное подключение к фазному напряжению вместо измерительной цепи. Если оборудование выходит из строя, интегратор теряет не только дорогостоящее "железо", но и лицензию. Процесс восстановления легитимного ключа через официальную техническую поддержку может затянуться на недели, требуя предоставления актов дефектовки и официальных писем.

Для минимизации таких рисков в крупных инжиниринговых компаниях применяется механизм плавающих сетевых лицензий (Floating Network Licenses). На корпоративном сервере предприятия разворачивается менеджер лицензий (License Manager). Специалист на объекте подключается к корпоративной сети через зашифрованный VPN-канал, временно "забирает" лицензию на свой портативный компьютер и осуществляет пусконаладку. Звучит высокотехнологично, но на практике в подвальном помещении насосной станции или внутри железобетонного бункера отсутствует не только Wi-Fi, но и базовая сотовая связь. Как только VPN-туннель разрывается, среда разработки блокирует возможность сохранения проекта или компиляции кода, превращая дорогой ноутбук в бесполезный кусок пластика.

Runtime License: налог на право работать

После успешного написания и отладки программного кода его необходимо загрузить в программируемый логический контроллер (ПЛК). И на этом этапе возникает второе препятствие: контроллер - это просто текстолит, процессор и микросхемы памяти. Чтобы это "железо" начало циклически выполнять алгоритмы, внутри него должно функционировать ядро исполнения (Runtime). Лицензия на ядро приобретается отдельно.

Функционал ядра исполнения часто дробится на модули. Возникла потребность передавать данные на верхний уровень по защищенному протоколу OPC UA? Необходима покупка дополнительного лицензионного пакета. Требуется поднять локальный веб-сервер для отображения графиков непосредственно с ПЛК? Требуется еще одна активация.

Этот аспект является критически важным при проектировании архитектуры АСУ ТП. Если проект базируется на приобретении "голого" промышленного компьютера (IPC) от неизвестного производителя, инженеру придется самостоятельно приобретать лицензию SoftPLC (программного ПЛК), вручную привязывать ее к MAC-адресу сетевой карты устройства и надеяться, что эта сетевая карта никогда не выйдет из строя.

Современный подход заключается в использовании аппаратных платформ, где стоимость среды исполнения уже интегрирована в цену оборудования. Показательным примером служит архитектура оборудования СТАБУР (разработка отечественной компании ООО "ПО Промсвязь"). При использовании классического ПЛК СТАБУР или панели оператора ПО СТАБУР, внутри устройства "из коробки" установлена и легально активирована лицензия среды исполнения - CODESYS 3.5.16.40 либо MasterSCADA 4D 1.3.9. Инженеру не требуется генерировать файлы запросов, отправлять их на серверы вендора, получать файлы активации (License Tickets) и привязывать их к конкретному серийному номеру. Устройство извлекается из заводской упаковки, в него загружается пользовательский проект, и система начинает функционировать. Отсутствие необходимости управлять зоопарком разрозненных лицензий на объекте радикально снижает вероятность простоев.

SCADA-системы: битва тегов и объектов

Лицензирование систем диспетчерского контроля и сбора данных (SCADA) представляет собой отдельный, крайне запутанный сегмент. Исторически на рынке сформировались два кардинально разных подхода к тарификации: теговый и объектный.

Теговая тарификация: архитектура костылей

Тег (Tag) в понимании SCADA-системы - это одна переменная ввода-вывода. Фактически, это один регистр данных, получаемый по протоколу Modbus RTU или TCP. Масштаб проблемы становится понятен при подсчете переменных на типовом механизме. Возьмем обычную управляемую задвижку. Команда оператора на открытие - это первый тег. Команда на закрытие - второй тег. Сигнал от концевого выключателя "Открыто" - третий. Сигнал "Закрыто" - четвертый. Сигнал аварии муфты или теплового реле - пятый. Итого, один примитивный исполнительный механизм потребляет 5 тегов.

Классические SCADA-пакеты продаются с жестким лимитом переменных: 100, 500, 1000, 5000, 10000 или Unlimited (безлимит). Возникает патовая ситуация. Предприятие приобретает лицензию на 500 тегов. В процессе модернизации технологической схемы добавляется пара новых резервуаров и насосов. Количество переменных достигает 505. При запуске система обнаруживает превышение лимита и отказывается переходить в режим исполнения. Заказчику выставляется счет на апгрейд лицензии до следующей ступени в 1000 тегов, стоимость которого может составлять сотни тысяч рублей.

Чтобы избежать дополнительных затрат, инженеры-программисты начинают искусственно оптимизировать проекты, изобретая программные "костыли". Самый распространенный метод - упаковка данных. Внутри контроллера 16 различных дискретных аварийных сигналов (булевых переменных типа TRUE/FALSE) математически упаковываются в один 16-битный регистр (целочисленный тип WORD). Этот регистр передается в SCADA-систему по сети как ОДИН тег. Уже на верхнем уровне, внутри сервера визуализации, пишутся скрипты, которые распаковывают это число обратно в 16 битовых флагов для отображения на экране. Экономия на лицензии достигается, однако программный код превращается в нечитаемый монолит. В случае увольнения автора проекта, следующий инженер потратит недели на расшифровку подобной битовой математики.

Объектное лицензирование: свобода проектирования

Современные платформы, особенно в секторе отечественного программного обеспечения (такие как MasterSCADA 4D), внедряют объектно-ориентированную модель лицензирования. Ограничения накладываются не на количество проводов и битов (тегов), а на количество логических узлов, серверов архивирования или одновременно работающих клиентских станций.

Проект строится вокруг физических сущностей. Инженер создает объект "Насосная станция". К этому объекту можно привязать абсолютно любое количество внутренних переменных, диагностических регистров, скриптов и графических окон. Лицензия не ограничивает программиста в детализации процесса. Этот подход заставляет инженера фокусироваться на прозрачности архитектуры, читаемости кода и глубине диагностики, а не на математических трюках по обману лицензионного счетчика.

Физика защиты: Аппаратные ключи против Программных

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

1. Аппаратный ключ (USB Dongle, HASP, Guardant) Метод представляет собой физическое USB-устройство, внутри которого распаян криптографический сопроцессор. SCADA-система или SoftPLC с определенной периодичностью (например, раз в 10 секунд) отправляет зашифрованный запрос на USB-порт. Если ключ отвечает правильным алгоритмом - работа продолжается. Если ключ извлечен - система инициирует процедуру безопасной остановки. Преимущества: Абсолютная мобильность лицензии. Если промышленный сервер выходит из строя (например, сгорает материнская плата из-за скачка напряжения), восстановление занимает минимальное время. Извлекается жесткий диск, устанавливается в резервный системный блок, туда же переносится USB-ключ - процесс управления восстанавливается без взаимодействия с техподдержкой разработчика ПО. Недостатки: Промышленная среда агрессивна. Системные блоки часто устанавливаются в запыленных операторских комнатах. Торчащий из корпуса USB-ключ легко сломать физически (задев стулом или инвентарем для уборки). Контакты разъемов неизбежно окисляются от присутствия в воздухе химических испарений. Кроме того, ключ может быть банально украден недобросовестным персоналом. Процедура восстановления поврежденного или утерянного аппаратного ключа - это тяжелый бюрократический процесс, требующий официальных расследований, составления актов и длительного ожидания доставки новой физической "флешки" от вендора.

2. Программный ключ (SoftKey) Полный отказ от физических носителей. Лицензия генерируется на основе цифрового "слепка" аппаратной части компьютера. Специальная утилита считывает серийный номер центрального процессора, MAC-адрес сетевого адаптера и серийный номер тома жесткого диска. Полученный массив данных хешируется, отправляется на сервер вендора, а в ответ приходит уникальный файл активации, привязанный исключительно к этому "железу". Преимущества: Отсутствие физического объекта, который можно сломать, потерять или украсть. Идеально для закрытых необслуживаемых шкафов управления. Недостатки: Любой ремонт или модернизация оборудования превращается в критический риск. Если на сервере сгорает сетевая карта, и ее заменяют на новую - MAC-адрес меняется. Изменяется хеш-сумма компьютера. Программное обеспечение мгновенно классифицирует этот компьютер как сторонний, расценивает ситуацию как попытку пиратского копирования и блокирует работу. Инженеру необходимо экстренно связываться с технической поддержкой (которая может находиться в другом часовом поясе), доказывать факт ремонта оборудования и запрашивать процедуру повторной активации (Re-hosting). Каждая минута такого простоя обходится производству в огромные суммы.

Для критической инфраструктуры большинство опытных системных интеграторов по-прежнему отдают предпочтение аппаратным ключам, применяя методы скрытого монтажа: ключи устанавливаются внутрь корпуса промышленного ПК на специальные внутренние разъемы материнской платы (Pin Headers), что исключает их случайное повреждение.

SaaS и облачные подписки: угроза кибербезопасности

Корпоративный IT-сегмент давно и успешно функционирует по модели SaaS (Software as a Service - ПО как услуга). Компании не приобретают программные продукты в собственность (CAPEX), а оплачивают ежемесячную аренду (OPEX). Вендоры промышленного программного обеспечения активно пытаются внедрить эту финансовую модель на производственные площадки, аргументируя это "бесшовными обновлениями" и "снижением порога входа".

С точки зрения инженера эксплуатации, подписочная модель для систем АСУ ТП недопустима по ряду фундаментальных причин. Во-первых, жизненный цикл промышленной установки (будь то насосная станция или прокатный стан) составляет от 10 до 20 лет. Система управления обязана функционировать автономно и непрерывно на протяжении всего этого срока, даже если компания, разработавшая SCADA-систему, прекратит свое существование или изменит политику лицензирования. Во-вторых, существует жесткий регламент кибербезопасности. Классическая промышленная сеть (контур OT) обязана быть физически изолирована от глобальной сети Интернет (принцип Air Gap). Прямой доступ контроллеров и диспетчерских серверов во внешнюю среду строго запрещен для исключения атак вирусов-шифровальщиков и целевых вторжений. Возникает неразрешимое противоречие: каким образом сервер лицензирования вендора должен проверять статус ежемесячной подписки, если сервер АСУ ТП не имеет выхода в интернет? Вывод критического узла в онлайн ради проверки лицензии - это прямое нарушение стандартов информационной безопасности.

По этим причинам в промышленной автоматизации доминирует и будет доминировать модель Perpetual License (постоянная бессрочная лицензия). Предприятие осуществляет разовый платеж, получает файл активации, проводит процедуру валидации в оффлайн-режиме, физически отключает кабель внешней сети и эксплуатирует систему десятилетиями без оглядки на статус биллинговых систем вендора.

Санкционная реальность и эпоха импортозамещения

Глобальные геополитические изменения последних лет нанесли колоссальный удар по архитектуре лицензирования в отечественной промышленности. На протяжении десятилетий многие интеграторы проектировали системы исключительно на базе европейских и американских программных продуктов (Siemens TIA Portal, AVEVA Wonderware, Rockwell Studio 5000).

С уходом иностранных корпораций предприятия столкнулись с беспрецедентной ситуацией: зарубежные серверы лицензирования были заблокированы по географическому признаку. Заводы, официально инвестировавшие десятки миллионов рублей в легальное программное обеспечение, оказались лишены возможности им управлять. Стало технически невозможно перенести легально приобретенную SoftKey-лицензию на новый сервер в случае аппаратной поломки старого. Полностью прекратился доступ к обновлениям безопасности (Security Patches), закрывающим критические уязвимости.

В качестве временной меры на рынке произошел всплеск использования теневых схем: применение виртуальных машин с "замороженным" системным временем, использование программ-эмуляторов аппаратных ключей и нелегальных патчей. Однако для объектов критической информационной инфраструктуры (КИИ) - в энергетике, нефтегазовом секторе, химической промышленности - использование несертифицированного ПО с измененным исходным кодом категорически запрещено из-за высоких рисков наличия закладок и бэкдоров.

Данная ситуация стала мощнейшим катализатором процесса импортозамещения. Выяснилось, что отечественные среды разработки (например, MasterSCADA 4D) обладают необходимым функционалом, при этом серверы активации физически расположены в юрисдикции РФ, а техническая поддержка осуществляется в локальных часовых поясах без языкового барьера.

Ключевым трендом стало применение программно-аппаратных комплексов. Интеграторы стремятся уйти от схемы "железо покупаем у одного поставщика, лицензии у другого". Гораздо надежнее применять готовые узлы. Например, вместо сложной настройки промышленного ПК с отдельной SCADA-лицензией, на дверцу шкафа устанавливается WEB-ПО СТАБУР (веб-панель оператора), работающая в паре с центральным контроллером. В такой архитектуре полностью отсутствует проблема лицензирования клиентских рабочих мест (Client Access License). Веб-панель просто загружает готовый HTML5-интерфейс напрямую из веб-сервера контроллера по локальной сети. Количество подключаемых панелей ограничено исключительно вычислительной мощностью процессора ПЛК, а не искусственными финансовыми барьерами разработчика ПО.

Open Source в промышленности: скрытая цена бесплатного кода

Среди специалистов, мигрирующих в АСУ ТП из сферы информационных технологий, популярно убеждение, что от коммерческих лицензий можно отказаться полностью, переведя автоматизацию на рельсы Open Source (открытого исходного кода). Распространенный тезис: "Нет смысла платить за дорогую SCADA, если можно развернуть бесплатную базу данных InfluxDB, отрисовать дашборды в Grafana, а логику управления написать в среде Node-RED".

Технически такая реализация возможна. Более того, для решения подобных интеграционных задач выпускаются специализированные аппаратные шлюзы. В качестве примера можно привести ПК СТАБУР - промышленные контроллеры, поставляемые с "чистой" операционной системой Linux (Ubuntu). Это надежная аппаратная платформа, имеющая гальванически изолированные промышленные интерфейсы и крепление на DIN-рейку, на которой инженер волен разворачивать любое бесплатное программное обеспечение.

Однако использование Open Source в нижнем и среднем уровне АСУ ТП таит в себе колоссальные риски, связанные с совокупной стоимостью владения (Total Cost of Ownership - TCO) и безопасностью процесса.

  • Отсутствие детерминированности. Классический ПЛК с установленной средой CODESYS гарантирует жесткий цикл выполнения задачи (Hard Real-Time). Если задано время цикла 5 миллисекунд, код выполнится ровно за 5 миллисекунд. Операционная система Linux (без применения узкоспециализированных патчей типа PREEMPT_RT) и платформы вроде Node-RED не являются системами жесткого реального времени. В момент пиковой загрузки процессора планировщик ОС может поставить выполнение скрипта на паузу. На конвейере эти потерянные миллисекунды приведут к тому, что механизм не остановится в заданной координате, вызвав механическое столкновение.
  • Проблема кадровой зависимости. Коммерческие среды (МЭК 61131-3) стандартизированы. Любой квалифицированный инженер сможет открыть проект на языке ST (Structured Text), написанный другим специалистом пять лет назад, и разобраться в логике блокировок. Проект, собранный на бесплатных Python-скриптах и узловых графах одним разработчиком - это черный ящик. После увольнения создателя такой системы предприятие становится заложником нечитаемого кода.
  • Сертификация и надзор. Внедрение систем автоматизации на опасных производственных объектах (ОПО) требует сдачи документации в органы Ростехнадзора. Доказать безопасность работы котельной, автоматика которой функционирует на базе бесплатных библиотек, скачанных с GitHub и не имеющих соответствующих сертификатов соответствия, юридически невозможно.

Резюмируя: программное обеспечение с открытым исходным кодом (MQTT-брокеры, базы данных временных рядов, шлюзы промышленного интернета вещей IIoT) великолепно справляется с задачами верхнего уровня - сбором аналитики и телеметрии. Но для фундаментального уровня управления задвижками, клапанами и аварийными защитами коммерческая, сертифицированная среда исполнения является обязательным условием безопасности оборудования и персонала.

Матрица моделей лицензирования

Для структурирования информации и помощи в проектировании, основные схемы лицензирования сведены в аналитическую таблицу.

-2

Коротко о главном

Выжимка базовых концепций для принятия грамотных архитектурных решений:

В чем принципиальная разница между лицензией на разработку (Engineering) и лицензией на исполнение (Runtime)? Engineering License приобретается для специалиста-программиста, позволяя ему легально использовать интерфейс среды разработки (IDE), писать и компилировать код на персональном компьютере. Runtime License - это лицензия на само программное ядро, которое инсталлируется непосредственно на ПЛК или промышленный сервер. Именно оно позволяет загруженному коду циклически выполняться и управлять механизмами в режиме 24/7.

Как минимизировать время простоя завода в случае выхода из строя сервера со SCADA-системой? Наиболее быстрый вариант восстановления обеспечивает использование аппаратных ключей защиты (USB-Dongle). При поломке материнской платы достаточно переставить жесткий диск с файлами проекта и сам USB-ключ в идентичный резервный системный блок. В случае с программными лицензиями (SoftKey) потребуется обязательное обращение в службу технической поддержки разработчика ПО для проведения процедуры перерегистрации (Re-hosting).

Допустимо ли применение бесплатных Open Source решений для управления производством? Допустимо, но область их применения должна быть строго ограничена задачами некритичного мониторинга, сбора телеметрии и аналитики на верхнем уровне ИТ-инфраструктуры. Для управления критически важными механизмами, системами противоаварийной защиты и объектами, поднадзорными Ростехнадзору, необходимо применять исключительно сертифицированное коммерческое программное обеспечение реального времени, имеющее гарантийную техническую поддержку вендора.

Какой подход позволяет избежать бюрократических проблем с лицензированием ядра исполнения на контроллерах? Самый прагматичный путь для системного интегратора - проектировать системы на базе аппаратных платформ, в стоимость которых уже "зашита" лицензия среды исполнения. Применение отечественных ПЛК со встроенной и активированной средой (например, CODESYS или MasterSCADA 4D) снимает с инженера необходимость ручной генерации ключей, привязки их к MAC-адресам и полностью защищает от санкционных рисков отключения серверов активации.

Заключение

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

Выбирая аппаратную базу, необходимо анализировать не только тактовую частоту процессора, но и архитектуру лицензионных ограничений, скрытую "под капотом". Применение отечественных программно-аппаратных платформ, где среда исполнения является неотъемлемой частью оборудования, скрытый монтаж аппаратных ключей защиты внутри корпусов серверов и категорический отказ от облачных подписок для изолированных технологических сетей - это те инженерные стандарты, которые гарантируют стабильность. Безупречно написанный алгоритм управления теряет всякий смысл, если система способна остановить производство из-за формального отсутствия цифрового ключа активации.

Автор: Дмитрий Стабур, ПЛК программист,инженер АСУ ТП