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

Заранее скажу, что ПО я писал на графическом языке программирования – LabView. На мой взгляд, он наиболее простой для освоения для человека, далёкого от программирования, нежели текстовые языки.

Разработка программного обеспечения.

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

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

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

VISA настройки последовательного порта

Теперь опишу каждый элемент (сборку элементов) и его предназначении более подробно (слева-направо).

Стандартный блок (VISA serial)  позволяет задать установки для последовательного порта (COM). На данном рисунке использованы лишь некоторые из них. В случае если какие-то установочные данные не указаны, то они используются по умолчанию.
Стандартный блок (VISA serial) позволяет задать установки для последовательного порта (COM). На данном рисунке использованы лишь некоторые из них. В случае если какие-то установочные данные не указаны, то они используются по умолчанию.

Запись данных в порт

Стандартный блок (VISA W)  позволяет записать (отправить) данные на COM-порт. Отправляет на COM-порт String’овые переменные, в данном случае строку, в которой могут быть любые символы (буквы, цифры). Но для управления сервоприводами необходимы только числовые данные.
Стандартный блок (VISA W) позволяет записать (отправить) данные на COM-порт. Отправляет на COM-порт String’овые переменные, в данном случае строку, в которой могут быть любые символы (буквы, цифры). Но для управления сервоприводами необходимы только числовые данные.

Формирование управляющего сигнала на сервоприводы

Как уже известно, сервопривод управляется числом (например, 6153 – на 6 сервомеханизм подаётся число 153, что соответствует 153 импульсам длительностью 10 мкс каждый). Соответственно, задав номер сервомеханизма (например, 6) мы должны умножить на 1000, получаем 6000. Это только мы выбрали номер сервомеханизма, с которым будем работать. Теперь необходимо задать управляющее воздействие, оно лежит в диапазоне от 70 до 240 . Для этого есть элемент «Положение серво», в котором программно заложено ограничение 70-240. После задания управляющего воздействия (153, например) оно складывается с произведением номера сервопривода на 1000 и передаётся на элемент Select .

Select
Select

Если на Select подаётся истина (по зелёной линии связи), то активирован режим «Работа», если ложь, то активирован режим «Настройка» и на выходе с Select имеем готовый управляющий сигнал для управления сервоприводом. Мы получили сигнал в виде числа, теперь его необходимо преобразовать в текстовую переменную  После преобразования можно отправлять на запись на COM-порт. Элемент «Сигнал на серво» необходим для отображения информации, отправленной на COM-порт. Для отключения сервоприводов используется выключатель и индикатор, в виде круглого светодиода 

 Чтение данных

Стандартный блок (VISA R) тать (получить) данные с COM-порта. Для работы необходимо задать количество принятых байт и индикацию о том, сколько их на самом деле приняли.
Стандартный блок (VISA R) тать (получить) данные с COM-порта. Для работы необходимо задать количество принятых байт и индикацию о том, сколько их на самом деле приняли.

Данные, как и в случае записи, принимаются в виде текстовой переменной, то есть в виде строчки. Для её отображения используется элемент «Принятая строка». Строчка, принятая с COM-порта имеет вид: ["A",#A1,"B",#A2,"C",#A3,"D",#A4,"E",#A5] . Пример реально принятой строчки с COM-порта: A820B821C360D263E0. Теперь нам нужно «отделить» буквенную и цифровую информацию из этой строки.

Рассмотрим на примере канала В, то есть, «извлечем» число, стоящее после буквы В. Для примера, возьмём строку: A820B821C360D263E0.

После приёма с COM-порта строка попадает на элемент «Выборка» 

Выборка
Выборка

 . Свободная линия связи слева – вход строки, B – признак, по которому осуществляется выборка, линия связи справа – означает то, что выводится строка, следующая за обозначенным признаком, то есть то, что следует за В. Получим: 821C360D263E0. Теперь необходимо подать полученную строку на следующий элемент «Выборка».

Выборка
Выборка

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

Разработка и описание работы вкладки "Настройка". Режим "Работа" и Настройка"

Что же касается других вкладок, то речь о них и их работе пойдёт позже. На рисунке ниже видим схему.

Синие квадраты внизу слева 

порты
порты

 – это «порты» данных с датчиков по каждому каналу, слева направо – A, B, C, D и E. В данной блок-схеме задействован только один канал – А, именно по нему и будет осуществляться регулирование. Следует отметить, что в данном режиме имитируется создаваемое при изменении высоты давление, при этом, используются два крана и соответственно две рулевые машинки (сервопривода). Для автоматического регулирования используются PID-регуляторы 

ПИД - регулятор
ПИД - регулятор

.

На выходе по одному из каналов необходимо сделать инверсию 

Инверсия
Инверсия

, так как во время регулирования один клапан должен открываться, а второй закрываться и наоборот. Данные с выхода с PID-регуляторы идут с целой и десятичной частью. Для управления сервоприводами необходима только целая часть, поэтому, необходимо округлить эти данные I32 . После чего управляющие сигналы идёт на сумматор , где складываются в соответствии, на какой сервомеханизм они будут отправлены, числом. Для шестой рулевой машинки 6070 , для пятой 5070.

 Режим «Работа» отличается от режима «Настройка» тем, что в режиме «Настройка» мы сами вручную с помощью ручки управления и переключателя управляем выбранным нами сервоприводом. В режиме «Работа» используется автоматическое регулирование пятым и шестым сервоприводом.

Теперь можно перейти к разработке внешнего вида окна «Настроек» и описанию всех рабочих окон поля программы.

Описание окон и полей программы.

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

Описание остальных вкладок программы

Разработка и описание работы вкладки «Максимальные значения»

Данная вкладка используется исключительно для контроля давления, которое создаёт насос (вакуум) и компрессор (избыточное давление). Как видно из рисунка мы можем ввести только температуру (в оС), больше никаких данных ввести мы не можем.

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

Слева – индикатор для отображения высоты, имеет две стрелки – большую и малую. Один оборот большой стрелки соответствует изменению высоты на 1 км, а один оборот малой стрелки на 10 км. Справа – индикатор отображения приборной скорости полёта. Один оборот стрелки соответствует изменению скорости на 1500 км/ч.

Указатель скорости представляет собой один стрелочный индикатор с градуировкой от 0 до 15.

Давление и высота рассчитывается по формулам, полученным в разделе «Расчёты». Блоки, вычисляющие давление, а потом высоту представлены на рисунке.

Расчёт
Расчёт

Программа вкладки «Максимальные значения».

Указатель высоты состоит из двух стрелочных индикаторов, один из которых наложен на другой. Тот, что находится сверху, сделан невидимым, за исключением стрелки. Стрелка у него короткая, и сам индикатор имеет диапазон индикации от 0 до 10000 (короткая стрелка показывает километры). Нижний индикатор полностью видим, и имеет диапазон индикации от 0 до 10 (длинная стрелка показывает метры). Зависимость между стрелками должна быть такая, чтобы при одном обороте длинной стрелке (1000 м) малая отклонилась на единицу (1 км). Для этого в программе написал подпрограмму, которая вычисляет необходимые отклонения обоих стрелок для каждого из индикаторов.

В программе она выглядит как показано на рисунке ниже.

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

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

Для скорости от 0 до скорости звука:

До скорости звука
До скорости звука

Для скорости, превышающей скорость звука:

Больше скорости звука
Больше скорости звука

Формула для вычисления числа маха:

Расчёт числа Маха
Расчёт числа Маха

Скорость звука:

Расчёт скорости звука
Расчёт скорости звука

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

Разработка и описание работы вкладки "Высотомер"

Данная вкладка используется для проверки высотомера. Как было сказано ранее, расчёт высоты в зависимости от давления берётся из таблицы стандартной атмосферы.

Описание окон и полей программы

Общий принцип работы и регулирования такой: имеем входной параметр с датчика в «цифровом виде», пересчитываем его в давление, после этого текущее значение принимаем за ноль (обнуляем), значение, при изменяемом параметре, но относительно нуля отправляем на регулятор, на вход изменяющегося параметра. На другой вход (заданное значение) отправляем заданное значение давление – то значение, которое должна достичь система, по истечении определённого промежутка времени (обычно 3-10 сек.).

Программа вкладки «Высотомер».

Разработка и описание работы вкладки «Указатель скорости»

Данная вкладка используется для проверки указателей скорости. Индикаторы показывают приборную скорость, задаём также приборную скорость. Вычисление скорости, в зависимости от динамического и статического давлений см. в разделе «Разработка и описание работы вкладки «Максимальные значения»».

Описание окон и полей программы

Обнуление реализовано точно так же, как и в программе с высотой.

Программа вкладки «Указатель скорости».

В отличие от высоты, зависимость давления и скорости имеет прямую зависимость, поэтому, параметры PID-регулятора будут схожими с параметрами PID-регулятора во вкладке «Настройки». А именно, ограничения по выходным значениям будут лежать в положительной области , соответственно, не будет стоять и инверторов на выходе. Принцип работы и регулирования такой же, как и у программы высотомера.

Разработка и описание работы вкладки «Указатель числа Маха»

Данная вкладка используется для проверки указателей числа Маха. Вычисление скорости, в зависимости от динамического и статического давлений см. в разделе «Разработка и описание работы вкладки «Максимальные значения».

Описание окон и полей программы.

Программа вкладки «Указатель числа Маха» показана на рисунке. Она полностью аналогична программе для проверки указателя скорости, отличие состоит в том, что стоят другие коэффициенты для PID-регулятора.

Разработка и описание работы вкладки «Вариометр»

Данная вкладка используется для проверки вариометров. Для этого используются формулы, выражения и законы регулирования используемые в высотомере.

Описание окон и полей программы

Программа вкладки «Вариометр» показана на рисунке. Как сказано немного выше, она полностью аналогична проверки высотомера. Основным отличием является наличие счётчика высоты и дифференцирующего блока.

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

Инструкция по эксплуатации

1.Подключить установку к ПК, посредством USB-кабеля (6).

2.Если есть источник 220В для внешнего блока питания, то следует подключить блок питания к установке (7) и подключить его к сети. В случае если такой возможности нет, то можно воспользоваться внутренним питанием от аккумулятора.

3.Переключить переключатель (8) в положение, в зависимости от того, какое источник питания используем.

4.В программе Esato выбрать COM-порт к которому подключена установка и нажать Run.

5.Во вкладках «Высотомер», «Указатель скорости», «Указатель числа Маха» и «Вариометр» нажать на кнопку «Обнулить».

6. Подключить насос и компрессор к соответствующим штуцерам на установке, штуцера сделаны таким образом, что возможно использование шлангов с внутренним диаметром от 2 мм до 7 мм (1 и 2, соответственно).

7.Включить насос и компрессор.

8.Подключить проверяемый прибор к соответствующему штуцеру:

  • высотомер к Н Рст (3)

  • указатель скорости к V Рст (статическое давление) (4) и V Рд (динамическое давление) (5)

  • указатель числа Маха к V Рст (статическое давление) (4) и V Рд (динамическое давление) (5)

  • вариометр Н Рст (3)

9.Открыть соответствующую вкладку для проверки прибора.

10.Обнулить показания, нажав кнопку «Обнулить».

11.Задать проверяемое значение параметра, подождать, когда оно установится.

12.Сравнить с проверяемым прибором и оценить погрешность.

О том, как работает прибор, как поверять на нём аэрометрические приборы, существует некий видеоряд с пояснениями.

Расскажите как вы сдавали свой диплом, какими дополнительными средствами пользовались?

Комментарии (1)


  1. DarkTiger
    26.02.2022 12:23
    +1

    Примерно лет 15 назад этим занимался :) Самая приятная вещь - это когда сидишь с ноутом за столом с авиаинженерами и таскаешь мышкой органы управления и индикации по панели. Пара встреч - и ТЗ, по сути, написано, и печень все еще целая. Кто работал с авиацией - поймет.

    Потом, после отработки с железом, быстренько переносишь на LabWindows (чтобы заказчик не ставил и себе Labview) - и вуаля.
    Минус - это все для испытательной лабы, типа связать положение РУД с чем-то там еще. В реальном софте на борту этого нет.