Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Цель: Использовать график интенсивности.



В этом упражнении используется ВП, отображающий интерференционную картину на графике интенсивности. Этот же ВП используется для отображения двумерного массива данных на графике.

 

Лицевая панель.

 
 

Откройте и запустите ВП Пример графика интенсивности.vi. По умолчанию, ВП выводит на график картину интерференции волн ( Рис. 122 ). Узел атрибутов на блок-диаграмме задает диапазон применяемых цветов, который может быть изменен редактированием массива констант Color Array.

Рис.122 Картина интенсивности волн на графике.

Переведите переключатель График в положение Данные пользователя и введите значения от 0 до 10 в массив. Запустите ВП. Обратить внимание, как значение каждого элемента преобразуются в цвет на графике интенсивности ( Рис. 123 ).

 

Рис.123 Преобразование значения каждого элемента в цвет на графике интенсивности.

 

Закройте ВП, не сохраняя изменений.

Создание трехмерных сцен (дополнительно).

Создание трехмерной сцены может использоваться с целью визуализации какого-либо физического процесса. Вы можете создавать трехмерные объекты, задавать их форму, размер, текстуру, способ движения, способ появления и способ взаимоотношения с другими объектами внутри сцены.

Для работы с 3D объектами используйте виртуальные приборы, находящиеся на палитре Functions»Programming»Graphics & Sound»3D Picture Controls. Данная палитра содержит следующие вложенные палитры:

• Object VIs:

Create Object VI – создает ссылку на 3D объект.

Find Object VI – находит ссылку на 3D объект по ссылке на 3D сцену и имени 3D объекта.

 

Примечание. Вы также можете использовать свойства SceneObject properties и методы SceneObject methods для того, чтобы создать ссылку на 3D объект.

 

File Loading VIs () - Используйте виртуальные приборы, находящиеся в данной закладке для добавления существующих файлов, содержащих модели или сцены на 3D сцену.

 

Geometries VIs – на данной палитре находятся ВП с помощью которых можно задать геометрическую форму для 3D объекта:

Create Cone VI – создает конус с заданными параметрами.

Create Cylinder VI – создает цилиндр с заданными параметрами.

Create Box VI – создает параллелепипед с заданными параметрами.

Create Sphere VI – создает сферу с заданными параметрами.

Create Height Field VI – конвертирует двумерный массив данных в 3-х мерный объект.

Create Mesh VI – создает 3-х мерную координатную сетку.

Примечание. Вы также можете использовать свойства SceneGeometry properties и методы SceneGeometry methods для того, чтобы задать геометрическую форму 3D объекта.

 

Transformations VIs – позволяют задать положение 3D объекта на сцене, вращать его, перемещать и масштабировать.

 

Helpers VIs – позволяют производить различные операции со сценой в целом. Используя виртуальные приборы, находящиеся в этой закладке, Вы можете сконфигурировать отдельное окно для сцены ( Setup Window VI ), задать плоскость, разрезающую сцену ( Create Clip Plane VI ), добавить источники света ( New Light VI ), добавить текстуру для 3D объекта ( Texture VI ) и создать кластер RGBA кластер для задания цвета объекта ( Color Change VI ).

 

Для конфигурирования 3D сцены Вы также можете использовать следующие свойства и методы:

- SceneWindow properties – для выполнения сцены в отдельном окне, конфигурирования окна и установки способа взаимодействия камеры со сценой.

- SceneClipPlane properties – для установки плоскостей разреза на сцене.

- SceneLight properties – для установки на сцену источника света.

- SceneTexture properties и SceneTexture methods – для задания текстуры для 3D объекта.

 

Для большей информации о 3D picture control Вы можете обратиться к LabVIEW Help. Найдите по содержанию пункт Fundamentals»Graphics and Sound VIs. Кроме того, можно посмотреть пример виртуального прибора, моделирующего движение солнца, луны и земли. Он находится в папке labview\examples\picture\3D Picture Control.

 

Краткое изложение пройденного материала, советы и секреты.

· График Диаграмм ( Waveform Chart )– это специальный цифровой элемент отображения, предназначенный для отображения одной и более диаграмм.

· График Диаграмм имеет три режима отображения данных:

- strip chart представляет собой экран, прокручиваемый слева направо подобно бумажной ленте.

- scope chart, по достижении правой границы окно диаграммы очищается, и заполнение диаграммы начинается с левой границы.

- sweep chart, в отличие от режима scope chart, окно диаграммы не очищается, а новые данные отделяются от старых вертикальной линией – маркером.

· График Осциллограмм ( Waveform Graph ) и двухкоординатный график Осциллограмм ( XY graph ) отображают данные из массивов.

· Для редактирования графика или изменения настроек графика Диаграмм необходимо щелкнуть по нему правой кнопкой мыши.

· На один график можно вывести более одной осциллограммы с помощью функции Build Array, расположенной в палитре Functions»Programming»Array. На двухкоординатный график Осциллограмм данные вводятся с помощью функции Bundle, расположенной в палитре Functions»Programming»Cluster & Variant.

· Для визуализации трехмерных данных можно воспользоваться графиками и таблицами интенсивности. Третья координата отображается цветом в соответствии с определенной цветовой схемой. Графики и таблицы интенсивности часто применяются в задачах спектрального анализа, визуализации температуры и обработки изображений.

· При выводе данных на диаграмму или график удобно использовать окно контекстной справки Context Help.

 

Дополнительные упражнения.

Создайте ВП, строящий два графика: график произвольных чисел и бегущее среднее по четырем точкам на графике Диаграмм в режиме sweep chart. Воспользуйтесь следующими советами:

 Используйте цикл For (N=200) вместо цикла While.

 Используйте три левых терминала сдвигового регистра для усреднения последних четырех значений.

 Для генерации данных используйте функцию Random Number (0- 1), расположенную в палитре Functions»Programming»Numeric.

 Для объединения произвольных чисел с их средним значением для построения на одном графике используйте функцию Bundle, расположенную в палитре Functions»Programming»Cluster & Variant.

 

Сохраните ВП под именем Бегущее среднее.vi

Создайте ВП для непрерывного измерения температуры. Данные выводите на график Диаграмм в режиме scope chart с задержкой в 1 секунду. Если температура превысит предельное значение, введенное в соответствующий элемент управления, на лицевой панели должен загореться красный светодиод. График Диаграмм должен отображать текущие и предельные значения измерений температуры. Необходимо предусмотреть возможность изменения предельных значений температуры с помощью элементов отображения.

Сохраните ВП под именем Предел температуры.vi

Измените ВП, созданный в упражнении 7-8 так, чтобы он отображал только максимальные и минимальные значение текущих измерений температуры.

Совет Используйте сдвиговый регистр и две функции Max & Min,

расположенных в палитре Functions»Programming»Comparison.

Сохраните ВП под именем файла Предел температуры (Max-Min).vi

Постройте на графике интенсивности функцию zx, y  sin c 2 x 2 y 2 . С помощью курсора в виде горизонтальной линии указать сечение графика, которое должно отображаться на отдельном графике.

Сохраните ВП под именем Профиль интенсивности.vi

Создайт еВП, отображающий графики функций

( y ax2 b, y ax2 bx c, aexpbx ) с помощью XY graph иМасштабирующей оси графика в соответствии с заданными параметрами.

Совет Для задания масштаба графика используйте элемент Property node.

 

Сохраните ВП под именем Масштабирование графика.vi.

Лекция 8.

Принятие решений в ВП и структуры.

В этом уроке излагаются методы принятия решений в ВП, а также рассказывается о работе со структурами, помогающими упростить выполнение различных математических операций. В частности, рассматриваются функция Select, структура Case, узел Формулы ( Formula Node ) и узел Математики ( MathScript Node ). В уроке также описываются возможности ВП Formula Express VI.

 

В этом уроке изложены вопросы:

A. Функция Select и принятие решений.

B. Использование структуры Case.

C. Использование узла Формулы.

D. Использование узла Математики.

 

Функция Select и принятие решений.

Каждый ВП до этого места курса выполнялся в порядке, определяемом потоком данных. Однако, бывают случаи, когда по ходу программы должно быть принято решение. Например, если происходит событие A, то необходимо сделать B, а если происходит C – то D.

В программах, написанных на текстовых языках программирования, эта задача решается операторами if – else, операторами case, switch и т.д. В LabVIEW реализовано много различных способов принятия решений. Самый простой из них - функция Select.

 

Функция Select.

Функция Select, расположенная в палитре Functions»Programming»

Comparison, в зависимости от значения на логическом входе выбирает

одно из двух значений. Если на логическом входе будет значение TRUE, то выходе функция выдаст значение, поданное на вход t, если же на логическом входе FALSE, то возвращается значение с поля f.

Функция Select использовалась в упражнении 3-3, ВП Термометр, для определения температурной шкалы. Блок-диаграмма упомянутого ВП приведена ниже ( Рис. 124 ).

Рис.124

 
 

Блок – диаграмма ВП Термометр.

 

При необходимости принимать более сложные решения может понадобиться структура Case.

 

Структура Case.

Структура Case, показанная слева, имеет две или более поддиаграммы вариантов. Только одна поддиаграмма варианта видима в данный момент времени и только одна поддиаграмма варианта работает при выполнении данной структуры. Входное значение терминала селектора структуры определяет, какая поддиаграмма будет выполняться в данный момент времени. Структура Case аналогична операторам case или логическим операторам (if...then...else) в текстовых языках программирования.

Селектор структуры Case, расположенный сверху графического изображения Структуры, показанный слева, состоит из указателя значения варианта в центре и стрелок прокрутки по сторонам. Эти стрелки используются для просмотра возможных Вариантов.

 
 


Значение, подаваемое на терминал селектора варианта, показанный слева, определяет, какая поддиаграмма структуры, или вариант, будет выполняться. Допустимо использовать целочисленный, логический, строковый типы, а также тип перечисления в качестве значения, подаваемого на терминал варианта. Терминал варианта может располагаться в любом месте левой границы структуры Case. Если терминал Варианта логического типа, то структура состоит из двух логических вариантов TRUE и FALSE. Если терминал варианта имеет один из следующих типов: целочисленный, строковый или перечисления, то количество вариантов может достигать 231-1 вариантов.

Для использования структуры Case необходимо отметить вариант по умолчанию. Вариант по умолчанию или поддиаграмма по умолчанию выполняется, если значение терминала варианта выходит за пределы диапазона или не существуют вариантов для возможных значений терминала варианта.

 

Щелчок правой кнопки мыши на границе структуры Case позволяет добавлять, дублировать, перемещать и удалять варианты (поддиаграммы), а также отмечать вариант по умолчанию.

 

Выбор варианта.

В качестве примера использования структуры Case вместо функции Select приведена измененная блок-диаграмма ВП Термометр (Рис. 125). На переднем плане структуры Case показан логический вариант TRUE.

Рис.125

 
 

Измененная блок-диаграмма ВП Термометр.

 

Определение варианта осуществляется либо выбором значения на селекторе структуры Case, либо вводом значения с помощью инструмента ВВОД ТЕКСТА ( Рис. 126 ).

Рис.126

 
 

Определение варианта.

При выборе какого-либо варианта, он появляется на переднем плане, как показано на следующей блок-диаграмме ( Рис. 127 ).

Рис.127

 
 

Блок – диаграмма с выбранным вариантом.

 

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

Если подать число с плавающей точкой на терминал селектора варианта, LabVIEW округлит это значение до ближайшего четного целого. Если число с плавающей точкой введено непосредственно в селектор варианта, то оно окрашивается в красный цвет и должно быть удалено или отредактировано.

 

Терминалы входа и выхода.

Структура Case допускает использование входных и выходных терминалов данных. Терминалы входных данных доступны во всех поддиаграммах, но их использование поддиаграммой структуры необязательно. Создание выходного терминала на одной поддиаграмме приводит к его появлению на других поддиаграммах в том же самом месте границы структуры. Если хотя бы в одной поддиаграмме выходной терминал не определен, то поле этого терминала окрашивается в белый цвет, что говорит об ошибке создания структуры. Необходимо определять значения выходных терминалов во всех вариантах (поддиаграммах). Кроме того, выходные терминалы должны иметь значения совместимых типов.

Для определения значения выходного терминала следует правым щелчком мыши по терминалу вызвать контекстное меню и выбрать пункты: Create»Constant или Create»Control.

 

Примеры.

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

 

Логическая структура Case.

Ниже на рисунке приведен пример логической структуры Case (Рис. 128). Варианты структуры наложены друг на друга для упрощения иллюстрации.

 

Рис.128

 
 

Пример логической структуры Case.

 

Если в терминал логического элемента управления, соединенный проводником данных с терминалом селектора варианта, введено значение TRUE, то выполняется сложение; если введено значение FALSE, то выполняется вычитание значений числовых элементов управления.

Целочисленная структура Case.

Ниже на рисунке показан пример целочисленной структуры Case (Рис. 129).

Рис.129

 
 

Пример целочисленной структуры Case.

Терминал Integer соответствует элементу управления ring control (списка с циклическим перебором значений), расположенного в палитре Controls»Modern»Ring & Enum. Если значение элемента управления ring control равно 0 (сложить), то ВП складывает числа; если равно 1 (вычесть), то ВП производит вычитание чисел. Если значение элемента управления отлично от 0 (сложить) и 1 (вычесть), то ВП складывает числа, т.к. этот вариант выполняется по умолчанию.

 

Строковая структура Case.

Ниже на рисунке показан пример строковой структуры Case (Рис. 130).

Рис.130

 
 

Пример строковой структуры Case.

Если в поле элемента управления введена строка add, то ВП производит сложение чисел и вычитает их, если введено значение subtract.

 

Структура Case по перечислениям.

Ниже на рисунке показан пример структуры Case по перечислениям ( Рис. 131 ).

Рис.131

 
 

Пример структуры Case по перечислениям.

Структура Case для кластера ошибок

Ниже на рисунке показан пример структуры Case для кластера ошибок ( Рис. 132 ).

Рис.132

 
 

Пример структуры Case для кластера ошибок.

 

В этом примере на терминал селектора структуры Case подается кластер ошибок error out. В этом случае есть только два варианта структуры: Ошибка и Нет ошибки, для которых граница структуры имеет красный и зеленый цвет соответственно. Структура Case выполняет вариант, основываясь на информации о наличии ошибки.

Структура Case реагирует только на логическую переменную status кластера ошибок.


 

Упражнение 8-1 ВП Извлечение квадратного корня

Цель: Изучить структуру Case.

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

 

Лицевая панель.

1. Откройте новый ВП и создайте лицевую панель, как показано ниже ( Рис. 133).

Рис.133

 
 

Лицевая панель.

 
 

Блок-диаграмма.

2. Создайте блок-диаграмму, показанную ниже на Рис. 134 :

 

Рис.134 Блок – диаграмма.

Поместите на блок-диаграмму структуру Case, расположенную в палитре Functions»Programming»Structures.

Используйте стрелки уменьшения или увеличения селектора структуры для выбора варианта FALSE.

Поместите на блок-диаграмму функцию Greater or Equal to 0?, расположенную в палитре Functions»Programming»Comparison. Функция возвращает значение TRUE, если число больше или равно 0.

Щелкните правой кнопкой мыши по численной константе и в контекстном меню выберите пункт Format & Precision. Установите Digits of Precision равным 1, выберите вид представления Floating Point Notation и нажмите кнопку OK.

Поместите на блок-диаграмму One Button Dialog, расположенный в палитре Functions»Programming»Dialog & User Interface. Это диалоговое окно будет отображать сообщение «Ошибка… Отрицательное число».

Щелкните правой кнопкой мыши по полю ввода/вывода message функции One Button Dialog и в контекстном меню выберите пункт Create»Constant. Введите текст «Ошибка… Отрицательное число». Для получения более подробной информации смотрите Урок 9, Строки и файловый ввод/вывод.

3. Выберите вариант TRUE.

 

 
 

Поместите функцию Square Root на блок-диаграмму, как показано ниже ( Рис. 135 ). Функция размещена в палитре Functions»Programming» Numeric. Она возвращает квадратный корень входного числа.

Рис.135 Блок – диаграмма с функцией Square Root.

 

4. Сохраните созданный ВП под именем Извлечение квадратного корня.vi


Запуск ВП.

5. Отобразите лицевую панель и запустите ВП.

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

Если входное значение элемента управления Число положительно, то выполнится поддиаграмма варианта TRUE и вычисляется значение квадратного корня. Если значение элемента Число является отрицательным, то выполнится поддиаграмма варианта FALSE, которая возвращает –99999, 0 и отображает диалоговое окно с сообщением «Ошибка… Отрицательное число ».

6. Закройте ВП.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-10; Просмотров: 830; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.07 с.)
Главная | Случайная страница | Обратная связь