Программный инструментарий для построения систем автоматизированного управления в среде отечественной операционной системы

Бесплатный доступ

Описывается архитектура, схемы взаимодействия компонент и инструментальное ядро SCADA-системы на платформе отечественной защищенной операционной системы реального времени „Нейтрино КПДА.10964-01". Продукт является результатом развития SCADA-системы „Блакарт", разработанной в ИВТ СО РАН и работавшей в среде ОС QNX 4.25. Указанная SCADA-система показала высокие эксплуатационные качества в десятках реализованных систем управления в различных отраслях промышленности, как правило, на опасных производствах. Использование сертифицированной отечественной операционной системы является нужным шагом в направлении киберустойчивости.

Импортозамещение программного обеспечения, нейтрино

Короткий адрес: https://sciup.org/143167050

IDR: 143167050

Текст научной статьи Программный инструментарий для построения систем автоматизированного управления в среде отечественной операционной системы

Постановка задачи. Безопасность современного производства не в последнюю очередь обеспечивается надежностью применяемой автоматизированной системы управления технологическими процессами (АСУТП). Использование хороших архитектурных решений и разумно выбранной операционной среды позволяет строить АСУТП, отвечающие самым высоким требованиям по надежности. Но в последнее время все большую остроту приобретает вопрос устойчивости информационных систем к кибервоздействиям, как случайным, так и намеренным [1]. Намеренные воздействия могут быть двух типов: чисто внешние, проникающие в систему по используемым каналам связи, и внутренние, через ”3акладки“ в программно-аппаратных компонентах. Последствия несанкционированного вмешательства в деятельность АСУТП посредством кибервоздействий могут быть очень разрушительными, причем в роли злоумышленника может оказаться как физическое лицо, так и специально созданная структура недружественного государства [2].

По данным обзора [3], наиболее часто используемые в России зарубежные SCADA-системы ,,STEP7“, ”WinCC“, ”InTouch“, ,,Genesys“, помимо привлекательных функциональных характеристик, обладают и набором выявленных уязвимостей. То же самое относится и к широко используемым в России зарубежным операционным системам (ОС), например, операционным системам семейства „Windows Microsoft“.

С учетом этих обстоятельств единственно разумным решением является построение отечественной SCADA-системы на платформе отечественной же операционной системы, прошедшей сертификацию надежности. В качестве такой операционной системы целесообразно использовать Защищенную сетевую операционную систему реального времени ”Нейтрино“ КПДА.10964-01, которую развивает и сопровождает отечественная компания

ООО „СВД „Встраиваемые системы“, город С.-Петербург [4]. Использование отечественной ОС отвечает задаче импортозамещения программного обеспечения, актуальность которой возрастает ввиду геополитических рисков и нарастающего давления экономических санкций со стороны недружественных государств.

Операционная система „Нейтрино" удовлетворяет требованиям к средствам вычислительной техники по 3 классу защиты информации от несанкционированного доступа (система мандатной защиты), 2 уровню контроля отсутствия недекларируемых возможностей, что позволяет использовать указанную операционную систему в информационных и управляющих системах класса защищенности до 1Б включительно. В число ключевых особенностей этой операционной системы входит широкий набор наиболее передовых современных компьютерных технологий, обеспечивающих необходимое качество продукта, в том числе и возможность организации вычислительных процессов в многоядерной среде.

В качестве исходной SCADA-системы была взята отечественная SCADA-система реального времени „Блакарт“, работающая в среде операционной системы реального времени „QNX 4.25“. Указанная SCADA-система разработана в ИВТ СО РАН и реализована на ряде горно-шахтных предприятий Кузбасса. Практика многолетней эксплуатации SCADA-системы показала ее исключительную надежность [5, 6]. Созданные на основе SCADA-системы „Блакарт“ автоматизированные системы управления охватывают управлением разнородные технологические процессы: наземное и подземное энергоснабжение, контроль перемещения персонала в шахтах, управление протяженными цепочками ленточных конвейеров, водоотлив и т. и. Были получены сертификат соответствия и разрешение на применение на предприятиях горнодобывающей промышленности.

Архитектура SCADA-системы. Вновь разработанная SCADA-система реализована как распределенная вычислительная технологическая сеть, которая одновременно является и локальной вычислительной сетью на основе сетевого протокола „Qnet“ операционной системы „ Нейтрино".

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

Подсистема верхнего уровня, запущенная на каком-либо узле технологической сети, порождает автоматизированное рабочее место (АРМ) оператора, выполняемое в графической оболочке Photon. Поскольку операционная система „Нейтрино" является сетевой, то совершенно безразлично, на каких узлах технологической сети запущено программное обеспечение того или иного уровня.

Общая схема SCADA-системы представляет собой сетевую архитектуру. Она изображена на рис. 1 и отображает схему взаимодействия всех основных компонент с указанием направлений межзадачных потоков данных. Стрелками темного цвета указаны пути передачи сигналов управления, стрелкам светлого цвета соответствуют направления передачи сигналов состояния технологических объектов.

В подсистему верхнего уровня входят следующие компоненты:

  • —    графический интерфейса оператора „ИФ“;

  • —    управление базой данных „БД“;

Рис. 1. Общая схема. SCADA-системы

  • —    задача ,,IPserver“ обмена данными со смежными АСУТП, работающими под управлением других операционных систем;

  • —    задача передачи команд управления в подсистему нижнего уровня ,,ОПУ“;

  • —    задача приема данных из подсистемы нижнего уровня ,,ПКД“;

  • —    задача передачи данных в подсистемы верхнего уровня на других узлах технологической сети „ОПС“:

— задача приема данных из подсистем верхнего уровня на других узлах технологической сети ”ППС“.

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

Основное назначение задачи управления базой данных „БД“ — накопление информации о состоянии технологического оборудования, а также команд управления, протоко-

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

База данных представляет собой набор файлов, состоящих из записей событий в их хронологическом порядке, т. е. упорядоченных по времени их поступления. Каждый файл содержит записи событий, произошедших за одни сутки, начиная с 0 часов. Файл записей за текущие сутки называется оперативным, остальные называются архивными файлами. Имена файлов базы данных образованы из префиксов ”SPIT“ для дискретных сигналов, ”iPIT“ для аналоговых сигналов. ”СРГТ“ для сводок энергоснабжения ii ”iiiPIT“ для сигналов системы наблюдения и оповещения персонала и шестизначного порядкового номера файла. В конце каждых суток текущий оперативный файл переходит в архивный файл с тем же именем и создается новый оперативный файл с порядковым номером, на единицу большим. Далее проверяется общее количество архивных файлов, и если оно превышает заданное, то файл с минимальным существующим номером удаляется.

Компоненты ,,ОПС“, ,,ОПУ“, ,,ПКД“, ,,ППС“ подсистемы верхнего уровня являются вспомогательными демпферными задачами. Основное назначение демпферных задач — предотвращение блокировки интерфейса оператора и базы данных по операциям приема/передачи данных и распараллеливание потоков данных на другие запущенные АРМ операторов. Механизм распараллеливания обеспечивает задача ”ОПС“, которая для каждого АРМ оператора запускается столько раз, сколько имеется дополнительных узлов АРМ оператора. Каждая запущенная задача ,,ОПС“ передает сообщения протоколирования действий оператора на задачу ”ППС“ другого заданного узла технологической сети. Количество подключаемых АРМ оператора ограничено лишь максимально допустимым количеством узлов в технологической сети.

Клиентские приложения АРМ оператора могут быть доступны и из других операционных систем, например, из „Windows NT/2000/XP/7/8“ с помощью утилиты ,,Phindows“ удаленного доступа, при этом для каждого пользователя в указанных операционных системах S С ADA-система обеспечивает независимый раздельный доступ к клавиатуре и ручному манипулятору (мыши) для управления АРМ оператора.

Подсистема нижнего уровня образована драйверами — программами сопряжения с датчиками состояния и исполнительными реле управления технологическими объектами. Сюда же входят и драйверы интерфейса со смежными АСУТП — подсистемами других производителей, а также вспомогательные демпферные задачи (,,ПрУ“, ,,ППУ“, ”ОПД“). Главное назначение демпферных задач — предотвращение блокировки драйверов по операциям приема/передачи данных и распараллеливание потоков данных на различные узлы подсистемы верхнего уровня. Механизм распараллеливания обеспечивает задача ,,ОПД“, которая для каждого драйвера запускается столько раз, сколько имеется узлов АРМ оператора приема данных, причем каждая задача ,,ОПД“ передает сигналы состояния технологического оборудования на задачу Д!КД“ одного заданного узла технологической сети.

Кроме рассмотренных выше задач, в состав программного обеспечения SCADA-системы включены также задачи синхронизации баз данных, диагностики состояния всех вычислительных машин технологической сети, диагностики состояния программного обеспечения на всех узлах той же технологической сети и диагностики состояния непосредственно самой локальной вычислительной сети. Вся указанная диагностика выводится на экраны мониторов всех АРМ оператора и записывается во все базы данных.

В процессе перевода SCADA-системы ,,Блакарт“ на платформу операционной системы ,,Нейтрино“ архитектура SCADA-системы не изменились. Изменился только программный код, в частности, все обращения к различным системным библиотекам подпрограмм сделаны в POSIX-совместимом формате. Сохранение структуры, основных свойств и функциональных возможностей SCADA-системы в процессе ее перевода в среду операционной системы ”Нейтрино“ позволило сохранить все достоинства прежнего продукта, подтвержденные многолетней работой в реализованных системах управления.

Организация обмена данными в SCADA-системе. При построении вычислительной технологической сети SCADA-системы необходимо строго следовать следующему правилу: каждый компьютер, который является узлом технологической сети SCADA-системы, должен иметь строго фиксированное имя в формате ,,NodeXXX“, где десятичное число ”ХХХ“ является номером узла.

Обмен данными между компонентами одной подсистемы на одном и том же узле технологической сети осуществляется через разделяемую оперативную память с использованием кольцевых буферов данных. Обмен данными между компонентами подсистем на различных узлах технологической сети осуществляется через сетевые POSIX-совместимые вызовы ”READ/WRITE“. Для организации такого обмена каждая компонента, которая может принимать данные, оформляется в пространстве путевых имен технологической сети как администратор ресурсов со строго фиксированным именем, присваиваемым компоненте автоматически после ее запуска.

Для компонент подсистемы верхнего уровня это фиксированное имя имеет вид ”decodXXX“, соответственно для компонент подсистемы нижнего уровня это имя имеет вид ”TecvXXX“, где выражение ,,ХХХ“ является десятичным номером узла, на котором запущена программная компонента. Следовательно, для организации обмена данными между компонентами SCADA-системы достаточно указать списки узлов технологической сети приема данных, как в командной строке запуска компонент подсистемы нижнего уровня, так и в панелях настройки АРМ операторов подсистемы верхнего уровня.

В SCADA-системе не используется контроль состояния технологических объектов методом опроса ” сверху“. Инициаторами передачи всегда выступают подсистемы нижнего уровня, которые передают данные только в случае изменения текущего состояния контролируемого оборудования. Дополнительно, для обеспечения надежного контроля текущего состояния контролируемого оборудования, подсистемы нижнего уровня с некоторым, заранее заданным интервалом времени передают также полную совокупность всех сигналов состояния технологических объектов.

Поскольку сетевой протокол ,,Qnet“ операционной системы ,,Нейтрино“ обеспечивает надежную и неискаженную передачу пакетов данных, то в SCADA-системе не используются пакеты подтверждения приема данных. Исключение делается только для команд управления, которые возвращают пакет с кодом результата выполнения команды управления.

Используемые в SCADA-системе системы кодирования сигналов различны для подсистемы нижнего уровня и подсистемы верхнего уровня. Кодировка сигналов в подсистеме нижнего уровня отличается большей компактностью, что позволяет существенно улучшить сетевой трафик, т. е. увеличить скорость доставки пакетов данных в подсистему верхнего уровня. Кодировка сигналов в подсистеме верхнего уровня не является компактной, но зато очень хорошо приспособлена под объектно-ориентированное программирование, благодаря чему удается существенно уменьшить временные издержки на обработку поступающих данных. Для обмена данными между подсистемами верхнего и нижнего уровней используется кодировка подсистемы нижнего уровня. Перекодирование сигналов в кодировку подсистемы верхнего уровня осуществляет программа подсистемы верхнего уровня ”ПКД“.

Методы разработки конкретного проекта АСУТП. Разработка или модификация конкретного проекта АСУТП сводится к трем основным операциям:

  • —    построение графического интерфейса оператора с помощью системного построителя приложений (графического редактора) „Application Builder Photon“;

  • —    составление некоторого набора текстовых конфигурационных файлов подсистемы верхнего уровня;

  • —    составление соответствующего набора текстовых конфигурационных файлов подсистемы нижнего уровня.

Задача интерфейса оператора „ИФ“ — единственная задача подсистемы верхнего уровня, которая подлежит модификации и настройке при разработке конкретного проекта АСУТП. Графический интерфейс оператора представляет собой набор видеокадров, каждый из которых является мнемосхемой некоторой части технологического оборудования или всего технологического оборудования (главный видеокадр). Графический интерфейс оператора также включает в себя набор панелей состояния и управления технологическим оборудованием.

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

Система управления базой данных (СУБД) также реализована в виде некоторого подмножества видеокадров и панелей графического интерфейса оператора, но эти графические объекты при разработке конкретного проекта АСУТП модификации не подлежат.

Все графические объекты в построителе приложений „Application Builder Photon“, а к ним относятся как видеокадры и панели, так и совокупность графических знаков на видеокадрах и панелях, имеют имена (теги) и определенные наборы свойств, которые можно увидеть в инспекторе объектов построителя приложений. Графические знаки на видеокадрах и панелях делятся на две категории: знаки, применяемые для оформления, и знаки, которые используются для отображения состояния технологического оборудования (активные графические знаки). Знаки, используемые для оформления, являются безымянными, т. е. имеют некоторый стандартный для построителя приложений тег. Тег активного графического знака можно выбирать совершенно произвольно, но если тег графического знака совпадает с кодом сигнала в кодировке подсистемы верхнего уровня, состояние которого он отображает, то для этого знака предоставляется дополнительная информация, например, график суточного изменения сигнала.

Во вновь разработанной SCADA-системе вся совокупность сигналов состояния и управления разбивается по технологическим объектам, каждый из которых обладает определенным набором сигналов состояния технологического оборудования и управления техно- логическим оборудованием. В качестве таких технологических объектов могут выступать, например, различные двигатели привода, конвейеры, насосы водоотлива, ячейки энергоснабжения и т. и.

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

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

Сетевая конфигурация технологической сети и распределение программного обеспечения АСУТП по узлам задаются соответствующими текстовыми конфигурационными файлами. Списки и форматы различных сводок состояния объектов технологического оборудования также определяются своими текстовыми конфигурационными файлами сводок.

Основные особенности SCADA-системы. Все АРМ оператора являются абсолютно равноправными по операциям отображения состояния контролируемого технологического оборудования и управления технологическим оборудованием. Каждый АРМ оператора обладает собственной локальной архивной базой данных, синхронизированной с прочими базами данных. Отсутствие в технологической сети выделенного сервера данных (сервера приложений) является первой главной особенностью программного обеспечения SCADA-системы. Подобный подход реализует многократное горячее резервирование в системах автоматизированного управления и, тем самым, во-первых, существенно увеличивает надежность автоматизации управления технологическими процессами, а во-вторых, существенно упрощает процесс модификации и настройки программного обеспечения.

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

Настройка программного обеспечения SCADA-системы на конкретный состав и конфигурацию автоматизируемого технологического оборудования, а также методы отображения состояния технологического оборудования на графическом интерфейсе оператора задаются текстовыми конфигурационными файлами подсистем верхнего и нижнего уровней. Непосредственно сам графический интерфейс оператора разрабатывается с помощью системного построителя приложений „Application Builder Fhoton“, что предполагает передачу заказчикам не только исполняемых модулей SCADA-системы подсистемы нижне- го уровня, но и передачу по крайней мере всей совокупности объектных модулей программного обеспечения подсистемы верхнего уровня. Однажды установленное программное обеспечение SCADA-системы может быть далее свободно скопировано на любой носитель информации. Таким образом, программное обеспечение SCADA-системы является открытым. И это обстоятельство является третьей основной особенностью программного обеспечения SCADA-системы, и это же обстоятельство существенно усложняет проблему защиты программного обеспечения от несанкционированного использования программноаппаратными средствами. Для решения указанной проблемы предпочтительнее пользоваться правовыми методами, как это принято в большинстве стран Запада.

Заключение. Защита технологической сети АСУТП от кибератак достигается, как обычно, жестким контролем доступа операторов к управлению по категориям, блокированием всех функций обращения к операционной системе со стороны операторов, а также свойствами самой операционной системы „Нейтрино“ и физической развязкой технологической и административной вычислительных сетей предприятий. При необходимости доступ из технологической сети в административную сеть осуществляется только через дополнительные сетевые адаптеры с контролем используемых сервисов стека протоколов TCP/IP. Возможные уязвимости программного обеспечения SCADA-системы могут быть достаточно легко найдены и нейтрализованы, поскольку программный код SCADA-системы является открытым.

Список литературы Программный инструментарий для построения систем автоматизированного управления в среде отечественной операционной системы

  • Голушко С. К., Пищик Б. Н., Чейдо Г. П., Шакиров С. Р. Импортозамещение в области аппаратно-программных комплексов как базис для создания высоконадежных АСУ ТП//Тезисы Международной конференции „Актуальные проблемы вычислительной и прикладной математики -2015". АМСА-2015, Новосибирск, 19-23 октября 2015. С. 113.
  • Макарчев В., Михайленко Ю., Подервянский Р. Осторожно: вирусы!//Военно-политическое обозрение. 2011. : http://www.belvpo.com/ru/1159.html.
  • Грицай Г., Тиморин А., Гольцев Ю., Ильин Р., Гордейчик О, Карпин А. Безопасность промышленных систем в цифрах v2.1. : http://www.ptsecurity.ru/download/SCADA_analytics_russian.pdf.
  • http://www.kpda.ru/products/kpdal0964/.
  • Благодарный А.И., Коротышева Л.С. особенности и опыт применения надежной SCADA-системы "Блакарт" под управлением операционной системы QNX//Проблемы информатики. 2009. № 3. С. 62-67
  • Благодарный А. И. особенности и опыт применения надежной SCADA-системы "Блакарт"//Тезисы всероссийской конференции "индустриальные информационные системы" IIS-2013. Новосибирск, 24-28 сентября 2013. С. 10.
Статья научная