Среда графического программирования LabVIEW
LabVIEW как среда моделирования
691.00K
Category: softwaresoftware

Программное обеспечение АИУС

1.

Программное обеспечение АИУС
ПО АИУС представляет собой совокупность программных продуктов
для обеспечения разработки, отладки и осуществления процессов
сбора, обработки, хранения информации и использования ее для
управления объектами.
ПО АИУС разделяется на три группы:
1) операционные системы (ОС);
2) системы программирования (СП);
3) приложения, или пакеты прикладных программ (ППП).
ОС выполняет следующие функции:
- управление данными;
- управление задачами;
- связь с человеком-оператором.
СП представляет собой инструментальную среду программиста,
которая позволяет ему разрабатывать прикладные программы. Это
совокупность средств разработки программ (языки программирования,
текстовые редакторы, трансляторы, редакторы связей, библиотеки
подпрограмм, утилиты и обслуживающие программы), обеспечивающих
автоматизацию составления и отладки программ пользователя.

2.

Приложения включают в себя программные продукты и оболочки
систем. Оболочки информационных систем представляют собой гибкие
программные комплексы, настраиваемые на задачи пользователя.
Наиболее распространенными классами оболочек являются СУБД и
оболочки автоматизированных информационно-поисковых систем
(АИПС)
Программное обеспечение АСУТП выполняет следующие задачи:
1. сбор информации, поступающей с датчиков,
2. обработка информации (первичная и вторичная),
3. управление технологическими объектами,
4. архивирование данных,
5. мониторинг аварийных ситуаций,
6. отображение информации в удобной для человека форме,
7. обмен информацией с другими приложениями.
В АСУТП рекомендовано использовать визуальные языки
программирования стандарта
МЭК 6-1131/3. Применение визуальных
языков программирования позволяет экономить время разработки и
отладки управляющих программ в разы по сравнению с традиционными
текстовыми языками.

3.

В международный стандарт МЭК 6-1131/3 включены 5 языков
программирования:
1. FBD (Function Block Diagram) – язык функциональных блоковых
диаграмм;
2. LD (Ladder Diagram) – язык релейных диаграмм;
3. SFC (Sequential Function Chart) язык последовательных
функциональных схем;
4. ST (Structured Text) – структурированный текст;
5. IL (Instruction List) – список инструкций.
Из этих языков три графических (FBD, LD, SFC), ориентированных на
инженеров и бизнес-аналитиков, и два текстовых (ST, IL),
ориентированных на программистов.
Все названные выше пять языков программирования практически
объединены в одном языке – языке G, разработанном фирмой
National Instruments для ППП LabVIEW.
Большинство разработанных АСУТП имеют также встроенные
языки высокого уровня, как правило Basic (VBasic)-подобные. Они
предоставляют разработчику гибкий инструмент для создания
сложных приложений.

4. Среда графического программирования LabVIEW

LabVIEW (англ. Laboratory Virtual Instrumentation Engineering
Workbench) — это среда разработки и платформа для выполнения
программ, созданных на графическом языке программирования
«G» фирмы National Instruments - NI (США).
В настоящее время LabVIEW используется для измерения и
контроля разнообразных физических процессов, а также в системах
сбора и обработки данных, для управления техническими объектами
и технологическими процессами. Идеологически LabVIEW очень
близка к SCADA-системам, но в отличие от них в большей степени
ориентирована на решение задач не столько в области АСУ ТП,
сколько в области АСНИ.

5.

Структура системы LabVIEW
Программная часть LabVIEW
Средства
управления ВП
Средства индикации
Средства
документирования
Генерирование
исходных данных
Операции
над данными
УСО
Д
У
Среда программирования LabVIEW позволяет реализовать
разнообразные системы: измерительную систему (ИС),
информационно-управляющую систему (ИУС), систему
тестирования (СТ) и систему моделирования (СМ).
Объект

6.

Язык графического программирования G во многом подобен текстовым
языкам программирования, только программа реализуется в виде блок-схемы
Термины LabVIEW и их эквиваленты в текстовых языках

7.

Виртуальный прибор реализуется в двух окнах: в окне Block Diagram
(BD), где размещается блок-схема программы, и в окне Front Panel
(FP), где размещается лицевая панель.
Главное меню в верхней части окон содержит пункты общие с
другими приложениями, такие как File, Edit, View, Help и
специфические пункты меню LabVIEW/
Ниже главного меню располагается инструментальная панель,
которая используется для запуска и редактирования ВП

8.

Лицевая панель – интерфейс пользователя ВП. Она подобна
лицевой панели реального физического прибора. Для ввода данных
используются разнообразные органы управления: ручки, переключатели,
цифровые датчики и т. п. Вывод результатов производится на графические,
цифровые, стрелочные, уровневые и др. индикаторы.
Блок-диаграмма – графический текст программы.
Лицевая панель и блок-диаграмма создаются с помощью палитр.
Таких палитр три: палитра элементов управления и индикации –
Controls Palette, палитра функций – Functions Palette и палитра
инструментов – Tools Palette. Все объекты блок-диаграммы и
лицевой панели берутся из палитр методом перетаскивания
(технология Drag and Drop – перенес и бросил).
Все объекты LabVIEW, свободное рабочее пространство лицевой
панели и блок-диаграммы имеют свое контекстное меню.
Обращение к всплывающему меню производится щелчком правой
кнопкой мыши на объекте, лицевой панели или блок-диаграмме.

9.

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

10.

Типы данных
В LabVIEW используются следующие типы данных:
• Numeric – численный тип.
-Floating point – число с плавающей запятой, отображается в виде
оранжевых терминалов. Может быть представлено в виде single (3
bit), double (64-bit) или extended (128-bit) precision (с одиночной,
двойной или расширенной точностью).
-Integer – целое число, отображается в виде голубых терминалов.
Возможны три представления целых чисел: 8, 16, и 32 бита.
• Boolean – логический тип, отображается в виде зеленых терминалов
• String – строковый тип, отображается в виде розовых терминалов
• Path – путь к файлу, отображается в виде сине-зеленых терминалов
• Array – массивы, включают данные одного типа и принимают
соответствующий им цвет.
• Cluster – кластеры, включают различные типы данных. Кластерный
тип данных отображается коричневым цветом, если все его элементы
численные, или розовым, если элементы кластера являются данными
различных типов.

11.

• Waveform – сигнальный тип данных, является кластером элементов,
содержащим данные численного типа, начальное значение времени и
интервал времени между отсчетами.
• Dinamic – динамический тип, отображается в виде темно-синих
терминалов. Кроме данных сигнала, динамический тип содержит
дополнительную информацию, например, название сигнала или дату и
время его получения. Данные динамического типа можно направлять к
любому элементу отображения или полю ввода, принимающему данные
численного, логического или сигнального типа.
Тип проводника данных,
соединяющего объекты на блокдиаграмме тоже несет в себе
информацию. Тонкая линия
соответствует одиночному
значению (скаляру), толстая –
одномерному массиву, двойная
тонкая – двумерному массиву.
Кластеру, сигнальному и
динамическому типам – в виде
шнура.

12.

Структуры
Вычислительный процесс в LabVIEW организуется с помощью структур
Они используются для выполнения повторяющихся операций над
потоком данных, операций в определенном порядке, наложения условий
на выполнение операций, а также проведения вычислений по формулам
или алгоритму. Структуры являются графическим представлением
соответствующих операторов, используемых в текстовых языках
программирования.
Структуры вызываются из палитры Functions. В подпалитре Structurs
находятся следующие структуры: цикл For Loop (с фиксированным
числом итераций, цикл While (по условию), структура Case (вариант),
структура Sequence (последовательность), структура Event (событие), а
также узел Formula Node (формула), MathScript Node (математический
узел) и др.

13.

А. Цикл For Loop (с фиксированным
числом итераций)
Цикл For Loop выполняет повторяющиеся операции над потоком данных
заданное количество раз. Количество повторений задается числом,
подаваемым на терминал N в левом верхнем углу структуры. Номер
текущей итерации содержится в терминале счетчика итераций i. В
результате выполнения цикла формируется массив, содержащий N
элементов. Аналогичен текстовым операторам For i=0 to N-1 do
{программа} или i=0 until i=N Repeat {программа, i=i+1}

14.

При работе в цикле для передачи данных от текущей итерации к
следующей используется регистр сдвига. Регистр сдвига создается
щелчком правой кнопки мыши на границе цикла и выбором пункта Add
Shift Register из контекстного меню. Регистр сдвига отображается парой
терминалов со стрелками, расположенных друг против друга на
противоположных вертикальных границах цикла.
В точке пересечения проводником границы структуры образуется
терминал, который называют туннелем. Если он имеет вид
квадрата с вписанными квадратными скобками (туннель
автоматического индексирования), то с него снимается массив
всех вычисленных данных. При отключенном индексировании
(квадрат однотонный) тип данных не изменяется и через туннель
проходит последнее рассчитанное значение.

15.

B. Цикл While Loop (по условию)
Цикл While Loop выполняется до тех пор , пока не выполнится
логическое условие выхода из цикла. Аналогичен текстовым
операторам Do {программа} While {условие} или Repeat {программа}
Until {условие}. По умолчанию цикл выполняется пока на терминал
условия выхода из цикла не поступит значение TRUE

16.

C. Cтруктура выбора Case
Структура Case аналогична оператору или
логическим операторам (if…then…else) в текстовых
языках программирования. Она имеет две или более
блок-диаграмм вариантов.
Переключение вариантов с целью разработки блок-диаграмм или
просмотра вариантов осуществляется селектором
,
расположенным сверху графического изображения структуры.
Выбор варианта, который будет выполняться, производится с помощью
терминала селектора варианта . Если варианта два, то на терминал
селектора варианта подается логическая переменная, а варианты
обозначаются TRUE и FALSE. Если вариантов больше, то используются
переменные целочисленного или строкового типов.

17.

Функции ожидания
Эти функции используются для синхронизации действий. Функция Wait
Until Next ms Multiple обеспечивает интервал между итерациями,
равный или кратный введенному пользователем.

18.

Похожее действие у функции Wait(ms). Она добавляет время ожидания
ко времени выполнения программы, т.е. фиксирует время между
завершением i-й итерации цикла и началом (i+1)-ой итерации. Ее
графическое изображение .

19.

Графическое отображение
данных
Графические индикаторы используются для наглядного отображения
информации. В LabVIEW имеется несколько видов графических индикаторов.
Нужный тип индикатора можно выбрать в подпалитре Graph палитры All
Controls

20.

А. График диаграмм (Waveform Chart)
Графический индикатор Chart подобен шлейфовому осциллографу.
Можно использовать три режима отображения данных: strip chart, scope
chart и sweep chart (ленточная диаграмма, ограниченная диаграмма,
скользящая диаграмма).
В режиме strip chart экран подобно бумажной ленте прокручивается
слева направо. В режиме scope chart используется периодическая
развертка; при достижении графиком правой границы экран очищается,
и график начинается слева. В режиме sweep chart развертка тоже
периодическая, но экран не очищается, а новые данные отделяются от
старых вертикальной линией – маркером.

21.

В. График осциллограмм (Waveform Graph)
Графический индикатор Graph подобен обычному осциллографу. Он
используется для графического отображения массива данных.
Одномерный массив представляется в виде точек на графике. По оси X
откладывается индекс элемента массива, начиная с 0, а по оси Y
значение этого элемента. Кластеры отображаются с установленным
начальным значением x, приращением ∆x между соседними
элементами массива и массивом данных по шкале Y.
Можно построить и двухкоординатные графики, если на входные
терминалы ВП Graph подать кластеры, содержащие массивы x и y.
Необходимые настройки индикатора Graph производятся с помощью
контекстного меню.

22. LabVIEW как среда моделирования

По своему назначению LabVIEW является пакетом измерения и управления,
однако его возможности позволяют использовать пакет и для моделирования
устройств и систем.
Основными задачами моделирования являются исследование процессов
функционирования и оптимизация параметров и , возможно, структуры системы.
Для этого необходимы средства для генерирования разнообразных процессов,
их обработки и индикации результатов.
Генерирование
процессов
Обработка
процессов
Индикация
результатов
Строго говоря, процессами в LabVIEW можно считать только два типа данных:
сигнальный (waveform) и динамический (dinamic), так как они представляют
последовательность значений во времени. Но значения процесса задаются
массивом, поэтому генерирование массива эквивалентно генерированию
процесса. Преобразование массива в процесс сводится к образованию
кластера, в котором определены время начала последовательности и интервал
между отсчетами.

23.

1. Генерирование процессов
В LabVIEW используется несколько способов генерирования процессов.
1. Использование Экспресс ВП Simulate Signal. Он вырабатывает
процесс в виде динамического типа данных: сигнал синусоидальной,
треугольной или прямоугольной формы (по выбору) и шум с
различными законами распределения. Можно образовать аддитивную
смесь сигнала с шумом.
Параметры сигнала: амплитуда, частота, среднее значение, и шума:
закон распределения, дисперсия, а также количество выборок в
секунду и длительность реализации устанавливаются на панели
конфигурирования прибора.

24.

25.

2. Использование ВП для
генерирования детерминированного
сигнала определенной формы (для
каждой формы сигнала свой ВП) или
случайного процесса с определенным
законом распределения. ВП находятся
в подпалитре Waveform Generation.
Параметры генерируемого процесса
задаются числами, которые подаются
на терминалы ВП.

26.

3. Использование структуры Formula Node, охваченной структурами For
Loop или While Loop. Структура Formula Node обеспечивает расчет
одного значения процесса по записанной внутри нее формуле или
алгоритму, а структура цикла – расчет массива нужной длины. Этот
способ позволяет сгенерировать сигнал такой формы, которая не
обеспечивается имеющимися ВП.

27.

Фильтрация сигналов
Фильтрация сигналов используется для ослабления помех,
сопровождающих информационный сигнал.
Входной процесс x(t) –
данные с помехами
Фильтр
Выходной процесс y(t) –
отфильтрованные данные
Рассмотрим программную реализацию фильтров, использующихся в
АСУТП реализованные в LabVIEW.
1. Фильтр скользящего среднего (ФСС).
Входной и выходной процессы представлены отсчетами, следующими
через интервал дискретизации ∆t: x(t) → x(n∆t) = x[n] и y(t) → y(n∆t)
= y[n] . В цифровом фильтре реализуется алгоритм
При малом М ФСС можно реализовать в структуре For Loop с
использованием сдвигового регистра, запоминающего М – 1 значение
входного сигнала от x[n-1] до x[n-M+1].

28.

2. Фильтр экспоненциального сглаживания. Его уравнение
Такой фильтр легко реализуется в структуре For Loop

29.

Принятие решений в ВП
Одной из функций АСУТП является предупреждение о выходе
контролируемого параметра за заданные пределы. В LabVIEW для
этого можно использовать функцию Select.
В зависимости от значения на логическом входе функция выбирает
одно из двух значений. Если на логическом входе будет значение
TRUE, то на выходе функция выдаст значение, поданное на вход t,
если же на логическом входе FALSE, то на выходе будет значение,
поданное на вход f.
Пример: Блок-диаграмма ВП, предупреждающего об отклонении
переменной U(t) от заданного значения UЗАД(t) на недопустимую
величину (аларм типа Deviation);

30.

Если контролируемый процесс больше верхнего порога, на выходе
функции сравнения будет TRUE, а на выходе функции Select –
«Больше». В противном случае – «Норма». Если нижний порог будет
меньше контролируемого процесса, то на выходе функции сравнения
будет TRUE, на выходе функции Select – «Больше» или «Норма». В
противном случае – «Меньше».
English     Русский Rules