Разработка ЦТАП

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На выходе по одному из каналов необходимо сделать инверсию , так как во время регулирования один клапан должен открываться, а второй закрываться и наоборот. Данные с выхода с PID-регуляторы идут с целой и десятичной частью. Для управления сервоприводами необходима только целая часть, поэтому, необходимо округлить эти данные I32 . После чего управляющие сигналы идёт на сумматор , где складываются в соответствии, на какой сервомеханизм они будут отправлены, числом. Для шестой рулевой машинки 6070 , для пятой 5070 . Необходимо обеспечить переключение между сервомеханизмами, чтобы они управлялись поочереди. Обеспечивается вот такой связкой. Реализуется поочередное переключение между «Истинной» (True) и «Ложью» (False), эти параметры пересылаем на Select . Для передачи данных из окна «Настройки» и с целью уменьшения количества проводников и, как следствие путаницы, используем знакомый элемент Bundle .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Уникальных посетителей темы: 6