- •Минобрнауки россии
- •Аппаратное и программное обеспечение микро- и наносистемной техники
- •28.03.01 «Нанотехнологии и микросистемная техника»
- •305040, Курск, ул. 50 лет Октября, 94
- •«Введение в программную среду LabView»
- •Краткое изложение теоретического материала
- •Краткое изложение теоретического материала
- •Порядок выполнения работы
- •Контрольные вопросы
- •«Основы работы с числовыми и логическими данными»
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •Контрольные вопросы:
- •«Циклы с фиксированным числом операций и циклы по условию»
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •Контрольные вопросы
- •«Структура варианта, функция выбора, узел формула»
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Структура последовательности, диалоговые окна, временные функции»
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Массивы»
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Кластеры »
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Средства визуального отображения LabView - развертки»
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Средства визуального отображения LabView: графики осциллограмм, осциллограммы»
- •Задание 1
- •Задание 2
- •Задание 3
- •« Изучение строк »
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •«Приборы ввода/вывода»
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
- •Краткое изложение теоретического материала
- •Порядок выполнения работы Задание 1
- •Задание 2
- •Задание 3
Порядок выполнения работы Задание 1
1. Запустите Labview, нажав на соответствующую пиктограмму на рабочем столе.
2. Создайте пустой виртуальный прибор.
3. Разместите фронтальную панель и блок-диаграмму, нажав сочетание клавиш CTRL+T
4. Создайте набор контроллеров и индикаторов и расположите их как показано на рисунке.
5. Разработайте алгоритм аналогичный представленному на рисунке.
6. Сохраните в папку с Вашей фамилией и инициалами созданный Вами виртуальный прибор, назвав файл «Построение массива».
Задание 2
1. Запустите Labview, нажав на соответствующую пиктограмму на рабочем столе.
2. Создайте пустой виртуальный прибор.
3. Разместите фронтальную панель и блок-диаграмму, нажав сочетание клавиш CTRL+T
4. Создайте набор контроллеров и индикаторов и расположите их как показано на рисунке.
5. Разработайте алгоритм аналогичный представленному на рисунке.
6. Сохраните в папку с Вашей фамилией и инициалами созданный Вами виртуальный прибор, назвав файл «Полиморфизм».
Задание 3
1. Запустите Labview, нажав на соответствующую пиктограмму на рабочем столе.
2. Создайте пустой виртуальный прибор.
3. Разместите фронтальную панель и блок-диаграмму, нажав сочетание клавиш CTRL+T
4. Создайте набор контроллеров и индикаторов и расположите их как показано на рисунке.
5. Разработайте алгоритм аналогичный представленному на рисунке.
6. Сохраните в папку с Вашей фамилией и инициалами созданный Вами виртуальный прибор, назвав файл «Массив».
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Опишите механизм работы структуры диалоговое окно (Dialog box)?
2. Опишите механизм работы структуры последовательности (Sequence Structure)?
3. Какие временные функции вы изучили?
Лабораторная работа №7
«Кластеры »
Цель работы: научиться использовать кластеры, а также объединять и разделять их. Понять чем кластеры отличаются от массивов.
Приборы и принадлежности: персональный компьютер с программной средой LabView.
Краткое изложение теоретического материала
Как и массив, кластер (cluster) является структурой, группирующей данные. Однако в отличие от массива кластер может группировать данные различных типов (числовые, логические и т.д.). Это понятие аналогично struct в языке программирования С или объектам данных, определенным как элементы класса, в C++ или Java. Кластер может быть мысленно представлен в виде связки проводов, как в телефонном кабеле. Каждый провод в кабеле представляет элемент кластера. Поскольку кластер имеет только один «провод» на блок-диаграмме (несмотря на то, что по нему проходит множество данных разных типов), кластеры уменьшают нагромождение проводников и количество терминалов подключения, необходимых для подпрограмм. В дальнейшем вы обнаружите, что данные в виде кластеров часто появляются во время их вывода на графики и диаграммы.
Доступ к элементам кластера можно получить путем их полного разделения (unbundling) или разделения по индексу элемента. Метод разделения зависит от выбранной вами функции и имеет свою область применения. Разделение элементов кластера можно представить как расщепление разноцветных проводов в телефонном кабеле. В отличие от массивов, которые могут динамически изменять размер, кластеры имеют фиксированный размер или фиксированное количество проводов.
|
|
Объединение данных в кластер |
Разделение кластера |
Вы можете соединить терминалы кластеров только в том случае, если они имеют одинаковый тип; другими словами, оба кластера должны иметь одинаковое количество элементов и соответствующие элементы должны совпадать как по типу данных, так и по их порядку. Принцип полиморфизма может быть также применен и к кластерам при условии совпадения типа данных.
Кластеры часто встречаются при обработке ошибок. На рисунке показаны кластеры ошибок. Error In.ctI и Error Out.ctl, которые используются LabVIEW для передачи сведений об ошибках среди множества виртуальных приборов на блок- диаграмме (например, большинство ВП сбора данных и ВПП ввода/вывода в файл/из файла имеют встроенные кластеры обработки ошибок). Эти кластеры ошибок применяются настолько часто, что их специально выделили для более легкого доступа к ним - соответствующие ВП есть в под палитре Массив и кластер палитры Элементы управления.
Создание элементов управления и отображения для кластеров
С
оздайте
кластер, поместив шаблон Кластер
(Cluster) из подпалитры Массив и Кластер
на лицевую панель. Вы теперь можете
разместить любой объект лицевой панели
внутри кластера. Как в случае
с массивами, допустимо поместить объекты
внутрь кластера напрямую при извлечении
их из палитры Элементы управления
либо перетащить существующий объект и
поместить его в кластер. Объектами
внутри кластера могут быть только
элементы управления либо только
индикаторы. Нельзя поместить элементы
управления и индикаторы в одном кластере,
так как сам кластер должен быть или
первого, или второго типа. Кластер
становится элементом управления или
индикаторы в зависимости от типа первого
внесенного в него объекта. В случае
необходимости можно изменить размеры
кластера с помощью инструмента
перемещения.
Создать кластер из констант на блок-диаграмме вы можете в два этапа аналогично массивам.
Если вы хотите, чтобы визуальные размеры кластера соответствовали объектам внутри него, щелкните правой кнопкой мыши по его границе (не внутри кластера) и выберите опцию Автоматическое установление размера (Autosizing).
Упорядочивание элементов кластера
Элементы кластера имеют логический порядок независимо от их местоположения в рамках шаблона. Первый объект, помещенный в кластер, становится нулевым элементом, второй - первым и т.д. При удалении одного элемента порядок автоматически изменяется. Если вы хотите соединить один кластер с другим, то должны четко отслеживать порядок элементов вашего кластера, поскольку порядок и тип данных должны быть идентичными. Кроме этого, при необходимости сразу разделить весь кластер нужно знать, какое значение соответствует какому выходу в функции Разделить (Unbundle) .
Изменить порядок в пределах кластера можно, вызвав контекстное меню на его границе и выбрав опцию Изменить порядок элементов кластера (Reoder Controls in Cluster). На инструментальной панели появляется новый набор кнопок, а внешний вид кластера изменяется.
Белые окна элементов показывают их текущие порядковые номера, черные окна - новые. Щелчок по элементу присваивает ему номер, отображенный на инструментальной панели. Вы можете ввести новый номер в это поле, прежде чем щелкнуть по объекту.
Если вам не нравятся сделанные изменения, вернитесь к прежнему порядку, щелкнув по кнопке Revert. Если же вы создали желаемый порядок, то можете сохранить его и вернуться к лицевой панели, щелкнув мышью по кнопке ОК. При этом вы выйдете из режима редактирования порядка элементов кластера.
Использование кластеров для подачи и получения данных в/из ВПП
Соединительная панель ВП включает максимум 28 вводов/выводов. Возможно, вы не захотите подавать информацию на все 28 входов при вызове подприбора, так как соединение элементов может оказаться весьма затруднительным делом, и здесь легко допустить ошибку. При объединении ряда элементов управления или отображения в кластер допустимо применять один ввод для передачи или из влечения информации в/из ВПП. Вы можете использовать кластеры, чтобы обойти предел в 28 вводов/выводов, или довольствоваться меньшим количеством входов (что делает их более крупными и легкими для подключения).
Объединение данных
Ф
ункция
Объединить
(Bundle) из палитры Кластер
объединяет отдельные компоненты в
кластер или позволяет заменить элементы
в существующем кластере . Когда вы
помещаете функцию на блок-диаграмму,
она имеет вид иконки слева. Вы можете
увеличить количество входов, вытягивая
угол функции инструментом перемещения.
При подключении к каждому вводу в его
пустом поле появляется символ, указывающий
на тип подключаемых данных. Порядком
элементов результирующего кластера
будет порядок входов в функцию Объединить.
Если вы хотите лишь создать кластер, нет необходимости подключать какой-либо проводник к центральному входу кластера (с названием кластер - cluster) функции Объединить. Но этот вход следует подключать, если вы заменяете элемент кластера.
Будьте осторожны при работе с описанной функцией. Если вы добавите один элемент в кластер без предварительной подгонки размеров функции Объединить на блок-диаграмме, программа не будет работать.
Замена элемента кластера
Е
сли
вы хотите заменить
какой-либо элемент в кластере, то вначале
измените размер функции Объединить
таким образом, чтобы она содержала
столько же входных терминалов, сколько
элементов содержит кластер (в противном
случае вы ползайте разорванный проводник).
Затем соедините кластер со средним
терминалом функции Объединить
(на входах функции Объединить
появятся символы типов данных элементов
внутри кластера). После этого подключите
новые значения к соответствующим входам
функции. Нужно подключиться только к
тем терминалам, элементы которых в
кластере подлежат изменению.
Разделение кластеров
Ф
ункция
Разделить (Unbundle) из палитры Кластер
разделяет кластер на компоненты. Выходные
компоненты расположены сверху вниз в
том же порядке, что и в кластере. Если
компоненты принадлежат к одному типу,
то порядок элементов в кластере является
единственным способом их различения.
Когда вы помещаете функцию на блок-
диаграмму, она имеет вид иконки,
изображенной слева. Увеличить число
выходов можно вытягиванием угла функции
инструментом перемещения. Вам необходимо
изменить размер функции Разделить,
чтобы она содержала столько же выходов,
сколько имеется элементов во входном
кластере, иначе появится разорванный
проводник. Когда вы подключаете кластер
к функции Разделить с правильными
размерами, то в ранее пустых выходных
терминалах появятся символы типов
данных кластера.
Будьте осторожны, пользуясь этой функцией. Если вы добавите один элемент в кластер без предварительной подгонки размеров функции Разделить на блок- диаграмме, то программа не будет работать!
Объединение и разделение по имени
Часто не требуется разделять весь кластер - нужен лишь один или два элемента. Для этого можно воспользоваться функциями Объединить по имени (Bundle by Name) и Разделить по имени (Unbundle by Name).
Ф
ункция
Объединить
по имени
находится в палитре Кластер.
Она обращается к элементам по имени, а
не по порядку (как это делает функция
Объединить).
Здесь вы можете получить доступ только
к необходимым вам элементам. В то же
время функция Объединить
по
имени
не способна создавать новые кластеры;
она вправе лишь заменить один элемент
в существующем кластере. В отличие от
функции Объединить,
среднему входному терминалу функции
Объединить
по имени
всегда необходимо подключение, чтобы
сообщить функции, в каком кластере нужно
заменить элемент.
Ф
ункция
Разделить по имени, которая также
находится в палитре Кластер,
возвращает элементы, имена которых вы
задали. Вам не нужно думать о порядке
элементов кластера или корректировать
размер функции Разделить.
Н
апример,
если вам захочется заменить значение
Воо1еаn2 в
последнем упражнении, можете
воспользоваться функцией Объединить
по имени, не беспокоясь о порядке
элементов кластера или размере функции.
Точно так же при необходимости получить доступ к значению String следует воспользоваться функцией Разделить по имени.
К
ак
только вы подсоедините входной кластер
к функции Объединить по имени
или Разделить по имени, имя первого
элемента кластера появится в окне ввода
или вывода функции. Чтобы получить
доступ к другому элементу, щелкните
инструментом управления («палец») или
ввода текста (А) по вводу или выводу. Вы
увидите перечень имен всех элементов
кластера, имеющих ярлыки. Выберите
нужный, элемент из списка, и его имя
появится в терминале. Вы также можете
получить доступ к этому перечню, щелкнув
правой кнопкой мыши по имени и указав
функцию Выбрать объект (Select Item).
Разрешается изменить размеры обеих
функций, чтобы они отображали столько
элементов, сколько вам необходимо. После
этого можете выбрать каждый компонент
для индивидуального доступа. Не нужно
беспокоиться о том, что программа
перестанет работать при изменении
элементов кластера: функции объединения
и разделения по имени не теряют
работоспособности, пока вы не удалите
элемент, на который они ссылаются.
Взаимозаменяемые массивы и кластеры
Иногда удобно поменять массивы на кластеры и наоборот. Этот трюк может оказаться весьма полезным, поскольку LabVIEW включает в себя намного больше функций, работающих с массивами, чем с кластерами. Например, имеется кластер кнопок на лицевой панели, и вы хотите поменять порядок кнопок на противоположный. Функция Обращение индексов одномерного массива (ReverseID Array) выполнила бы эту операцию, но она работает только с массивами. Не беспокойтесь! Вы можете использовать функцию Кластер в массив (Cluster to Array) для преобразования кластера в массив. Обратная операция осуществляется с помощью функции Массив в кластер (Array to Cluster).
|
|
Функция Массив в кластер |
Функция Кластер в массив |
Функция Кластер в массив конвертирует кластер с количеством элементов N одного типа данных в массив с количеством элементов N того же типа данных. Индекс массива соответствует порядковому номеру в кластере (то есть нулевой элемент кластера становится значением массива с индексом 0). Нельзя применять эту функцию в кластере, содержащем массивы в качестве элементов, так как LabVIEW не позволяет создавать массивы, состоящие из массивов. Также обратите внимание, что при использовании этой функции все элементы в кластере должны быть одного типа.
Функция Массив в кластер преобразует одномерный массив с числом элементов N в кластер с числом элементов N того же типа данных. Для включения этой функции вы должны щелкнуть правой кнопкой мыши по терминалу Массив в кластер и выбрать опцию Размер кластера (Cluster Size) для установления размера выходного кластера, поскольку кластеры, в отличие от массивов, не устанавливают свой размер автоматически. Размер кластера по умолчанию равен 9. Если ваш массив имеет меньшее количество элементов, чем это определено размером кластера, LabVIEW автоматически создаст дополнительные элементы кластера со значениями по умолчанию для типа данных кластера. Однако, если количество элементов входного массива больше величины, установленной в окне размера кластера, то проводник блок-диаграммы, идущий к выходному кластеру, будет разорванным, пока вы не отрегулируете его размер.
Обе функции удобны в использовании, особенно когда нужно показать элементы кластера на лицевой панели, но при этом необходимо управлять индексами элементов на блок-диаграмме. Названные функции находятся в подпалитрах Массив и кластер палитры Функции.
