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

SCADA пакет - СТАТУС-4

Наше предприятие организовалось около 15-ти лет назад на базе специалистов Минмонтажспецстроя. В состав коллектива вошли высококвалифицированные специалисты: конструкторы, проектировщики, наладчики выполнявшие проекты в самых ответственных областях науки и техники, наземные стартовые комплексы, станции дальней космической связи, испытательные стенды и многие другие. Имя большой опыт работы разработки сложных проектов АСУ ТП "под ключ", нам пришлось поработать с разнообразным программным обеспечением и техническими средствами.

Первое знакомство с QNX

Наше первое знакомство с операционной системой QNX произошло в 1995 году. Для реализации проекта АСУ ТП "Бензол" в городе Салават Башкирия понадобился высоконадежный пакет программных средств, позволяющий вести управления процессами в реальном времени с большими потоками данных. Длительные поиски системы удовлетворяющей таким требованиям вывели нас на московскую фирму "Науцилус", которая и предложила нам SCADA пакет канадской фирмы BJ Software "RealFlex", базирующийся на операционной системе QNX2.

Проект был очень крупный, достаточно упомянуть основные параметры:

  • два сервера (основной и горячий резерв);
  • семь рабочих мест;
  • около 200 контуров дублированного регулирования;
  • около 300 сигналов мажоритарной(2 из 3-х) противоаварийной защиты;
  • около 400 агрегатов управления (задвижки, насосы, компрессора и т.д.);
  • около 50-ти контроллеров (Ш711, Р130, ТК20);
  • около 10-ти источников бесперебойного питания;
  • несколько тысяч информационных сигналов;
  • суммарное количество переменных в системе около 14000;
  • все линии защищены барьерами искрозащиты;

Кроме всего прочего технологический процесс оказался довольно динамичным, поэтому потоки данных от технологического оборудования были весьма значительными. На этапе наладки анализ объемов поступающей информации показал, что для комфортной работы операторов требуется обработка в среднем 1000 сигналов в секунду из них не менее 100-а архивируемых, при возникновении нештатных ситуаций и того больше.

К сожалению, наше стендовое тестирование RealFlex2 показало, что на одном узле он в состоянии обработать не более 600 сигналов секунду, а в составе сети из 9-ти узлов не более 300-х. Все это приводило к заметному замедлению времени реакции на действия операторов, особенно в аварийных ситуациях. Пришлось пойти на определенное снижение точности доставляемых данных для не особо важных сигналов и отказ от некоторых сервисов. Кроме того, по неизвестным причинам происходили периодические потери архивов и остановы системы. Получить нормальный переход на горячий резерв так и не удалось, а так как система устроена по принципу клиент-сервер, остановка главной станции приводила к полной остановке системы с последующим перезапуском. Цена пакета по Российским меркам была достаточно высока, например главная станция со средой разработки стоила 14000$.

Ко всему прочему нам не хватило стандартных средств конфигурирования RealFlex2, особенно в части физической привязки сигналов к каналам модулей УСО, поэтому пришлось создавать собственную базу данных, из которой часть данных экспортировалась непосредственно в RealFlex2, а остальные данные в нашу систему конфигурирования и программирования технологических контроллеров.

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

SCADA система СТАТУС-4

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

  • передача больших потоков информации по локальной сети (не менее 10000 событий в секунду);
  • высокая скорость архивирования (не хуже 3000 событий в секунду) и поиск данных;
  • объектная ориентированность, включая составные объекты;
  • отсутствие выделенных серверов;
  • единая операционная система для рабочих станций и контроллеров;
  • возможность резервирования сетей и контроллеров;
  • полная гальваническая развязка по всем внешним линиям модулей УСО;
  • максимальная разгрузка рабочих станций от обработки "сырых" данных, поступающих от объекта управления и перенос ее на уровень технологических контролеров (линеаризация, масштабирование, границы, тревоги и т.д.);
  • высоконадежная и скоростная файловая система;
  • надежная, предсказуемая и высокоскоростная операционная система;
  • "on_line" конфигурирование;

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

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

В качестве основного принципа построения системы была выбрана распределенная общая память (Distributed Shared Memory), известная как одна из форм многопроцессорных кластерных систем, в которых она поддержана на аппаратном уровне. Естественно в недорогих системах реализация такой памяти аппаратными методами пока не достижима, поэтому все проблемы синхронизации возлагаются на программное обеспечение и локальную сеть. К счастью QSSL предоставило низкоуровневый доступ к сети, что позволило реализовать широковещательную рассылку.

Проект получил название Статус-4 и содержит два разделяемых сегмента, в которых размещаются три иерархические индексированные базы данных:

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

Основное управление базами осуществляет программа администратор, у которого регистрируются все остальные клиенты Статус-4 и получают соответствующий доступ к данным. По чтению данные доступны как собственная память клиента, а по записи с помощью специальных функций, выполняющих сетевую синхронизацию. Таким образом, все базы данных в пределах одного сегмента локальной сети, включая контроллеры, имеют идентичные данные, различия возникают только на момент сетевой рассылки. В этом плане QNET является незаменимой, так как установка и разрыв соединение выполняется с минимальными потерями. Постоянные соединения отсутствуют вовсе, по следующей причине.

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

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

Синхронизация данных в базах выполняется тремя способами, описанными в литературе. Применительно к Статус-4 выглядит это так:

  • модификация базы данных описания объектов (создание новых объектов, изменение настроек объектов и т.д.), генератор изменения рассылает каждому доступному в данный момент узлу измененные данные с контролем;
  • изменение оперативных данных оператором, генератор изменения посылает сообщение узлу владельцу переменной, а тот уже рассылает его всем широковещательно;
  • изменение оперативных данных программами (драйверы устройств, технологические программы), генератор изменения собирает данные в пакет и рассылает его всем широковещательно;

Естественно метод широковещательной рассылки требует к себе особого отношения для обеспечения гарантированной доставки информации. В системе Статус-4 применен метод дублированной рассылки со сквозной нумерацией посылок.

Чтобы разгрузить систему от обработки сырых данных, поступающих от объекта, обработкой таких данных занимается генератор изменения, включая необходимость отправки по сети, масштабирование, линеаризацию, контроль границ, отказы, вывод на принтер, занесение в историю и сводку событий. Таким образом, данные, рассылают в сети уже в обработанном виде и, по сути, управляют действиями, которые должен выполнить узел, принявший сообщение, что значительно разгружает рабочее станции и сервера, которым остается только выполнение работ с дисковой памятью и графикой. Для синхронизации данных по времени, в системе реализована служба единого времени с разрешающей способностью 1мС. В настоящее время точность синхронизации составляет 20мС, что является вполне достаточным для многих приложений, и при необходимости может быть увеличена.

Подсистемы СТАТУС-4

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

  • база данных
  • события/аварии
  • история
  • мнемосхемы
  • отчеты
  • тренды
  • технологическое программирование
  • управление объектами
  • контроль состояния системы
  • интерактивные оповещения и управление
  • главное меню
  • документирование

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

Коротко остановлюсь на некоторых особенностях реализации подсистем.

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

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

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

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

Подсистема отчетов позволяет создавать выходные документы, как в текстовом формате, так и в формате HTML.

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

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

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

ТЕХНОЛОГИЧЕСКИЙ КОНТРОЛЛЕР "Автоматика ТК20"

Для того, чтобы обеспечить создание систем "под ключ", удовлетворяющих выше заданным характеристикам одновременно с разработкой системы Статус-4, был разработан контроллер "Автоматика-ТК20", который прошел все необходимые проверки и занесен в Российский реестр приборов как средство измерения. Контроллер имеет разрешение Госгортехнадзора России для работы на взрывопожароопасных объектах.

Контроллер ТК20 представляет собой 19" каркас с большим набором модулей УСО различного типа, как аналоговых, так и дискретных. Все модули интеллектуальные и позволяют выполнять первичную обработку данных, опознание обрывов и перегрузок, фильтрацию, масштабирование, линеаризацию, подавление дребезга и т.д. Обмен с центральным процессором контроллера, осуществляется через двух портовое ОЗУ, размещенное в каждом модуле. Каждое устройство снабжено заголовком из 8-ми байт, что совместно с географической адресацией позволяет надежно опознавать текущую конфигурацию. Модули снабжены достаточно серьезными средствами внутренней диагностики, позволяющими вполне уверенно опознавать отказы аппаратуры, такие как, пропадание внешнего питания, отказы конверторов, контрольных сумм, выходы за время цикла и т.д.

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

В качестве центрального процессора используются PC совместимые одноплатные микро ЭВМ, оснащенные DiskOnChip или CompactFlash, с установленной на них операционной системой QNX4 и Статус-4. Для небольших систем контроллеры одновременно могут выполнять функции рабочих станций, естественно с добавление соответствующей периферии, монитора, винчестера и т.д.

Для объектов с повышенными требованиями к безопасности, созданы специализированные аппаратно-программные подсистемы, такие как, подсистема дублированного регулирования, троированная подсистема ПАЗ, подсистема управления агрегатами с локальным управлением, подсистема сбора информации.

Более подробную информацию можно получить по адресу www.AVTS.ru

Мелихов Сергей Львович
НПП Автоматика-С