Проектирование функциональных устройств в программной среде LabVIEW. Практикум
.pdf
№ 3266 М И Н И С Т Е РС Т В О Н АУ К И И В ЫС Ш Е ГО О Б РА З О ВА Н И Я РФ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС»
ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ
Кафедра электротехники и информационно-измерительных систем
М.В. Колистратов А.А. Травин
ПРОЕКТИРОВАНИЕ ФУНКЦИОНАЛЬНЫХ УСТРОЙСТВ В ПРОГРАММНОЙ СРЕДЕ LABVIEW
Практикум
Рекомендовано редакционно-издательским советом университета
Москва 2018
УДК 001.57 К60
Рецензент канд. техн. наук, доц. А.И. Широков
Колистратов М.В.
К60 Проектирование функциональных устройств в программной среде LabVIEW : практикум / М.В. Колистратов, А.А. Травин. – М. : Изд. Дом НИТУ «МИСиС», 2018. – 34 с.
Рассмотрена задача проектирования устройств с использованием прикладного программного обеспечения. Обосновывается эффективность использования стандартных средств разработки, позволяющих получить программный продукт, обеспечивающий выполнение всех основных функций. Изложены основные принципы и приемы программирования в рамках графической среды LabVIEW при выполнении основных этапов разработки.
Предназначен для студентов, обучающихся в магистратуре по направлению подготовки 09.04.03 «Прикладная информатика», изучающих дисциплину «Проектирование функциональных устройств в программной среде
LabVIEW».
УДК 001.57
М.В. Колистратов, А.А. Травин, 2018
НИТУ «МИСиС», 2018
СОДЕРЖАНИЕ |
|
Общие сведение о среде программирования LabVIEW......................... |
4 |
Практическая работа 1. |
|
Форматы для потока данных, применяемые в LabVIEW. |
|
Массивы, кластеры.................................................................................... |
7 |
Практическая работа 2. |
|
Работа с различными структурами языка LabVIEW. |
|
Принцип модульности. Создание подпрограмм................................... |
16 |
Практическая работа 3. |
|
Методы анализа данных. Операции файлового ввода/вывода............ |
22 |
Литература................................................................................................ |
33 |
3
Общие сведение о среде программирования
LabVIEW1
LabVIEW, или Laboratory Virtual Instrument Engineering Workbench
(Среда разработки лабораторных виртуальных приборов), представляет собой среду графического программирования, которая широко используется в промышленности, образовании и научно-исследо- вательских лабораториях в качестве стандартного инструмента для сбора данных и управления приборами. LabVIEW – мощная и гибкая программная среда, применяемая для проведения измерений и анализа полученных данных.
Концепция LabVIEW сильно отличается от последовательной природы традиционных языков программирования предоставлением разработчику простой в использовании графической оболочки, включающей в себя набор инструментов, необходимых для сбора данных, их анализа и представления полученных результатов.
Разработка приложений в среде LabVIEW, в отличие от работы в средах на основе C или Java, имеет одну очень важную особенность. Если в традиционных алгоритмических языках программирование основано на вводе текстовых команд, последовательно образующих программный код, то в LabVIEW используется язык графического программирования. В этом случае алгоритм создается в графической иконной форме (pictorial form), образующей так называемую блокдиаграмму (block-diagram), что позволяет исключить множество синтаксических деталей.
Программы, созданные в среде LabVIEW, называются виртуальными приборами (ВП, virtual instruments – VI), так как они функционально и внешне подобны реальным (традиционным) приборам. Здесь и далее будем называть программы LabVIEW виртуальными приборами (ВП). При этом ВП столь же подобны программам и функциям на популярных языках программирования, таких как C или Basic.
Виртуальный прибор состоит из трех основных частей:
– лицевая панель (Front Panel), представляющая собой интерактивный пользовательский интерфейс ВП. Названа она так потому, что имитирует лицевую панель традиционного прибора (рис. 1). На ней могут находиться средства ввода данных со стороны пользователя (руч-
1 В данном разделе представлены выдержки из книги Трэвис Дж., Кринг Дж. LabVIEW для всех. – М.: ДМК Пресс, 2008. – 880 с.
4
ки управления, кнопки, графические индикаторы и другие элементы управления (controls)), и элементы индикации (indicators), представляющие собой выходные данные программы. Данные вводятся пользователем с помощью клавиатуры и мыши, после чего результаты действия программы появляются на экране монитора;
Рис. 1. Лицевая панель виртуального прибора
– блок-диаграмма (Block Diagram) является исходным программным кодом ВП, созданным на языке графического программирования LabVIEW. Блок-диаграмма представляет собой реально исполняемое приложение. Компонентами блок-диаграммы являются ВП более низкого уровня, встроенные функции LabVIEW, константы и структуры управления выполнением программы (рис. 2). Для того чтобы задать поток данных между определенными объектами, или, что то же самое, создать связь между ними, вы должны нарисовать соответствующие проводники (wires). Объекты лицевой панели отображаются на блок-диаграмме в виде соответствующих терминалов (terminals), через которые данные могут поступать от пользователя в программу и обратно;
5
Рис. 2. Блок-диаграмма
– виртуальный прибор, применяющийся внутри другого ВП, называется виртуальным подприбором (ВПП, SubVI), который аналогичен подпрограмме в традиционных алгоритмических языках. Для того чтобы использовать некоторый ВП в качестве подпрограммы (подприбора) в блок-диаграмме другого ВП, необходимо задать его
иконку (icon) и соединительную панель (connector). Иконка явля-
ется однозначным графическим представлением ВП и может использоваться в качестве объекта на блок-диаграмме другого ВП. Соединительная панель представляет собой механизм передачи данных в ВПП из другой блок-диаграммы. Подобно аргументам и параметрам подпрограммы, соединительная панель определяет входные и выходные данные ВП.
6
Практическая работа 1
ФОРМАТЫ ДЛЯ ПОТОКА ДАННЫХ, ПРИМЕНЯЕМЫЕ В LABVIEW.
МАССИВЫ, КЛАСТЕРЫ
Цель работы: научиться создавать массивы и познакомиться с функциями их обработки. Научиться создавать кластеры на лицевой панели и, используя функции их обработки, собирать и разделять кластеры.
Теоретическое введение Массив – это набор элементов одного типа данных определенной
размерности. Размерность массива определяют его длина (совокупность столбцов), высота (совокупность строк) и глубина. Массив может быть одномерным (вектор), двумерным (матрица) или многомерным.
Элементами массива называют группу составляющих его объектов. Все элементы массива упорядочены. Каждому элементу присвоен индекс, причем нумерация всегда начинается с 0. Таким образом, индексы находятся в диапазоне от 0 до (n – 1), где n – число элементов в массиве. Данные, составляющие массив, могут быть любого типа: численные, логические, строковые. Массив также может содержать элементы графического представления данных и кластеры. Массивы удобно использовать при работе с группами данных одного типа и для накопления данных после повторяющихся вычислений.
Для создания массива элементов управления или индикации данных необходимо выбрать шаблон массива из палитры Controls → Modern → Array& Cluster и поместить его на лицевую панель. Затем в шаблон массива поместить элемент управления или индикации данных. При этом терминал элемента на блок-диаграмме приобретет цвет, соответствующий типу данных элементов массива. Поместить элемент в шаблон массива следует до того, как он будет использоваться на блок-диаграмме. Если этого не сделать, использовать массив будет нельзя, поскольку шаблон массива не будет инициализирован. Подобным образом можно создать массив-константу. Для этого необходимо выбрать шаблон Functions → Array → Array Constant и поместить в него константу необходимого типа.
Кластеры объединяют элементы разных типов данных и играют ту же роль, что и структуры в текстовых языках программирования. Объ-
7
единение нескольких групп данных в кластер устраняет беспорядок на блок-диаграмме и уменьшает количество полей ввода/вывода данных, необходимых подпрограмме ВП. Максимально возможное количество терминалов ввода/вывода данных ВП равно 28. Если лицевая панель содержит более 28 элементов, которые необходимо использовать в ВП, некоторые из них можно объединить в он и связать его с полем ввода/ вывода данных. Как и массив, кластер может быть элементом управления или индикации, однако при этом кластер не может содержать элементы управления и индикации одновременно. В кластере, как и в массиве, все элементы упорядочены, но обратиться по индексу к ним нельзя, необходимо сначала их разделить. Для этого предназначена функция Unbundle By Name, которая обеспечивает доступ к определенным элементам кластера по их имени.
Для создания кластеров из элементов управления и индикации следует выбрать шаблон кластера на палитре Controls → Modern → Array& Cluster и поместить его на лицевую панель. После этого шаблон кластера следует заполнить элементами. Изменить размер кластера можно с помощью курсора.
Задание 1
Выполните следующие шаги для создания ВП, который формирует массив случайных чисел, масштабирует полученный массив и выделяет из него подмножество.
1. Откройте новый ВП и создайте лицевую панель, как показано на рис. 3. Для этого:
–в палитре Controls → Modern → Array, Matrix& Cluster выберите шаблон массива;
–созданному массиву присвойте имя «Массив случайных чисел»;
–поместите внутрь шаблона массива цифровой элемент отображения, расположенный в палитре Controls → Modern → Numeric →
Numeric Indicator;
–с помощью инструмента ПЕРЕМЕЩЕНИЕ измените размер массива таким образом, чтобы он содержал 10 элементов;
–нажмите и удерживайте клавишу Ctrl и, перемещая элемент «Массив случайных чисел», создайте две его копии;
–копиям присвойте имена «Конечный массив» и «Подмножество массива»;
–создайте три цифровых элемента управления и присвойте им имена «Масштабный коэффициент», «Старт подмножества» и «Ко-
8
личество элементов подмножества», в контекстном меню выберите пункт Representation, затем пункт «I32»;
– значение элементов управления данных на данном этапе не изменяйте.
Рис. 3. Лицевая панель для выполнения задания 1
2. Постройте блок-диаграмму, как показано на рис. 4. Для этого:
– выберите функцию Random Number (0-1), расположенную в палитре Function → Numeric. Эта функция будет генерировать случайное число в пределах от 0 до 1;
Рис. 4. Блок-диаграмма программы работы с массивами
9
– выберите цикл For, расположенный в палитре Function → Programming → Structures. Этот цикл на терминале выхода накапливает массив из 10 случайных чисел. Терминалу количества итераций присвойте зна-
чение 10 (Function → Mathematic → Numeric → Numeric Constant);
– выберите функцию Array Subset, расположенную в палитре Function →Programming → Array. Эта функция выдает подмножество массива, начиная со значения, введенного в элементе «Старт подмножества» и будет содержать количество элементов, указанное в элементе «Количество элементов подмножества».
3.Сохраните ВП под именем Работа с массивами.vi
4.Перейдите на лицевую панель, измените значения элементов управления и запустите ВП.
Цикл For совершит 10 итераций. Каждая итерация создаст случайное число и сохранит его в терминале выхода из цикла. В элементе «Массив случайных чисел» отобразится массив из 10 случайных чисел. ВП умножит каждое значение этого массива на число, введенное
вэлемент управления «Масштабный коэффициент», для создания массива, отображаемого в индикаторе «Конечный массив». ВП выделит подмножество из получившегося массива, начиная со значения в элементе «Старт подмножества», длиной, указанной в элементе «Количество элементов подмножества», и отобразит это подмножество в индикаторе «Подмножество массива».
5.Закройте ВП.
Задание 2
Создайте ВП, разделяющий входной массив, состоящий из положительных и отрицательных чисел, на два отдельных массива (массив положительных и массив отрицательных чисел) с использованием свойства автоиндексации.
1. Откройте новый ВП и создайте лицевую панель, как показано на рис. 5. Для этого:
–в палитре Controls → Modern → Array, Matrix& Cluster выберите шаблон массива;
–созданному массиву присвойте имя «Входной массив»;
–поместите внутрь шаблона массива цифровой элемент ввода, расположенный в палитре Controls → Modern → Numeric → Numeric
control;
– с помощью инструмента ПЕРЕМЕЩЕНИЕ измените размер массива таким образом, чтобы он содержал 10 элементов;
10
