Распределенная система управления антенным комплексом
Несмотря на высокую степень автоматизации создаваемых радиотехнических комплексов, в эксплуатируемых на сегодняшний день антенных системах продолжают использоваться методы управления, основанные на ручной настройке, наведении на источник излучения и диагностике оборудования, входящего в антенную систему составными частями.
Представленный масштабируемый аппаратно-программный комплекс «Союз» (далее Комплекс) обеспечивает управление многоканальным радиотехническим комплексом.
Под каналом Комплекса разработчики понимают антенную систему с автономной системой наведения. Каждый канал управляется единой системой управления и использует общие ресурсы комплекса: систему технического анализа, систему планирования работ, систему долговременного хранения и статистической обработки данных, систему управления контрольно-измерительным оборудованием.
Конфигурация Комплекса представлена на Рис.1 и , объединяет в одно целое контрольно-измерительную аппаратуру, систему управления исполнительными устройствами, интеллектуальное технологическое оборудование, операторские пункты другие компьютерные системы, функционирующие в рамках радиотехнического комплекса.
Комплекс решает следующие задачи:
- Настройка режима работы отдельной антенной системы;
- Настройка высокочастотного тракта каждой антенны на оптимальный прием/передачу сигнала в нескольких частотных диапазонах;
- Отображение спектра принимаемого сигнала от каждой антенны в любом из диапазонах;
- Наведение антенны в заданную точку пространства в автоматическом и ручном режимах управления;
- Хранение параметров настройки, наведения по каждой антенне в базе данных Комплекса;
- Контроль параметров антенной системы в целом и каждой входящей в Комплекс антенны в реальном масштабе времени.
Разработанный аппаратно-программный комплекс обеспечивает возможность управления целым семейством антенных систем в автоматизированном режиме без вмешательства оператора.
Обобщенная структура автоматизированного аппаратно-программного комплекса.
Комплекс имеет трехуровневую иерархическую архитектуру. Структурная схема системы изображена на рис. 1.
Рис.1. Структурная схема системы
На первом уровне Комплекса расположена система планирования работ Комплекса и система статистической обработки и долговременного хранения данных.
На втором уровне – система управления каналами Комплекса и системы, реализующие алгоритмы анализа сигналов, контроля и диагностики аппаратуры, система управления контольно-измерительным оборудованием, ключенным в радиотехнический комплекс. Второй уровень может при необходимости быть дополнен другими вычислительными системами при расширении задач радиотехнического комплекса.
На третьем уровне Комплекса расположена распределенная система управления, построенная на базе одноплатных компьютеров формата PC 104 (Fastwel CPC-303) и контрольно-измерительная аппаратура.
Внешний вид исполнения аппаратуры одного канала системы представлен на рисунке 2.
Рис 2. Внешний вид исполнения аппаратуры одного канала системы
Основу нижнего уровня составляют интеллектуальные исполнительные устройства – преобразователи частоты SIEMENS MICROMASTER-440, энкодеры Kubler, двигатели постоянного и переменного тока, преобразователи и др.
В качестве транспортного протокола используется интерфейс CAN, обеспечивающий безопасную передачу данных и команд в реальном масштабе времени.
Третий уровень системы представляет собой классическую «распределенную систему», в которую входит несколько управляющих контроллеров (Управление интеллектуальными исполнительными устройствами антенной системы №#) под управлением встроенной RTOS QNX6 Neutrino. Каждый контроллер управляет работой одного канала и осуществляет связь между контроллерами и обмен с системами верхнего уровня. и виртуальным сервером RTOS QNX, объединенных сетью QNX. Внешний вид исполнения управляющего контроллера представлен на рисунке 3.
Рис 3. Управляющий контроллер
Третий уровень
Архитектура третьего уровня системы основана на межпроцессном взаимодействии посредством передачи сообщений. Процессы могут быть разделены на три группы:
- Процессы, реализующие обмен с верхним уровнем системы
- Процессы, реализующие основные задачи управляющих контроллеров;
- Процессы, реализующие транспортный протокол с исполнительным интеллектуальным уровнем системы.
Разделение процессов, обеспечивающие основную работу по управлению устройствами в CAN-шине, представлено на рисунке 4.
Все процессы взаимодействуют через программу управляющего контроллера Coordinator.
Схема взаимодействия между процессами представлена на Рис.4.
Обмен с верхним уровнем системы осуществляется по протоколу QNET с использованием сокетов, посредством 2 процессов: «процесс приёма данных» (RECEIVER) и «процесс передачи данных» (TRANSMITTER). Они обеспечивает непосредственный приём и передачу данных от систем второго управляющего уровня и передачу их потребителям. Это позволяет обеспечит асинхронный режим обмена, что не приводит к блокировке систем второго уровня, пока осуществляется передача/прием данных.
QNET позволяет связать компьютеры в однородную сеть, функционирующую на базе собственного протокола qnet, основанного на обмене сообщениями микроядра.
Построение сети QNET по сути своей уникально: вместо передачи условных данных, определенных протоколом, по сети передаются системные сообщения, которые после «сборки» менеджером сети поступают непосредственно в ядро. Передача сообщения по сети происходит с использованием механизма, в точности аналогичного тому, который используется при выполнении запросов системного API(например, open()) на локальном компьютере. QNET обеспечивает обмен сообщениями между процессами на удаленных узлах прозрачно, как если бы они находились на одном узле сети: вся сеть превращается в единый компьютер с общими ресурсами и задачами.
Каждый процесс, работающий в Контроллере, представляет собой цикл (Рис.5), в котором происходит приём и обработка сообщений от процессов уровнем выше. Построение цикла приведено на рисунке 5.
Все процессы являются потомками абстрактного класса Active, в котором реализованные все основные функции: создание канала, по которому идет прием сообщений; приём сообщений по каналу; обработка сообщений; ответ на сообщения. Реализация класса представлена на рисунке 6.
Функция MsgReceive является блокирующей. На ней процесс ждет сообщения, которое предназначено для него. Как только такое сообщение поступает, происходит анализ сообщения и дальнейшая обработка. Функция MsgReply производит ответ на присылаемые сообщения. Ответ может содержать как сообщение с полезными данными, запрашиваемыми клиентом, так и быть пустым.
Процесс уровнем выше посылает сообщения с помощью функции MsgSend. Но для удобства реализован класс IActive (рисунок 7).
В этом классе реализованы функции для посылки сообщений классу Active.
Построение процессов с использованием класс Active и IActive позволяет упростить и ускорить разработку процессов, так как в них уже реализованы основные наборы функций. А разработка каждого процесса (написание программного кода процесса), может вестись различными людьми.
Процессы, реализующие основные задачи управляющих контроллеров и обеспечивающие формирование управляющих воздействий на нижний исполнительный уровень системы (рисунок 4) взаимодействуют между собой через программу Coordinator, который распределяет ресурсы контроллера между процессами и синхронизирует их работу. Такая организация позволяет нижнему уровню системы функционировать независимо от второго управляющего уровня системы и не блокировать выполнение задач, выполняемых системами второго уровня.
Второй уровень
На втором уровне системы управления комплексом находятся:
- Система управления комплексом антенных систем
- Система анализа и сбора данных;
- Система питания и диагностики оборудования;
- Система управления контрольно-измерительным оборудованием.
- Система управления комплексом антенных систем
Система управления комплексом антенных систем фактически является менеджером программно-аппаратных средств представленного радиотехнического комплекса.
Основной задачей системы является планирование ресурсов комплекса и обеспечение взаимодействия систем различного назначения, входящих в него, а также реализация наглядного и детального представления всех частей комплекса, обеспечение ясной обратной связи и соблюдение эргономических требований к графическому интерфейсу. В процессе решения этих задач удалось спроектировать интерфейс, который позволяет максимально точно управлять комплексом, своевременно сообщает оператору обо всех неисправностях и учитывает специфику предметной области для создания комфортных условий использования. Снимок основного экрана системы представлен на рис.8.
Поскольку система управления комплексом позиционируется как многоканальная унифицируемая система с возможностями расширения, целесообразно было предусмотреть механизм, позволяющий наращивать систему независимо от уже существующей и функционирующей, поэтому был разработан механизм, который обеспечивает возможность быстрой доработки системы при условии появления дополнительного оборудования, включаемого в контур управления. С этой целью разработан объект типа класс, позволяющий описывать поведение объекта. На рисунке 9 приведен каркас программного кода класса Device
Представленный класс предназначен для работы с оборудованием по протоколу TCP/IP, поэтому для установления соединения необходимо задать адрес и порт устройства. Метод sendCommand() выполняет работу по формированию сообщения, проверке его корректности и отправке сообщения устройству, иными словами обеспечивает требуемый протокол. Этот метод используется как основа для более специфичных методов класса, например, таких как getData(), который предназначен для считывания контролируемых параметров с устройства.
Вся работа с устройством осуществляется в цикле опроса, который описывается индивидуально для разных устройств. Внутри него мы считываем данные и осуществляем их обработку. Стандартный цикл предполагает опрос с выбранным временным интервалом. Если же требуется настроить цикл опроса более детально, то можно переопределить метод start().
Для добавления нового оборудования в контур управления комплексом, достаточно внести в этот класс лишь специфичные для данного типа оборудования изменения.
Такой подход позволяет значительно сократить время на интеграцию нового оборудования и делает доработку программного обеспечения независимым процессом, позволяя привлекать программистов разной квалификации, что в конечном итоге может значительно удешевить процесс разработки программного обеспечения.
Описанный в данной статье аппаратно-программный комплекс со своей системой управления прошел апробацию на реальном объекте и успешно функционирует. Поскольку разработчики данной системы ставили своей основной целью получить динамически развивающийся инструмент, позволяющий быстро адаптировать программное обеспечение под различные объекты управления, на его основе может быть выстроена система управления реального времени, позволяющая управлять различными объектами в народном хозяйстве Российской Федерации.