SWD Software Ltd. - официальный дистрибьютор QNX на территории России и стран бывшего СССР Операционная система реального времени QNX
Инструменты для создания надёжных встраиваемых систем и
интеллектуальных устройств любой сложности
QNX Software Systems - разработчик встраиваемой операционной системы QNX
Информационные брошюры
Статьи и публикации
Обзоры
Операционные системы
Графические интерфейсы
Средства разработки
Прикладные системы на базе ОС QNX
Разное
Конкурсные статьи
Техническая литература
Материалы конференций QNX-Россия
Полезные ссылки
Блог QNX
Главная страница > Материалы > Статьи и публикации > Конкурсные статьи > Применение ОС QNX в промышленности Сделать страницу стартовой Послать ссылку коллеге Версия для печати

Применение ОС QNX в промышленности

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

1. Введение

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

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

На рынке присутствует множество коммерческих ОС РВ [1]. Следует отметить одну особенность развития рынка встроенных систем реального времени. В связи с выходом на этот рынок такого крупного игрока, как Microsoft с операционными системами Windows CE и Windows NT Embedded, в последние два года происходят слияния. Так фирма Wind River Systems приобрела компанию Integrated Systems, после чего прекратила существовать конкурировавшая с VxWorks ОС РВ pSOS, а VenturCom приобрела компанию Phar Lap Software, и тем самым устранила с рынка ОС РВ ETS Kernel. Но общее число ОС РВ не уменьшается, поскольку появляются новые разработки, специализированные для новых процессоров.

В настоящее время известно около 80 ОС РВ, более половины имеют поддержку архитектуры процессоров x86. Перечисляя из них лишь самые развитые, широко известные и имеющие многочисленные внедрения, можно назвать следующие ОС РВ:

  • Nucleus PLUS, разработчик Accelerated Technology,
  • CMX-RTX, разработчик CMX Systems,
  • ThreadX, разработчик Express Logic,
  • VRTX, разработчик Mentor Graphics,
  • Windows CE и Windows NT Embedded, разработчик Microsoft Corp.,
  • OS-9, разработчик Microware Systems Corp.,
  • RTOS-32, разработчик On Time Software,
  • QNX, разработчик QNX Software Systems Ltd.,
  • ChorusOS, разработчик Sun Microsystems,
  • RTX for Windows NT and Windows CE, разработчик VenturCom,
  • VxWorks, разработчик Wind River Systems.

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

Функции, которые выполняют ОС общего назначения и ОС РВ во многом сходны - диспетчеризация задач, обеспечение связи между ними, обработка прерываний, взаимодействие с аппаратными средствами. Часто они имеют общий программный интерфейс (API), например, Win32, POSIX или ANSI.

Коренные отличия ОС РВ от ОС общего назначения скрываются во внутренней архитектуре. Для обеспечения свойств реального времени в ОС необходимы средства обеспечения предсказуемой многозадачности, такие как прерывания, нити (threads), большое число приоритетов нитей, развитые механизмы синхронизации нитей, изменения уровня приоритетов, блокировки нитей и т.п.

В качестве примера приведем краткое описание операционной системы QNX, широко применяющейся в России.

2. ОС РВ QNX

QNX является высокопроизводительной сетевой операционной системой реального времени, специально разработанной для систем управления процессами. Первоначально QNX разрабатывалась для процессоров x86, а последняя версия QNX 6.x поддерживает также процессоры PowerPC, ARM, SH4 и MIPS. На данный момент QNX используется в более чем 1 млн. систем, преимущественно в приложениях, где основными требованиями являются работа в реальном времени, удобство разработки и гибкая работа в сети.

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

Исторически можно выделить следующие этапы развития операционной системы QNX:

1970-ые - Гордон Белл и Дэн Додж начали разработку высокопроизводительного ПО для микропроцессоров Intel 8088/86 в университете Ватерлоо, Онтарио, Канада.

1980 - Основание фирмы Quantum Software Systems Ltd. (позже переименованной в QNX Software Systems Ltd.).

1982 - Создание первой версии QNX.

1984 - Создание версии QNX для PC AT. Включение в QNX поддержки работы в рамках локальной сети. QNX стала первой коммерческой ОС, которая выполняла DOS как одну из своих задач.

1987 - QNX версия 2.0. Создание версии QNX для PS/2.

1989 - Начало разработки версии QNX 4.x, удовлетворяющей стандарту POSIX.

1990 - Создание графической оболочки QNX Windows.

1991 - QNX версия 4.x (POSIX-стандарт).

1993 - QNX версия 4.2 (32-разрядная архитектура).

1998 - Создание QNX Neutrino 1.x с "наноядром", имеющем поддержку процессоров PowerPC, ARM, SH4 и MIPS.

2000 - QNX Neutrino становится бесплатной для некоммерческих применений, переименовывается в QNX 6.x и дополняется до развитой платформы реального времени (QNX RTP).

2001 - QNX Realtime Platform версии 6.1.

В настоящее время фирма-разработчик QNX поддерживает две версии QNX - версию QNX4 (исключительно коммерческая версия) и QNX6 (бесплатна для некоммерческих применений). На момент написания данной статьи последними редакциями этих двух версий ОС QNX являются соответственно QNX 4.25 и QNX 6.1.

"Визитной карточкой" QNX является архитектура микроядра, которая в основном мало изменилась с момента своего создания в 1982 году. Маленькое микроядро размером около десятка килобайт позволяет разместить целиком его копию вместе с драйверами прерываний в кэше процессора, что обеспечивает непревзойденную производительность приложений с большим числом задач. Микроядро QNX реализует четыре функции: межпроцессная связь, нижний уровень сетевого протокола, планирование процессов и диспетчеризация прерываний. Диспетчеризация осуществляется на базе приоритетного переключения контекстов с циклическим (round-robin - кольцевой список), FIFO (первым пришел - первым обработан) и адаптивным планированием.

Малый размер тщательно отлаженного кода микроядра имеет преимущество высокой устойчивости: даже если какой-либо аппаратный драйвер имеет программную ошибку, его сбой не приведет к краху системы - микроядро способно выгрузить ошибочный код, работающий в защищенном режиме. Более того, этот драйвер можно заменить, не перезагружая ядро. Благодаря этому становится возможна модернизация работающего приложения. За счет этой гибкости и устойчивости типичной является работа компьютерных систем под управлением QNX без перезагрузки в течение нескольких лет!

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

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



Рис. 1. Архитектура QNX

Встроенная файловая система устойчива даже при отключениях питания, поэтому QNX никогда не допускает нарушения целостности данных.

Графическая подсистема строится, как и вся система, на модульном принципе, обеспечивая отображение графических данных на простых монохромных панелях и работу многооконного интерфейса для полноцветных мониторов высокого разрешения. Имеется развитая собственная разработка графических функций QNX Photon microGUI с удобным средством разработки многооконных приложений Photon Application Builder, а также портированная в QNX графическая библиотека X Windows.



Рис. 2. Графическая оболочка Photon и Application Builder

Прозрачная сетевая структура позволяет одному узлу сети QNX пользоваться любыми ресурсами любого другого узла сети QNX. QNX поддерживает работу кластеров симметричной мультипроцессорной архитектуры. Все это вместе обеспечивает чрезвычайную масштабируемость ОС РВ QNX, покрывая потребности самого широкого спектра возможных целевых архитектур (см. рис.3).



Рис. 3. Характеристики целевых архитектур ОС РВ

Одним из наиболее важных условий успеха операционной системы является наличие в ней развитой среды разработки. С этой точки зрения ОС QNX является одной из самых развитых ОС реального времени. Возможна разработка целевого ПО на хост системе под управлением QNX, а также перекрестная схема разработки (cross-development), когда хост система функционирует на отдельной рабочей станции платформы Windows или Sun.

Поскольку QNX обладает интерфейсом POSIX, разработчик может использовать большое число стандартных инструментальных средств, включая бесплатные GNU GDB и GCC, используемые для разработки в ОС общего назначения - таких, как, например Linux. Более того, многие приложения Linux легко портируются в QNX.

Общую характеристику ОС РВ QNX можно завершить цитатой выводов независимого исследования свойств QNX 6.1 [2]. Используя унифицированные критерии, ей выставили следующие оценки по десятибальной шкале:

  • Инсталляция и конфигурирование - 7 баллов
  • Архитектура ОС РВ - 9 баллов
  • Богатство прикладных программных интерфейсов - 7 баллов
  • Поддержка Интернет - 8 баллов
  • Инструментальные средства - 7 баллов
  • Документация и поддержка - 5 баллов
  • Результаты технических тестов - 9 баллов.

3. Программное обеспечение нижнего уровня АСУ ТП на базе QNX

ОС QNX широко применяется во многих программируемых логических контроллерах (ПЛК) для систем управления технологическими процессами в различных отраслях промышленности. В QNX портирована целевая (target) задача ISaGRAF, представляющая собой популярное программное средство для контроллеров. ISaGRAF обеспечивает не только функционирование приложения на контроллере, но и удобный интерфейс технологического программирования на хост системе Windows, которая может располагаться удаленно от целевой системы. Эта система, называемая системой разработки, взаимодействует с целевой задачей ISaGRAF для QNX на ПЛК, как показано на рис.4.



Рис. 4. Взаимодействие системы разработки с системой исполнения на ПЛК

С другой стороны данные, которые получает ПЛК, сетевой подпрограммой целевой задачи ISaGRAF для QNX пересылаются в систему сбора данных и диспетчерского управления (SCADA), контролирующей работу оборудования целой технологической линии, цеха или всего завода (см. Рис. 5).

Благодаря целевой задаче ISaGRAF для QNX пользователь - им может быть технолог, квалифицированный рабочий или оператор - программирует работу гибко перестраиваемого оборудования на следующих языках стандарта IEC 61131-3:

Графические языки:

  • Последовательных функциональных схем (SFC)
  • Релейных диаграмм (LD)
  • Функциональных блоковых диаграмм (FBD)

Текстовые языки:

  • Список инструкций (IL)
  • Структурированный текст (ST)

Синтаксис этих языков детально описан в стандарте IEC 61131-3, так что пользователю наверняка знаком хотя бы один из этих языков. Графическое представление прикладных программ - это типичная особенность программирования ПЛК. В то же время текстовые языки широко используются для программирования компьютеров. Языки программирования определены в стандарте таким образом, что допускают разработку приложения на смеси этих языков, которая в последствии собирается в единую исполняемую программу. Кроме того, стандарт открыт для использования других языков программирования.



Рис. 5. Взаимодействие ПЛК с целевой задачей ISaGRAF для QNX и верхним уровнем АСУ ТП.

При дальнейшем развитием целевой задачи ISaGRAF для QNX появился специализированный модуль связи, который позволил контроллерам связываться между собой без посредства систем верхнего уровня и использовать данные одного ПЛК при управлении с другого удаленного ПЛК. Такие системы получили название распределенные системы управления (DCS). Решение на базе ISaGRAF для QNX - это первое открытое решение для DCS.

4. Инструментальные средства для SCADA систем

Системы автоматизации верхнего уровня АСУ ТП, так называемые системы сбора данных и диспетчерского управления (Supervisory Control And Data Acquisition - SCADA), построенные на базе ОС РВ QNX, также наследуют все преимущества более высокой реактивности и устойчивости по сравнению с решением на базе ОС общего назначения. Задачами SCADA являются сбор и архивация данных, поступающих от ПЛК и других устройств нижнего уровня (датчики и исполнительные механизмы), мониторинг параметров, выдача сигналов тревог или иных сообщений, визуализация процесса или осуществление человеко-машинного интерфейса для контроля технологического процесса оператором, а также анализ накопленных данных или их передача в системы более высокого уровня. SCADA системы, построенные на базе ОС общего назначения, обычно неплохо справляются с этими задачами при относительно небольшом количестве контролируемых параметров в базе данных. Однако, если их число превышает несколько десятков тысяч, "накладные расходы" времени ОС общего назначения становятся чересчур большими и поступающие данные не успевают обрабатываться. Особенно заметно это становится в нештатных ситуациях, когда возникает большое количество тревог, в том числе "наведенных" за счет неверного сравнения параметров, поскольку поступающие данные не успевают обрабатываться.

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

Первой инструментальной системой для построения SCADA на базе ОС РВ QNX был пакет RealFlex, разработанный первоначально для систем удаленного контроля за работой нефтедобывающих морских платформ. Затем появились Sitex, PCP Virgo и другие. С помощью пакета RealFlex было создано большое количество приложений SCADA в таких отраслях российской промышленности, как нефтегазовая, химическая промышленность, металлургия, энергетика, машиностроение, коммунальное хозяйство и др.

После появления Windows NT и существенного снижения стоимости высокопроизводительных персональных компьютеров более привлекательным для большинства разработчиков SCADA систем стало богатство графики и универсальность интерфейсов платформы Windows. Поэтому с 2001 года развитие пакета RealFlex идет по пути интеграции с Windows. А разработчики пакета Sitex улучшают средства взаимодействия с оператором в среде QNX. Его развитая клиент-серверная архитектура позволила выделить серверную часть OPUS и дополнительно создать новую клиентскую часть Phocus на базе графической оболочки QNX Photon microGUI, практически не уступающей Windows в области графических возможностей. Пакет OPUS/Phocus/Sitex благодаря надежности и функциональности сразу нашел применение на отечественных предприятиях химической и нефтеперерабатывающей промышленности.

5. Средства интеграции систем на базе QNX с другими системами

Важной частью современной АСУ ТП является возможность передачи данных, накапливаемых SCADA системами, в АСУ предприятия, осуществляющих управление финансами, сырьем, материалами и другими ресурсами производственной компании. В этих системах практически никогда не требуется управление в жестком реальном времени, которое обеспечивают СРВ. Поэтому они строятся в виде СУБД на базе ОС общего назначения, такими как Windows NT и Unix. Для того, чтобы иметь возможность двусторонней передачи информации из SCADA системы в АСУ предприятия и обратно, имеется несколько возможных решений. Но в любом случае связь осуществляется по универсальной сети Ethernet. Возможны следующие варианты:

  • Прямой драйвер связи SCADA пакета с конкретной СУБД, такой как Oracle, Sybase SQL или Microsoft SQL. Такое решение не является универсальным, но оно обеспечивает наибольшую производительность.
  • Шлюз ODBC, позволяющий связать систему, работающую в QNX, с СУБД на платформе Windows.
  • OPC-сервер для SCADA пакета, работающего в QNX, предоставляющий данные не только СУБД, но и многим прикладным системам, работающим в ОС Windows. Это решение самое универсальное, поскольку OPC (OLE for Process Control) является столь же широко распространенным стандартом для связи различных программ для производства между собой, как OLE для офисных приложений.

6. Пример использования ОС РВ в АСУ ТП

В качестве примера рассмотрим приложение АСУ ТП, внедренное на ТЭЦ-25 АО "Мосэнерго" (см. рис. 6).



Рис. 6 Конфигурация АСУ ТП ТЭЦ-25 АО "Мосэнерго" на базе ОС РВ QNX

В качестве инструментальных программных средств здесь использовались: SCADA-пакет RealFlex 4.2 в среде ОС QNX 4.24, система технологического программирования ISaGRAF 3.2 с исполнительным ядром в среде ОС QNX, а также СУБД Sybase SQL Anywhere 5.5 for Windows NT. На нижнем уровне управления использовались ПЛК на базе процессорной платы с высокопроизводительной VME шиной Xycom XVME-654 и платы ввода/вывода Инженерно-технического центра "Черноголовка". Системой контролируются следущие технологические объекты: котлотурбина трех блоков генераторов, система химводоочистки и система экологического контроля станции. Функциями АСУ ТП являются:

  • измерение, первичная обработка и вычисление технологических параметров и показателей состояния оборудования, определение состояния исполнительных механизмов;
  • отображение оперативных значений технологических параметров, состояния исполнительных механизмов и показателей состояния оборудования в виде технологических мнемосхем, текстовых сообщений, таблиц, трендов и диаграмм;
  • регистрация наиболее важных технологических параметров;
  • хранение предыстории по важнейшим параметрам в базе данных АСУ ТП и в СУБД Sybase SQL Anywhere 5.5 for Windows NT;
  • экологический контроль работы станции;
  • взаимодействие с ранее введенными компонентами АСУ ТП (с системой ТУРБОКОМ).

Система устойчиво работает с 1999 года, она открыта для расширения и модернизации.

7. Рыночные перспективы ОС РВ QNX

ОС РВ QNX имеет уже длительный путь развития. Он характеризуется постоянным улучшением качеств системы реального времени (производительность и предсказуемость), интенсивным добавлением функциональности (мультимедийные средства, протоколы Интернет и т.д.), а также стремлением ко все более полной реализации прикладных программных интерфейсов стандарта POSIX. Последнее свойство позволяет разработчику прикладной системы проще переносить программы из одной операционной системы в другую. В частности, тем, кто знаком с ОС Linux, легко перенести свой код в ОС РВ QNX.

Кроме того, изменив схему лицензирования своей последней версии QNX 6.x, и предоставив бесплатно полноценный набор инструментальных средств и документации для платформы реального времени QNX Realtime Platform (QNX RTP), компания QNX Software System кардинальным образом расширила круг разработчиков, приверженных QNX. Теперь даже небольшие венчурные компании, имеющие интересные идеи для встроенных систем реального времени, могут попробовать создать действующий макет задуманного устройства с самыми минимальными затратами. Результатом будет быстрый выход на рынок большого количества новых устройств для различных областей человеческой деятельности. QNX уже широко применяется в таких областях как:

  • Автоматизация процессов (АСУ ТП);
  • Бытовая электроника;
  • Медицинские приборы;
  • Сетевые компьютерные устройства, периферия;
  • POS-терминалы для торговли;
  • Научные исследования;
  • Системы безопасности;
  • Космонавтика;
  • Телекоммуникации;
  • Транспорт.



Рис. 7. Окно начальной установки QNX RTP

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

Литература

  • Buyer's Guide 2002 Embedded System Programming
  • QNX RTOS 6.1, Dedicated System Experts RTOS Evaluation Project, DSE-RTOS-EVA-012, Issue 1.01, Sept 26, 2001

Об авторах

Сергей Викторович Золотарев - технический директор Научного центра НАУЦИЛУС
Андрей Витальевич Фрейдман - заместитель директора по маркетингу Научного центра НАУЦИЛУС
Телефон (095) 939-5872, факс 939-5002, e-mail: root@nautsilus.ru

к.т.н. С.В.Золотарев, А.В.Фрейдман
(НАУЦИЛУС, Москва)

Рассказать друзьям:

Rambler's Top100           Рейтинг@Mail.ru