Программа учебной практики по ПМ02 по специальности 15.02.11 (1 курс)
Оценка 5

Программа учебной практики по ПМ02 по специальности 15.02.11 (1 курс)

Оценка 5
Компьютерные программы +1
docx
информатика
Взрослым
10.09.2019
Программа учебной практики по ПМ02 по специальности 15.02.11 (1 курс)
Методическое пособие предназначено для выполнения практических работ по дисциплине "Учебная практика" по профессиональному модулю ПМ02 "Осуществление комплекса работ по узловой сборке и пусконаладке промышленных роботов на технологических позициях роботизированных участков" по специальности 15.02.11 "Техническая эксплуатация и обслуживание роботизированного производства" В методическом пособии представлены практические работы в количестве 18 штук в среде графического программирования LabVIEW
15.02.11 пм02 для 1 курса.docx

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ ХАБАРОВСКОГО КРАЯ

Краевое государственное автономное

профессиональное образовательное учреждение

«Губернаторский авиастроительный колледж

г. Комсомольска – на - Амуре (Межрегиональный центр компетенций)»

 

 

СОГЛАСОВАНО

              УТВЕРЖДАЮ

Зам. директора по ПР УПЦ

               Директор УПЦ

_______________ О. В. Большакова

_______________ О. И. Киница

«___» ________2018 г.

               «___» ________2018 г.

 

 

 

 

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ ДЛЯ ВЫПОЛНЕНИЯ

ПРАКТИЧЕСКИХ РАБОТ

По дисциплине «Учебная практика»

 

ПМ 02 Осуществление комплекса работ по узловой сборке и пусконаладке промышленных роботов на технологических позициях роботизированных участков

По специальности 15.02.11 Техническая эксплуатация и обслуживание роботизированного производства

 

 

 

 

 

г. Комсомольск – на – Амуре

2018 г.

 

 

 

 

 

 

 

 

 

Организация разработчик: Краевое государственное автономное

                            профессиональное образовательное учреждение

                      «Губернаторский авиастроительный колледж

                                     г. Комсомольска – на - Амуре (Межрегиональный                  

                                     центр компетенций)»

 

Разработчик:   

 

Хрипкова В.А., мастер производственного обучения КГА ПОУ ГАСКК МЦК

 

 

 

 

 

 

 

 

КГА ПОУ ГАСКК МЦК

г. Комсомольск – на - Амуре

ул. Культурная д.3

тел.: (4217) 26-50-54

 

 

 

 

 

 

 

 

 

СОДЕРЖАНИЕ

 

Практическая работа 1. Создание виртуального прибора на основе шаблона

4

Практическая работа 2. Создание виртуального прибора «Преобразование °С в °F»

19

Практическая работа 3. Создание виртуального прибора для использования в качестве подпрограммы. Виртуальный прибор «Термометр»

24

Практическая работа 4. Создание виртуального прибора «Изменение температуры во времени»

31

Практическая работа 5. Разработка виртуального прибора с возможностью задания амплитуды и функции отображения

38

Практическая работа 6. Работа с массивами

45

Практическая работа 7. Создание кластеров из элементов управления и отображения данных. Работа с кластерами. Масштабирование кластера

53

Практическая работа 8. Графическое отображение данных

58

Практическая работа 9. Строки и таблицы

67

Практическая работа 10. Создание виртуального прибора для генерации сигнала и отображения результатов в виде таблицы

74

Практическая работа 11. Создание виртуального прибора для анализа сигналов

82

Практическая работа 12. Блок схема. Элементы управления и индикаторы. Цикл For Loop. Запись данных в файл

93

Практическая работа 13. Интерфейс пользователя. Символьная строка. Массивы и работа с ними

105

Практическая работа 14. Работа со строками и файлами

116

Практическая работа 15. Массивы

122

Практическая работа 16. Графики

126

Практическая работа 17. Физические процессы, конденсат и генератор

136

Практическая работа 18. Регистратор

140

 

 


 

ПРАКТИЧЕСКАЯ РАБОТА 1

Создание виртуального прибора на основе шаблона

 

Цель работы:

- ознакомиться с основами работы в программе LabVIEW;

- изучить основные элементы управления;

- создать виртуальный прибор на основе шаблона.

Краткие теоретические сведения

LabVIEW является идеальным программным средством для создания систем измерения, а также систем автоматизации управления на основе технологии виртуальных приборов.

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

Рисунок 1 – Окно запуска программы

Blank VI – пустой виртуальный прибор;

Empty Project – новый проект;

VI from Template – виртуальный прибор из шаблона;

More – еще.

При нажатии на Blank VI программа откроет два окна Untitled 1 Block Diagram (блок диаграмма) и Untitled 1 Front Panel (лицевая панель). Совместно с Front panel открылось диалоговое окно Controls.

Лицевая панель – это пользовательский интерфейс виртуального прибора (ВП). Окно лицевой панели представлено на рисунке 2.

Рисунок 2 – Лицевая панель

На лицевой панели располагаются следующие пиктограммы:

  - пуск выполнения программы; если в программе имеются ошибки, то данная кнопка расколота на две части;

  - запуск программы в циклическом режиме;

  - остановка выполнения программы;

  - пауза в выполнении программы;

  - стиль текстового оформления;

  - выравнивание объектов в линию;

 - равномерное распределение объектов по всему окну диаграммы;

 - изменить размеры объекта;

  - переупорядочивание.

 - иконка и соединительная панель (Icon and connector pane). Идентифицирует ВП таким образом, чтобы его можно было использовать в другом ВП.

На лицевой панели располагаются элементы управления (controls) и индикаторы (indicators), которые являются интерактивными входными и выходными терминалами ВП, соответственно.

Элементами управления могут быть:

- регуляторы;

- кнопки;

- переключатели;

- другие входные приборы.

Элементы управления имитируют входные устройства прибора и подают данные на блок диаграмму ВП.

В качестве индикаторов могут быть использованы:

- графики;

- светодиоды;

- другие устройства отображения.

Индикаторы имитируют выходные устройства прибора и отображают данные, которые блок диаграммы получает или генерирует.

Блок-диаграмма – это графический исходный код. Объекты лицевой панели представляются на блок-диаграмме как терминалы. На рисунке 3 представлен пример блок-диаграммы, которая содержит простейшие объекты.

Терминалы являются входными и выходными портами, через которые идет обмен информацией между лицевой панелью и блок-диаграммой. Данные, которые вы вводите в элементы управления лицевой панели (a и b рисунок 3) поступают на блок-диаграмму через терминалы элементов управления. Данные затем поступают на функции Add (сложение) и Subtract (вычитание). Когда функции Add и Subtract завершат свои внутренние вычисления, на их выходах будут выработаны новые значения. Данные поступают на индикаторные терминалы, где они покидают блок-диаграмму, поступают на лицевую панель и появляются на индикаторах лицевой панели (a+b и a-b,  рисунок 3).

Рисунок 3 – Пример блок-диаграммы и соответствующей лицевой панели

Узлы – это объекты на блок-диаграмме, которые имеют входы и/или выходы и выполняют операции, когда ВП запускается. Они аналогичны командам, операторам, функциям и подпрограммам текстовых языков программирования. На рис. 3 функции Add и Subtract являются узлами.

Проводники – это связи, посредством которых данные распространяются по блок-диаграмме. На рисунке 3 проводники соединят терминалы элементов управления и индикаторов с функциями Add и Subtract. Каждый проводник имеет единственный источник данных, но его можно соединять с многими ВП и функциями, которые читают эти данные. Проводники имеют разные цвета, стили и толщину в зависимости от их типа данных. Поврежденные проводники имеют вид черных пунктирных линий с крестиком красного цвета.

Для обеих панелей (лицевая панель и блок-диаграмма) доступна панель Tools Palette (рисунок 4), включающая набор управляющих кнопок для изменения режима редактирования.

Перечислим назначение каждой кнопки на этой панели инструментов:

  – автоматическое определение инструмента;

  – служит для изменения позиций выключателей и кнопок, управления значениями цифровых регуляторов, настройки виртуальных осциллографов и др;

Рисунок 4 – Панель Tools Palette

  – выделение, перемещение объектов, изменение их размера;

  – открытие и редактирование текстового окна;

  – служит для соединения объектов на функциональной панели;

  – сокращенное меню объекта;

  – перемещение рабочей области панели в окне;

  – для размещения и снятия точек остановки выполнения программы на функциональной панели;

  – для размещения на функциональной панели локальных окон для отображения текущих значений данных, передаваемых в ходе выполнения программы;

  – выбор текущего цвета из имеющихся на панели;

  – раскрашивание объектов и фона.

Задание. Создать ВП, который генерирует сигнал и выводит этот сигнал на графический индикатор (график осциллограмм).

После того, как вы завершите выполнение работы, лицевая панель виртуального прибора должна принять вид, показанный на рисунке 5.

При запуске LabVIEW на экране появится окно первоначального запуска Getting Started, показанное на рисунке 1.

Порядок выполнения:

Создание нового ВП из шаблона

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

Рисунок 5 – Лицевая панель ВП Получение сигнала

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

1. Запустите LabVIEW.

2. В окне Getting Started щелкните по ссылке VI from Template (ВП из Шаблона) чтобы появилось диалоговое окно New.

3. Из списка Create New выберите VI → From Template → Tutorial (Getting Started) → Generate and Display (ВП → Из шаблона → Обучение (Введение) → Генерация и Отображение).

Этот шаблон предназначен для создания ВП, который генерирует и отображает сигнал. Предварительный просмотр и краткое описание шаблона ВП можно увидеть в разделе Description (Описание). На рисунке 6 показано диалоговое окно New и эскиз шаблона ВП Генерация и Отображение.

4. Щелкните OK, чтобы создать ВП из шаблона. Также для этого можно дважды щелкнуть по названию шаблона ВП в списке Create New.

5. Изучите лицевую панель ВП. Интерфейс пользователя, или лицевая панель, имеет серый фон рабочего пространства и включает элементы управления и индикаторы. Строка заголовка лицевой панели указывает, что это окно – лицевая панель для ВП Генерация и Отображение.

Рисунок 6 – Диалоговое окно New

Примечание: Если лицевая панель не видна, можно сделать ее ви-димой/активной, выбрав меню Window → Show Front Panel (Окно → Показать Лицевую панель). Вы всегда можете переключиться между окном лицевой панели и блок-диаграммой, нажав сочетание клавиш Ctrl-E.

6. Выберите меню Window → Show Block Diagram (Окно → Показать Блок-диаграмму) и изучите блок-диаграмму ВП.

Блок-диаграмма имеет белый фон рабочего пространства и содержит ВП и структуры, которые управляют объектами лицевой панели. Строка заголовка блок-диаграммы указывает, что это окно – блок-диаграмма для ВП Генерация и Отображение.

7. На панели инструментов интерфейса пользователя щелкните кнопку   Run (Пуск). Так же для того, чтобы запустить ВП, можно нажать комбинацию клавиш Ctrl-R.

На графическом индикаторе лицевой панели отобразится синусоида.

8. Щелкните кнопку "Стоп" () на лицевой панели, чтобы остановить ВП.

Добавление элемента управления на Лицевую панель

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

Чтобы добавить ручку управления, необходимо выполнить следующие шаги:

1. Если палитра элементов, показанная на рисунке 7, не видна на лицевой панели, выберите меню View → Controls Palette.

2. Если вы впервые запускаете LabVIEW, палитра элементов управления по умолчанию появится с открытой подпалитрой Express. Если эта подпалитра не видна, щелкните Express в палитре элементов управления.

3. Перемещайте курсор мыши по значкам на подпалитре Express, чтобы найти подпалитру числовых элементов управления Numeric. Когда вы перемещаете курсор по значкам в палитре элементов управления, название подпалитры, элемента управления/индикатора появляется в поле подсказки под значком.

4. Щелкните по значку Num Ctrls, чтобы отобразить подпалитру числовых элементов управления/индикаторов.

5. Щелкните по вращающейся ручке (Knob) в палитре Numeric, чтобы прикрепить элемент управления к курсору, затем поместите ручку на лицевую панель, слева от графика. Эта ручка будет использоваться для управления амплитудой сигнала.

Рисунок 7 – Палитра элементов управления

6. Выберите меню File → Save As (Файл → Сохранить Как) и сохраните ВП как Polushenie_signala.vi в заранее определенном месте.

Изменение типа сигнала

На блок-диаграмме присутствует иконка голубого цвета, с названием Simulate Signal. Эта иконка представляет экспресс-ВП Simulate Signal. По умолчанию экспресс-ВП Simulate Signal моделирует синусоиду.

Выполните следующие шаги, чтобы изменить этот сигнал на пилообразный.

1. Перейдите на блок-диаграмму, нажав комбинацию клавиш Ctrl-E или щелкнув кнопкой мыши по блок-диаграмме.

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

2. Щелкните правой кнопкой мыши на экспресс-ВП Simulate Signal и выберете Properties (Свойства) из контекстного меню, чтобы отобразить диалоговое окно Configure Simulate Signal (настройка моделируемого сигнала).

Чтобы появилось диалоговое окно Configure Simulate Signal (настройка моделируемого сигнала), можно также дважды щелкнуть правой кнопкой мыши по экспресс-ВП Simulate Signal.

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

3. Выберите Sawtooth (пилообразный сигнал) из выпадающего меню Signal type (тип сигнала). Форма сигнала на графике, в разделе предварительного просмотра результата, изменится на пилообразную. Диалоговое окно Configure Simulate Signal (настройка моделируемого сигнала) должно выглядеть так же, как на рисунке 8.

Рисунок 8 – Диалоговое окно Configure Simulate Signal

4. Нажмите кнопку ОК, чтобы сохранить текущие настройки и за-крыть диалоговое окно Configure Simulate Signal.

5. Наведите курсор мыши на двойные стрелки внизу иконки экс-пресс-ВП Simulate Signal. Стрелки показывают, что ВП имеет скрытые входные и выходные терминалы, которые можно сделать видимыми, если растянуть границу ВП.

6. Когда появится двунаправленная стрелка, показанная слева, переместите границу экспресс-ВП так, чтобы добавились две строки. После выполнения данной операции появится вход Amplitude (амплитуда).

Теперь у вас появилась возможность регулировать амплитуду пилообразного сигнала.

Обратите внимание, что амплитуда – это опция диалогового окна Configure Simulate Signal (рисунок 8). Когда входы, например, амплитуда, присутствуют и на блок-диаграмме и в диалоговом окне настройки, их значение можно менять в любом месте.

Соединение объектов на блок-диаграмме

Чтобы использовать вращающуюся ручку для изменения амплитуды сигнала, необходимо соединить ее с входом Amplitude (Амплитуда) экспресс-ВП Simulate Signal.

Для этого выполните следующие шаги:

1. На блок-диаграмме наведите курсор на терминал элемента управления Knob (Вращающаяся ручка)  и обозначающего цикл.

Курсор мыши станет стрелкой (инструментом Позиционирования). Этот инструмент используется для выбора, размещения или изменения размеров объектов.

2. Выделите терминал Knob (Вращающаяся ручка) с помощью инструмента Позиционирования. Убедитесь, что он находится слева от экс-пресс-ВП Simulate Signal и внутри серого контура.

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

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

4. Поместите курсор над стрелкой, расположенной посередине правой границы терминала Knob (Вращающаяся ручка). Курсор примет вид катушки, или Wiring tool (Инструмент соединения). Используйте этот инструмент для соединения объектов на блок-диаграмме.

5. Когда появится инструмент Соединения, щелкните левой кнопкой мыши по стрелке на терминале Knob, а затем по стрелке на входе Амплитуда экспресс-ВП Simulate Signal, чтобы соединить эти объекты вместе.

Появится проводник, соединяющий объекты. Данные будут передаваться по этому проводнику от терминала Knob (вращающаяся ручка) к экспресс-ВП.

6. Выберите меню File → Save (Файл → Сохранить), чтобы сохранить ВП.

Запуск ВП

Исполнение кода начинается с запуском ВП.

Выполните следующие шаги, чтобы запустить ВП Получение сигнала.

1. Переключитесь на лицевую панель, нажав комбинацию клавиш Ctrl-E или щелкнув по ней.

2. Нажмите кнопку Run (Пуск) или клавиши Ctrl-R для запуска ВП.

3. Поместите курсор над ручкой управления. Курсор примет вид руки, т.е. перейдет в режим Operating tool (инструмент Управление). Ис-пользуйте его, чтобы менять значение элемента управления.

4. Используя Инструмент Управление, поверните ручку, чтобы скорректировать амплитуду пилообразного сигнала.

Амплитуда пилообразного сигнала изменяется настолько, насколько вы поворачиваете ручку. При этом инструмент Управление будет показывать поле подсказки, в котором будет отображаться текущее числовое значение. Ось Y на графике масштабируется автоматически, подстраиваясь под изменение амплитуды.

Чтобы показать, что данный ВП выполняется, кнопка Run (Пуск) изменяется на затемненную стрелку. Во время выполнения ВП, можно изменять значения большинства элементов управления, но редактировать ВП нельзя.

5. Чтобы остановить ВП, щелкните по кнопке STOP (Стоп), которая расположена справа внизу. Кнопка STOP останавливает ВП после того, как он закончит выполнение текущей итерации. Кнопка Abort Execution  (прервать выполнение), которая показана слева, останавливает ВП немедленно, до окончания текущей итерации. Прерывание работы ВП, использующего внешние ресурсы, например внешние аппаратные средства, может оставить ресурсы в неизвестном состоянии, не сбросив или не освободив их должным образом. Снабдите ВП, который вы создаете, кнопкой остановки, чтобы обойти эту проблему.

Преобразование сигнала

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

1. На блок-диаграмме, используя инструмент Перемещение, дважды щелкните по проводнику, который соединяет экспресс-ВП Simulate Signal с терминалом графика осциллограммы (рисунок 9).

Рисунок 9 – Выделение проводника

2. Нажмите клавишу Delete, чтобы удалить этот проводник.

3. Если палитра Функций, которая показана на рисунке 10, не отображается, выберите меню View → Functions Palette (Вид → Палитра Функций), чтобы сделать ее видимой. Палитра Функций по умолчанию открывается вместе с подпалитрой Express. Если выбрана другая подпалитра, можно вернуться к подпалитре Express, нажав "Express" в палитре Функций.

Рисунок 10 – Палитра Функций

4. В палитре Arith & Compar (Арифметика и Сравнение), выберите экспресс-ВП Formula (Формула), и разместите его на блок-диаграмме в цикле между экспресс-ВП и терминалом графика осциллограммы. Можно переместить терминал вправо, чтобы между экспресс-ВП и терминалом было больше места. Когда вы поместите экспресс-ВП на блок-диаграмме, появится диалоговое окно Configure Formula (Настройка Формулы). При размещении экспресс-ВП на блок-диаграмме, диалоговое окно настройки этого ВП появляется автоматически.

5. Измените текст в текстовом поле Label с X1 на Sawtooth, чтобы переименовать входное значение экспресс-ВП Formula. После нажатия кнопкой мыши в текстовом поле String вверху диалогового окна Configure Formula, текст изменится в соответствии с введенным названием.

6. Задайте масштабный множитель, вводя символы *10 после слова Sawtooth в текстовом поле String.

Для этого можно использовать кнопки ввода (Input) в диалоговом окне конфигурации либо клавиши *, 1, и 0 на клавиатуре. Если вы используете кнопки Input в диалоговом окне конфигурации, LabVIEW помещает символы формулы после переменной Sawtooth в текстовом поле String. При использовании клавиатуры, щелкните левой кнопкой мыши в текстовом поле String после переменной Sawtooth и введите требуемую формулу.

Диалоговое окно Configure Formula (Настройка Формулы) должно выглядеть так же, как на рисунке 11.

Примечание. При вводе неправильной формулы в текстовом поле String светодиодный индикатор Errors (индикатор Ошибок) в правом верхнем углу станет серым и отобразит текст "Invalid Formula" (Неверная формула).

Рисунок 11 – Диалоговое окно Configure Formula

7. Щелкните по кнопке OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Configure Formula.

8. Поместите курсор над стрелкой на выходе Sawtooth экспресс-ВП Simulate Signal.

9. Когда появится инструмент Соединения, щелкните левой кнопкой мыши по стрелке на выходе Sawtooth и затем на входе Sawtooth эспресс-ВП Formula, чтобы соединить эти объекты.

10. Используйте инструмент Соединение для соединения выхода Result (Результат) экспресс-ВП Formula с терминалом графика осциллограммы.

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

Блок-диаграмма должна выглядеть, как показано на рисунке 12.

Подсказка: Вы можете щелкнуть правой кнопкой мыши по любому проводнику и выбрать опцию Clean Up Wire (оптимизировать проводник) из контекстного меню, чтобы дать возможность LabVIEW автоматически найти маршрут для проводника вокруг объектов, находящихся на блок-диаграмме. LabVIEW прокладывает маршрут так, чтобы уменьшить количество изгибов проводника.

Рисунок 12 – Блок-диаграмма ВП Получение сигнала

11. Нажмите клавиши Ctrl-S или выберите меню File → Save (Файл → Сохранить), чтобы сохранить ВП.

Отображение двух сигналов на графике

Чтобы на одном графике сравнить сигнал, сгенерированный экс-пресс-ВП Simulate Signal, с сигналом, измененным экспресс-ВП Formula, используйте функцию Merge Signals (Объединение сигналов).

Выполните следующие шаги, чтобы отобразить два сигнала на од-ном графике:

1. На блок-диаграмме поместите курсор над стрелкой на выходе Sawtooth экспресс-ВП Simulate Signal.

2. Соедините выход Sawtooth с терминалом графика осциллограмм, используя инструмент Соединение.

В месте соединения двух проводников появится функция Merge Signals (Объединение сигналов), показанная слева. Функция – это встроенный исполняемый элемент, аналогичный операции, функции или процедуре в текстовом языке программирования. Функция Merge Signals комбинирует два сигнала таким образом, чтобы они могли отображаться на одном графике.

Блок-диаграмма должна выглядеть, как показано на рисунке 13.

Рисунок 13 – Блок-диаграмма, демонстрирующая применение функции

Merge Signals

3. Нажмите клавиши Ctrl-S или выберите меню File → Save (Файл → Сохранить), чтобы сохранить ВП.

4. Переключитесь на лицевую панель, запустите ВП и поверните ручку управления.

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

5. Щелкните по кнопке STOP, чтобы остановить ВП.

Настройка ручки управления

Ручка управления изменяет амплитуду пилообразного сигнала, поэтому метка "Амплитуда" точно опишет ее назначение.

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

1. На лицевой панели щелкните правой кнопкой мыши по ручке и выберите опцию Properties (Свойства) из контекстного меню. Появится диалоговое окно Knob Properties (Свойства ручки управления).

2. В разделе Label (Метка) на вкладке Appearance (Внешний вид), удалите из текстового поля текст Knob и введите Амплитуда.

Диалоговое окно Knob Properties (Свойства ручки управления) должно выглядеть, как на рисунке 14.

3. Щелкните по вкладке Scale (Шкала) и в разделе Scale Style (Тип шкалы), выделите пункт Show color ramp (Показать градиентную заливку).

Ручка на лицевой панели обновится в соответствии с этими изменениями.

4. Щелкните по кнопке OK, чтобы сохранить текущую конфигурацию и закрыть диалоговое окно Knob Properties.

5. Сохраните ВП.

6. Повторно откройте диалоговое окно Knob Properties и поэкспериментируйте с другими свойствами ручки управления. Например, на вкладке Scale попробуйте изменить цвет в поле Marker text color, щелкая по палитре цветов.

Рисунок 14 – Диалоговое окно Knob Properties

7. Нажмите кнопку Cancel, чтобы отменить сделанные изменения.

Если вы хотите сохранить изменения, нажмите кнопку OK.

Настройка графика осциллограммы

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

Выполните следующие шаги, чтобы настроить вид графика осциллограмм.

1. Поместите курсор на панель редактирования графика. Хотя на графике изображено две кривых, на панели редактирования отображается только одна.

2. Когда появится двунаправленная стрелка, перетащите границу панели редактирования так, чтобы в ней добавилась еще одна строчка. Когда вы отпустите кнопку мыши, появится название второго графика.

3. Щелкните правой кнопкой мыши по графику осциллограмм и выберите Properties (Свойства) из контекстного меню. Появится диалоговое окно Waveform Graph Properties (Свойства графика осциллограмм).

4. На вкладке Plots (Графики) выберите Sawtooth из выпадающего меню. В разделе Colors (Цвета) щелкните на палитру цветов линии. Выберите новый цвет линии.

5. Выберите Sawtooth (Formula Result) из выпадающего меню.

6. Выделите галочкой пункт Do not use waveform names for plot names (Не использовать названия осциллограмм в качестве названий кривых).

7. В текстовом поле Name удалите текущий ярлык и измените название этого графика на "Масштабированный пилообразный сигнал".

8. Щелкните по кнопке OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Waveform Graph Properties (Свойства графика осциллограмм).

Цвет графиков и их названия на лицевой панели изменится.

9. Повторно откройте диалоговое окно Waveform Graph Properties (Свойства графика осциллограмм) и поэкспериментируйте с другими свойствами графиков.

Например, на вкладке Scales попробуйте отключить автоматическое масштабирование по оси Y и менять максимальное и минимальное значение шкалы Y.

10. Нажмите кнопку Cancel, чтобы отменить сделанные изменения.

Если вы хотите сохранить изменения, нажмите кнопку OK.

11. Сохраните и закройте ВП.

Самостоятельная работа

Создайте ВП, который отображает треугольный сигнал (Triangle), амплитудой N, и смещением N/2, где N – номер варианта. К полученному графику добавьте дополнительный график, который является модификацией исходного графика в соответствии с формулой =SIN(X1), где X1 – треугольный сигнал.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Перечислите элементы управления, используемые в программе.

2 Для чего нужны элементы управления?

3 Что может быть использовано в качестве индикаторов?

4 Что имитируют индикаторы?

5 Что такое терминалы?

6 Что такое узлы?

7 Что такое проводники?

8 От чего зависит внешний вид проводника?

 


 

 

ПРАКТИЧЕСКАЯ РАБОТА 2

Создание виртуального прибора «Преобразование °С в °F»

 

Цель работы:

- изучить компоненты ВП;

- создать ВП (преобразовать °С в °F);

- изучить типы данных и проводники данных;

- отредактировать ВП;

- приобрести практические навыки отладки ВП.

Краткие теоретические сведения

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

Типы данных. В программе используются следующие типы данных:

- Numeric (численный тип);

- Floating point – число с плавающей запятой, отображается в виде оранжевых терминалов. Может быть представлено в виде single (32 bit), double (64-bit) или extended (128-bit) precision (с одиночной, двойной или расширенной точностью). Число с плавающей запятой может быть комплексным;

- Integer – целочисленный тип, отображается в виде голубых терминалов. Возможны три представления целых чисел: 8, 16 и 32 бита. Один бит может использоваться для знака числа, если это число является знаковым целым;

- Boolean – логический тип, отображается в виде зеленых терминалов. Логический тип может принимать только два значения: 0 (FALSE) или 1 (TRUE);

- String – строковый тип, отображается в виде розовых терминалов. Строковый тип данных содержит текст в ASCII формате;

- Path – путь к файлу, отображается в виде терминалов. Путь к файлу близок строковому типу, однако, LabVIEW форматирует его, используя стандартный синтаксис для используемой платформы;

- Array – массивы включают типы данных составляющих элементов и принимают соответствующий им цвет;

- Cluster – кластеры включают различные типы данных. Кластерный тип данных отображается коричневым цветом, если все его элементы численные, если же элементы кластера являются данными различных типов, он отображается розовым;

- Waveform – сигнальный тип данных является кластером элементов, содержащим данные, начальное значение времени и интервал времени между измерениями;

- Dynamic – динамический тип, отображается в виде темно-синих терминалов. Кроме данных сигнала, динамический тип содержит дополнительную информацию, например, название сигнала или дату и время его получения. Большинство экспресс-ВП принимают и/или возвращают данные динамического типа.

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

Автоматическое соединение объектов проводниками данных. В среде LabVIEW объекты соединяются проводниками данных после их помещения на блок-диаграмму. В автоматическом режиме среда LabVIEW подключает те поля ввода/вывода данных, которые наиболее совместимы, несовместимые поля остаются несоединенными.

Корректировка параметров автоматического подключения проводников осуществляется через пункты главного меню Tools → Options → Block Diagram.

Соединение объектов проводниками данных вручную. Соединение объектов проводниками данных вручную производится с помощью инструмента СОЕДИНЕНИЕ . После наведения инструмента СОЕДИНЕНИЕ на поле ввода или вывода данных на экране появляется подсказка, которую можно использовать для уточнения места подключения проводника.

Порядок выполнения:

Запустите программу LabVIEW. В диалоговом окне выберите создание ВП из пустого (New  Blank VI).

Создание лицевой панели.

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

Рисунок 15 – Лицевая панель ВП

Для создания лицевой панели выполним следующие действия:

1. На панели инструментов Conrtols вам необходимо выбрать из списка Num Ctrls цифровой элемент управления, показанный справа. Переместите выбранный элемент управления на лицевую панель ВП. В поле собственной метки элемента управления напечатайте название элемента «Град С». Данный элемент управления необходим для ввода данных.

 2. Теперь необходимо на лицевую панель ВП добавить элемент отображения. Для этого на панели инструментов Conrtols вам необходимо выбрать из списка Num Inds элемент отображения Num Ind, показанный справа. В поле собственной метки напечатайте «Град F».                                                

Теперь переходим к созданию блок-диаграммы.

Из метрологии вам известно, что градусы Цельсия связаны с градусами Фаренгейта соотношением . Таким образом, в блок-диаграмму надо добавить функцию умножения Multiply и сложения Add, а также две константы 1,8 и 32. Для этого выполним следующие действия:

1. На панели инструментов Functions нажимаем на кнопку Arith & Compar, изображенную справа. В открывшемся списке функций вам необходимо выбрать Numeric. Из раскрывшегося списка переносим на блок-диаграмму функции Multiply и Add, и два раза функцию Num Const. Обратите внимание, что числовые константы на блок-диаграмме отображаются, синим цветом.

После выполнения этих действий блок-диаграмма должна выглядеть как на рисунке 16.

Рисунок 16 – Блок-диаграмма

2. В поле ввода для первой константы, расположенной левее, введем 1,8, для второй константы введем значение 32. При этом блок-диаграмма примет вид, представленный на рисунке 17.

Рисунок 17 – Блок-диаграмма после ввода констант

3. Соединим все объекты на блок-диаграмме с помощью инструмента СОЕДИНЕНИЕ. В результате блок-диаграмма должна выглядеть как на рисунке 18.

Рисунок 18 – Окончательный вид блок-диаграммы

Переходим на лицевую панель ВП. Сохраним ВП.

Запуск ВП.

1. Введите число в элемент управления. Для ввода числа необходимо использовать инструмент УПРАВЛЕНИЕ или инструмент ВВОД ТЕКСТА.

2. Запустите ВП, нажав кнопку  на панели инструментов или комбинацию клавиш Ctrl-R.

 

Самостоятельная работа

Создайте ВП, согласно вашему варианту.

Номер варианта

Содержание задания

1

ВП преобразует значение температуры из градусов Цельсия в температуру по шкале Кельвина (°К = °С + 273)

2

ВП преобразует значение температуры из градусов Цельсия в температуру по шкале Реомюра (°R = °С 4/5)

3

ВП преобразует значение температуры по шкале Кельвина в градусы Цельсия (°С = °К – 273)

4

ВП преобразует значение температуры по шкале Реомюра в градусы Цельсия (°С = °R 5/4)

5

ВП преобразует значение температуры по Фаренгейту в градусы Цельсия (°F = 9/5 °С + 32)

6

ВП преобразует значение температуры по шкале Реомюра в температуру по Фаренгейту (°F = 9/4°R + 32)

7

ВП преобразует значение температуры из градусов Цельсия в температуру по Реомюру (°R = °C4/5)

8

ВП преобразует значение температуры по Кельвину в температуру по Реомюру (°R = (°К – 273)4/5)

9

ВП преобразует по закону Ома значение напряжения и сопротивления в силу тока (I = U / R)

10

ВП преобразует значение динамической вязкости µ в кинематическую вязкость ν (ν = –µ / ρ)

11

ВП преобразует значение напряжения (мВ) и силы тока (мкА) в ватты (Вт) (P = IU)

12

ВП преобразует значение напряжения (В) и силы тока (А) в мощность (Вт) (P = IU)

13

ВП преобразует значение скорости (м/с) и массы (кг) в кинетическую энергию (Дж) (Т = mV2/2)

14

ВП преобразует значение мощности двигателя (л.с.) в мощность (кВт) (1 л.с. = 736 Вт)

15

ВП преобразует значение энергии (Дж) в энергию (кал)

(1Дж = 0,239 кал)

Примечание: для вариантов 9, 11 – 13 необходимо создать два цифровых элемента управления Num Ctrls, в которых вы будете задавать входные значения; для варианта 10 – для имитации считывания вязкости µ используйте функцию Random Number, расположенную в палитре Function → Mathematics → Numeric.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Из каких основных компонентов состоит Ваш ВП?

2 Какие узлы на блок-диаграмме ВП Вы знаете?

3 Как отображаются терминалы данных и какие функции они выполняют?

4 Что такое проводник данных?

5 Какие проводники данных Вы знаете?

6 Какие типы данных Вы знаете?

7 Как соединяются объекты проводниками данных?

8 Из каких подпалитр состоит палитра Controls (Элементов)?

9 Из каких подпалитр состоит палитра Functions (Функций)?

10 Как осуществляется пуск разработанного ВП?

11 Назовите назначение управляющих кнопок на блок-диаграмме.

12 Назовите назначение управляющих кнопок на лицевой панели.

13 Что такое элемент управления и элемент отображения?

14 Назовите основные типы данных.

15 Как ввести число в элемент управления?

 

 


 

ПРАКТИЧЕСКАЯ РАБОТА 3

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

Виртуальный прибор «Термометр»

 

Цель работы:

- изучить подпрограмму ВП;

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

Краткие теоретические сведения

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

Любой VI может быть использован как подпрограмма при создании в последующем других виртуальных инструментов. Для объединения нескольких функциональных блоков разрабатываемой блок-диаграммы в подпрограмму достаточно выделить их мышкой на диаграмме, удерживая клавишу Shift, и затем выбрать в верхнем меню пункт Edit → Create SubVI. При этом они объединятся в новую подпрограмму с новым значком (иконкой) на функциональной панели. Двойной клик на данном значке позволит вызвать созданную подпрограмму, настроить ее должным образом и сохранить с заданным именем. В последующем данный модуль может быть многократно использован в различных VI.

Каждый виртуальный прибор в правом верхнем углу лицевой панели и в окне блок-диаграммы отображает иконку . Иконка – графическое представление прибора. Она может содержать текст, рисунок или и то и другое одновременно. Если ВП используется в качестве подпрограммы, то иконка идентифицирует его на блок-диаграмме другого ВП.

Для редактирования иконки создаваемых vi и подпрограмм достаточно кликнуть правой кнопкой мыши на пиктограмме vi в правом верхнем углу и выбрать пункт Edit Icon … (рисунок 19).

Рисунок 19 – Контекстное меню пиктограммы ВП

С помощью простейших функций графического редактора можно создать собственный вариант иконки. Настройка входов/выходов (терминалов) подпрограмм осуществляется следующим образом. Необходимо нажать правой кнопкой мыши на пиктограмме vi в правом верхнем углу и выбрать пункт Show Connector… (рисунок 19). При этом пиктограмма разделится на несколько прямоугольников, общий набор и вид которых можно редактировать с помощью всплывающего меню пиктограммы (добавить/удалить терминал – Add Terminal/Remove Terminal, поворот на 90 градусов – Rotate 90 Degrees, другой вид – Patterns… и др.). Для того, что бы сопоставить каждый терминал с определенными данными необходимо левой кнопкой мыши кликнуть на нужном терминале, а затем – на том элементе управления или отображения на лицевой панели, которой он будет соответствовать. При этом терминал окрасится в цвет, соответствующий типу данных указанного элемента управления или отображения. В результате все терминалы будут связаны с определенными входными или выходными данными.

Использование подпрограмм ВП. После создания ВП, оформления его иконки и настройки соединительной панели ВП может использоваться в качестве подпрограммы. Чтобы поместить подпрограмму ВП на блок-диаграмму, следует выбрать на палитре Functions (Функций) подраздел Select a VI (Выбор ВП). Указать ВП и перенести его на блок-диаграмму.

Открытый ВП можно поместить на блок-диаграмму другого ВП, переместив на нее иконку этого ВП с помощью инструмента ПЕРЕМЕЩЕНИЕ.

Задание 1 ВП Преобразование °С в °F

В этой работе представлена последовательность действий по созда-нию иконки и настройке соединительной панели для созданного ВП, который переводит значение измеренной температуры из градусов Цельсия в градусы по Фаренгейту.

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

1 Откройте файл с ранее созданным ВП Преобразование С в F.vi.

Иконка и соединительная панель

2 Щелкните правой кнопкой мыши по иконке ВП и в контекстном меню выберите пункт Edit Icon (Редактирование иконки). Появится диалоговое окно редактора иконки Icon Editor.

3 Дважды щелкните правой кнопкой мыши по инструменту ВЫБОР.

4 Нажав кнопку <Delete>, очистите область редактирования иконки.

5 Дважды щелкните по инструменту ПРЯМОУГОЛЬНИК, чтобы обвести область редактирования границей выбранного цвета.

6 Создайте следующую иконку, изображенную на рисунке 20:

Рисунок 20 – Создание иконки

а) введите текст инструментом ВВОД ТЕКСТА ;

б) напечатайте «С» и «F»;

в) для выбора размера шрифта дважды щелкните левой кнопкой мыши по инструменту ВВОД ТЕКСТА;

г) чтобы нарисовать стрелку, воспользуйтесь инструментом КАРАНДАШ;

Внимание! Для рисования вертикальных, горизонтальных и диагональных линий требуется во время рисования нажать и удерживать клавишу Shift.

д) для передвижения текста и стрелки по полю редактирования иконки используйте инструмент ВЫБОР и стрелки на клавиатуре;

е) после завершения редактирования иконки нажмите кнопку ОК и закройте Icon Editor. Новая иконка появится в правом верхнем углу обеих панелей.

7 Перейдите на лицевую панель, щелкните правой кнопкой мыши на иконке и выберите пункт Show Connector (Показать поля ввода/вывода данных) из контекстного меню. При этом иконка примет вид . Левая часть иконки соответствует входам ВП, а правая – выходам ВП.

8 Элементам управления и отображения данных назначьте соответственно поля ввода и вывода данных:

а) в пункте главного меню Help (Помощь) выберите Show Context Help (показать контекстную справку) и выведите на экран окно Context Help (контекстной справки) для просмотра соединений;

б) щелкните левой кнопкой мышки на левом поле соединительной панели. Инструмент УПРАВЛЕНИЕ автоматически поменяется на инструмент СОЕДИНЕНИЕ, а выбранное поле окрасится в черный цвет;

в) щелкните левой кнопкой мыши по элементу Град С. Левое поле станет оранжевым и выделится маркером;

г) щелкните курсором по свободному пространству. Маркер исчезнет, и поле окрасится в цвет данных типа соответствующего элемента управления;

д) щелкните левой кнопкой мыши по правому полю соединительной панели и элементу Град F. Правое поле станет оранжевым;

е) щелкните курсором по свободному пространству. Оба поля останутся оранжевыми;

ж) наведите курсор на область полей ввода/вывода данных. Окно Context Help (контекстной справки) покажет, что оба поля соответствуют типу данных двойной точности с плавающей запятой.

9 Выберите пункт главного меню File→Save. Сохраните ВП под именем Преобразование С в F.vi.

10 Выберите пункт главного меню File→Close. Закройте ВП.

 

Задание 2 ВП Термометр

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

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

1 Создайте элемент отображения данных температуры, как показано на рисунке 21:

а) выберите элемент отображения данных, расположенный на палитре Controls в разделе Numeric (Числовые элементы);

б) напечатайте Температура внутри собственной метки;

в) щелкните правой кнопкой мыши по элементу и выберите пункт контекстного меню Visible Items (Отображаемые элементы), Digital Display (Цифровой индикатор).

3 Создайте элемент управления в виде вертикального переключателя:

а) выберите вертикальный переключатель, расположенный в палитре Controls раздела Boolean (Логические элементы);

Рисунок 21 – Лицевая панель

б) введите имя собственной метки переключателя Масштаб шкалы;

в) используя инструмент ВВОД ТЕКСТА, создайте на лицевой панели свободную метку °С, как показано выше;

г) с помощью инструмента ВВОД ТЕКСТА создайте на лицевой панели свободную метку °F, как показано выше.

4 Создайте описание ВП, которое появляется в окне контекстной справки Context Help после на ведения курсора на иконку ВП:

a) выберите пункт главного меню File → VI Properties;

б) выберите пункт Documentation (Описание) в разделе Category (Категория) из выпадающего меню;

в) в поле ввода текста напечатайте следующее:

Этот ВП измеряет температуру, используя ВП Demo VI.

5 Создайте описание элементов управления и отображения данных, которое появляется в окне контекстной справки Context Help после наведения на них курсора:

a) щелкните правой кнопкой мыши по элементу отображения и выберите пункт контекстного меню Description and Tip (Описание и предупреждения);

б) в поле ввода текста напечатайте следующее:

Выводит на экран значения измеренной температуры;

в) введите в поле Tip значение Температура;

г) нажмите кнопку ОК;

д) щелкните правой кнопкой мыши по элементу управления и выберите пункт контекстного меню Description and Tip (Описание и предупреждения);

е) в поле ввода текста напечатайте следующее:

Определяет шкалу (по Фаренгейту или Цельсию), используемую для измерения температуры;

ж) введите в поле Tip значение шкала – °С или °F и нажмите кнопку ОК.

6 Отобразите окно контекстной справки Context Help, которое доступно из пункта главного меню Help → Show Context Help.

7 Наведите курсор на один из объектов для просмотра описания их работы в окне Context Help.

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

8 Перейдите на блок-диаграмму, выбрав Window → Show Diagram.

9 Создайте блок-диаграмму, показанную на рисунке 22.

Рисунок 22 – Блок-диаграмма

Поместите на блок-диаграмму генератор случайных чисел, расположенный на панели инструментов Functions → Express → Arithmetic & Comparison → Numeric, который служит для имитации считывания напряжения, пропорционального температуре. Например, если температура составляет 20 °С, то напряжение на выходе датчика будет равно 0,2 В.

Поместите на блок-диаграмму ВП Convert from Dynamic Data (To DDT) (преобразовать динамические данные), расположенный в палитре Functions → Express → Signal Manipulation. Этот ВП преобразует динамический тип данных. В конфигурационном диалоговом окне выберите пункт Single Scalar списка Input data type.

Выберите функцию Multiply (Умножение), расположенную в палитре Functions → Numeric. Эта функция умножает считанное ВП напряжение на «100.0» для представления температуры в градусах Цельсия;

Щелкните правой кнопкой мыши по полю ввода данных у функции Multiply (Умножение) и в контекстном меню выберите пункт Create → Constant (Создать константу). Константе присвойте значение «100».

В палитре Functions (Функций) в разделе Select a VI (Выбор ВП) выберите ВП Преобразование С в F, созданный в задании 1. Поместите его на блок-диаграмму. Этот ВП переведет градусы Цельсия в градусы Фаренгейта.

Выберите функцию Select (Выбор), расположенную в палитре Functions → Programming → Comparison. Эта функция выдает значения °С или °F в зависимости от состояния переключателя Масштаб шкалы.

Иконка и соединительная панель

13 Создайте иконку, показанную на рисунке 23, чтобы использовать ВП в качестве подпрограммы.

Рисунок 23 – Создание иконки

14 Элементам управления и отображения данных поставьте в соответствие поля ввода и вывода данных, щелкнув правой кнопкой мыши по иконке и выбрав пункт контекстного меню Show Connector (Показать поля ввода/вывода данных).

15 Сохраните ВП под именем Термометра.

 

Задание 3 По аналогии заданию 2, создать ВП, используя в качестве подпрограммы прибор, созданный в практической работе 2.

Номер

варианта

Содержание задания

1

ВП измеряет температуру и отображает значение температуры по шкале Кельвина или в градусах Цельсия

2

ВП измеряет температуру и отображает значение температуры по шкале Реомюра или в градусах Цельсия

3

ВП измеряет температуру и отображает значение температуры в градусах Цельсия или по шкале Кельвина

4

ВП измеряет температуру и отображает значение температуры в градусах Цельсия или по шкале Реомюра

5

ВП измеряет температуру и отображает значение температуры в градусах Цельсия или по шкале Фаренгейта

6

ВП измеряет температуру и отображает значение температуры по Реомюру или по шкале Фаренгейта

7

ВП измеряет температуру и отображает значение температуры в градусах Цельсия или по шкале Реомюра

8

ВП измеряет температуру и отображает значение температуры по Кельвину или по шкале Реомюра

9

ВП измеряет напряжение; на выходе – значение напряжения или силы тока (рассчитанной по закону Ома) в зависимости от состояния переключателя

10

ВП измеряет вязкость и отображает значение динамической вязкости µ или кинематической вязкости ν

11

ВП измеряет напряжение и отображает напряжения (мВ) или мощность (Вт)

12

ВП измеряет напряжение и отображает напряжение (В) или мощность (Вт)

13

ВП измеряет значение скорости (м/с) и отображает скорость или кинетическую энергию (Дж)

14

ВП измеряет значение мощности двигателя  и отображает значение мощности в л.с. или в кВт

15

ВП измеряет значение энергии (Дж) и отображает значение энергии в Дж или в калориях

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Из каких основных компонентов состоит Ваш ВП?

2 Что называется иконкой ВП?

3 Как создается иконка ВП?

4 Как отображаются иконки ВП и какие функции они выполняют?

5 Как редактируется иконка ВП?

6 Как вывести на экран значение измеренной температуры?

7 Зачем нужна функция Select?

8 Как осуществляется непрерывный пуск разработанного ВП?

 

 


 

ПРАКТИЧЕСКАЯ РАБОТА 4

Создание виртуального прибора «Изменение температуры во времени»

 

Цель работы:

- изучение приемов использования терминала выходных данных цикла While (по условию);

- измерение температуры n раз в секунду в течение одной минуты;

- использование сдвиговых регистров и узлов обратной связи для организации доступа к значениям на предыдущих итерациях цикла For (с фиксированным числом итераций);

- изучение организации доступа к значениям предыдущих итераций цикла.

Краткие теоретические сведения

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

Цикл While (по условию). Цикл While (по условию) работает до тех пор, пока не выполнится логическое условие выхода из цикла.

Блок-диаграмма цикла While выполняется до тех пор, пока не выполнится условие выхода из цикла. По умолчанию, терминал условия выхода имеет вид . Это значит, что цикл будет выполняться до поступления на терминал условия выхода значения TRUE. В этом случае терминал условия выхода называется терминалом Stop If True (Остановка если Истина).

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

Знак  предусматривает возможность изменения условия выхода и соответствующего ему изображения терминала условия выхода. Щелчком правой кнопки мыши по терминалу условия выхода или по границе цикла необходимо вызвать контекстное меню и выбрать пункт Continue If True (Продолжение если Истина).

Цикл For (с фиксированным числом итераций). Цикл For (с фиксированным числом итераций) выполняет повторяющиеся операции над потоком данных определенное количество раз.

Цикл For расположен в палитре Функций в разделе Functions → Programming → Structures. Значение, присвоенное терминалу максимального числа итераций N цикла , определяет максимальное количество повторений операций над потоком данных.

Терминал счетчика итераций , содержит значение количества выполненных итераций. Начальное значение счетчика итераций всегда равно 0.

Организация доступа к значениям предыдущих итераций цикла. При работе с циклами зачастую необходим доступ к значениям предыдущих итераций цикла. Например, в случае ВП, измеряющего температуру и отображающего ее на графике, для отображения текущего среднего значения температуры, необходимо использовать значения, полученные в предыдущих итерациях. Есть два пути доступа к этим данным: Shift Register (сдвиговый регистр) и Feedback Node (узел обратной связи).

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

Сдвиговый регистр выглядит как пара терминалов . Они расположены непосредственно друг против друга на противоположных вертикальных сторонах границы цикла. Правый терминал содержит стрелку «вверх» и сохраняет данные по завершению текущей итерации. LabVIEW передает данные с этого регистра в следующую итерацию цикла. Сдвиговый регистр создается щелчком правой кнопки мыши по границе цикла и выбором из контекстного меню пункта Add Shift Register (Добавить сдвиговый регистр).

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

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

Можно поместить узел обратной связи внутри цикла While или For, выбрав Feedback Node (Узел обратной связи) в палитре Structures (Структуры). При помещении узла обратной связи на проводник данных до ответвления, передающего данные на выходной терминал цикла, узел обратной связи передает все значения на выходной терминал цикла. При помещении узла обратной связи на проводник после ответвления, передающего данные на выходной терминал цикла, узел обратной связи передаст все значения обратно на поле ввода данных ВП или функции, а затем передаст последнее значение на выходной терминал цикла. Следующее упражнение содержит пример работы узла обратной связи.

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

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

- Селектор варианта (True \ False \ и т.д.). Позволяет переходить от одной блок-схемы к другой. Содержит по умолчанию два окна True и False. При необходимости количество блок-схем выбора может быть увеличено. Кроме True и False в качестве значений переключателя могут использоваться целые числа или строковые значения.

Значения и типы данных селектора варианта

В метку селектора выбора Вы можете ввести одно значение или их список и интервалы значений. В качестве разделителя в списках используется запятая. Для числовых величин задание интервала в виде 10..20 означает все числа от 10 до 20 включительно. Кроме того, можно использовать открытые интервалы. Например, ..100 представляет все числа, меньшие или равные 100, а 100.. представляет все числа большие или равные 100. Можно также комбинировать списки и интервалы, например ..5, 6, 7..10, 12, 13, 14. Когда Вы вводите значения, которые содержат перекрывающиеся интервалы в селекторной метке одного и того же варианта, то структура Case сама преобразует такую метку к более компактной форме. Предыдущий пример приведет к более компактной форме ..10, 12..14. Для строковых интервалов интервал a..c включает все a и b, но не c. Интервал a..c,c включает и последнюю величину c.

Числа с плавающей точкой нельзя использовать в качестве селекторных значений.

Формульный блок Formula Node. Формульный блок Formula Node позволяет вводить формулы в обычном виде прямо в блок-схему. Особенно это удобно, когда выражение имеет много переменных и сложный вид. Формулы вводятся как простой текст. При этом создаются терминалы на границе блока (контекстное меню Add Input или Add Output), в которые вписываются имена переменных. Каждое выражение заканчивается разделителем «;».

Структура последовательности Sequence Structure. Структура последовательности Sequence Structure выполняет встроенные в нее блок-схемы последовательно в определенном порядке. Имеется два типа структур последовательности: Flat Sequence (развернутая последовательность) и Stacked Sequence (сложенная последовательность). Количество встроенных блок-схем определяется числом фреймов данной структуры. Их количество добавляется при помощи контекстного меню – Add Frame After, Add Frame Before. Для передачи значений переменных из фрейма в фрейм используются локальные переменные структуры (контекстное меню – Add Sequence Local variable), создаваемые на границе фрейма. Данные, связанные с такой переменной, доступны во всех последующих фреймах и не доступны в предыдущих.

Структура Flat Sequence (развернутая последовательность) отображает все кадры одновременно и исполняет последовательно слева направо, пока не выполнится последний кадр. Используйте структуру Flat Sequence, чтобы исключить использование локальных переменных последовательности (sequence locals) и улучшить читаемость блок-диаграммы. Когда Вы добавляете или удаляете кадры в структуре Flat Sequence, размеры границ структуры автоматически изменяются. Для переупорядочивания кадров в структуре Flat Sequence используйте команды редактирования cut (вырезать) и paste (вставить), чтобы перенести содержимое из одного кадра в другой.

Структура Stacked Sequence (сложенная последовательность) располагает кадры один над другим, поэтому одновременно Вы можете видеть только один кадр. Кадры исполняются в последовательном порядке: сначала кадр 0, затем кадр 1 и т.д., пока не выполнится последний кадр. Структура Stacked Sequence возвращает данные только после того, как выполнится последний кадр. Используйте структуру Stacked Sequence в тех случаях, когда Вы хотите сэкономить место на блок-диаграмме.

Идентификатор селектора последовательности расположен на верхней границе структуры Stacked Sequence. Он содержит номер текущего кадра и интервал номеров существующих кадров. Используйте идентификатор селектора последовательности для перемещения между кадрами и переупорядочивания кадров. Метка кадра в структуре Stacked Sequence подобна метке селектора варианта в структуре Case. Метка кадра содержит номер кадра в центре и стрелочки инкремента и декремента по бокам. Щелкайте эти стрелки для прокрутки доступных кадров. Вы можете также щелкнуть стрелочку «вниз» в поле метки кадра и выбрать нужный кадр из спадающего меню. Чтобы изменить порядок кадров в структуре Stacked Sequence, щелкните правой кнопкой границу кадра, выберите из контекстного меню пункт Make This Frame и выберите нужный номер для этого кадра.

В отличие от метки селектора варианта, нельзя вести свои обозначения для меток кадров. Когда Вы добавляете, удаляете или переупорядочиваете кадры в структуре Stacked Sequence, LabVIEW автоматически устанавливает в метках кадров нужные номера.

 

Задание 1 ВП Измерение температуры во времени

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

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

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

Рисунок 24 – Лицевая панель ВП

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

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

Рисунок 25 – Блок-диаграмма

Поместите ВП Термометр на блок-диаграмму. Для этого выберите Functions → Select a VI и укажите папку, в которой находится прибор, созданный в задании 2, практической работы 3.

Щелкните правой кнопкой мыши по полю ввода данных Temp Scale (Шкала температур), в контекстном меню выберите пункт Create → Constant. Константе присвойте значение FALSE – для градусов Фаренгейта и TRUE – для градусов Цельсия.

Поместите на блок-диаграмму функцию Wait Until Next ms Multiple, находящуюся в палитре Functions → Programming → Timing. Функция Wait Until Next ms Multiple (ждать кратного значения) обеспечивает интервал между итерациями, равный интервалу времени, необходимому для того, чтобы миллисекундный счетчик достиг значения, кратного введенному пользователем. Щелкните правой кнопкой мыши по полю ввода данных и выберите пункт Create → Constant. Созданной константе присвойте значение 1000. Теперь каждая итерация цикла выполняется с интервалом времени 1000 мс (раз в секунду).

Поместите на блок-диаграмму функцию Increment (приращение), находящуюся в палитре Functions → Programming → Numeric. Эта функция добавляет 1 к значению счетчика итераций после завершения выполнения цикла.

3 Сохраните ВП под именем Измерение температуры во времени.

4 Запустите ВП.

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

 

 

 

 

 

Самостоятельная работа

Номер варианта

Содержание задания

1

Создайте ВП, генерирующий случайные числа в цикле While. Организуйте выход из цикла по нажатию кнопки на лицевой панели ВП

2

Посчитайте значение выражения Y = X2 + Z3XZ + 10 с помощью блока Formula Node

3

Создайте ВП, генерирующий 70 случайных чисел в цикле FOR

4

Создайте ВП, который с помощью Formula Node считает значение выражения Y = x + cos (x) – 10 и если Y >= 0, то Z = sqrt(Y)

5

Используя структуру Сase, создайте ВП, который считает разность двух чисел и если полученное число больше нуля, то вычисляется значение корня, иначе выдается сообщение об ошибке

6

Создайте ВП, который измеряет температуру в течение двух минут с помощью термометра, созданного в задании 2 и считает среднее значение температуры. Подсчет среднего значения осуществить с помощью сдвигового регистра

7

Создайте ВП, который измеряет температуру в течение минуты с помощью термометра, созданного в задании 2 и считает среднее значение температуры. Подсчет среднего значения осуществить с помощью сдвигового регистра

8

Посчитайте значение выражения Y = X5 + cos2(Z) – XZ + 10 с помощью блока Formula Node

9

Используя структуру Сase, создайте ВП, который считает значение выражения y = ax + 14, где a = const; и если y ≥ 0, то вычисляется значение корня, иначе выдается сообщение об ошибке

10

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

11

Создайте ВП, который с помощью Formula Node считает значение выражения y = sin(x), если у – положительное число, то z = y + A, иначе z = y + A

12

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

13

Создайте ВП, который генерирует 50 случайных чисел и считает их сумму. Подсчет суммы чисел осуществите с помощью сдвигового регистра

14

Создайте ВП, который с помощью Formula Node считает значение выражения y = cos(x), если у– положительное число, то z = , иначе z = y + A

15

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

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Из каких основных компонентов состоит Ваш ВП?

2 Какие приемы использования цикла While Вы знаете?

3 Как измерить температуру с интервалом раз в секунду в течение одной минуты?

4 Как и зачем используются сдвиговые регистры в ВП?

5 Зачем нужны узлы обратной связи в ВП?

6 Как добавить 1 к значению счетчика итераций после завершения выполнения цикла?

7 Из каких подпалитр состоит палитра Controls (Элементов)?

8 Из каких подпалитр состоит палитра Functions (Функций)?

9 Назовите назначение управляющих кнопок на блок-диаграмме.

10 Назовите основные типы данных.

 


 

ПРАКТИЧЕСКАЯ РАБОТА 5

Разработка виртуального прибора с возможностью

задания амплитуды и функции отображения

 

Цель работы:

- изучение Узла формул и записи математических выражений для произвольных вычислений;

- изучение циклического оператора For Loop (Цикл для) и структуры Case (Вариант);

- изучение графического представления результата вычислений на двухкоординатном графическом индикаторе (XY Graph).

Краткие теоретические сведения

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

Цикл For выполняется заданное количество раз. Используется для выполнения N раз повторяющихся операций над потоком данных. Для подсчета количества N служит счетчик итераций. Начальное значение счетчика по умолчанию всегда равно нулю.

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

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

- Селектор варианта  (True \ False \ и т.д.). Позволяет переходить от одной блок-схемы к другой. Содержит по умолчанию два окна True и False. При необходимости количество блок-схем выбора может быть увеличено. Кроме True и False в качестве значений переключателя могут использоваться целые числа или строковые значения.

Формульный блок Formula Node. Формульный блок Formula Node позволяет вводить формулы в обычном виде прямо в блок-схему. Особенно это удобно, когда выражение имеет много переменных и сложный вид. Формулы вводятся как простой текст. При этом создаются терминалы на границе блока (контекстное меню Add Input или Add Output), в которые вписываются имена переменных. Каждое выражение заканчивается разделителем «;».

Синтаксис математических выражений и правила написаний функций представлены в таблице 1.

Таблица 1 – Синтаксис математических функций

функция

описание

sin(x), cos(x)

tan(x), cot(x)

синус, косинус, тангенс, котангенс (аргумент x – в радианах)

sec(x), csc(x)

секанс и косеканс

asin(x), acos(x)

atan(x), acot(x)

asec(x), acsc(x)

обратные тригонометрические функции (возвращают результат в радианах)

sinh(x), cosh(x)

tanh(x), coth(x)

sech(x), csch(x)

гиперболические тригонометрические функции

asinh(x), acosh(x)

atanh(x), acoth(x)

asech(x), acsch(x)

обратные гиперболические тригонометрические функции

sinc(x)

функция sin(x)/x

atan2(x,y)

арктангенс, определяемый с учетом квадрантов (возвращают результат в радианах)

функция

описание

abs(x)

абсолютное значение

angle(x)

аргументы комплексных чисел

exp(x)

экспонента ex

factorial(x)

факториал N!

log(x)

натуральный логарифм

log10(x)

логарифм по основанию 10

log2(x)

логарифм по основанию 2

max(x)

наибольший элемент

min(x)

наименьший элемент

mod(x,y)

остаток по модулю

sum(x)

сумма

Задание 1

Исходные данные.

Независимая переменная Х в формулах имитируется генератором синусоиды в пределах изменения его амплитуды ±Х = Umax. Значение амплитуды Umax задается ползунковым регулятором амплитуды. Количество отсчетов синусоиды равно 1000. Начальная фаза синусоиду – 0, число циклов (периодов) синусоиды – 1.

Исходные формулы: Парабола , кубическая парабола , экспонента , .

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

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

1. Из палитры Controls → Graph Indicators выберите двухкоординатный графический индикатор (XY Graph) и поместите его на правой части лицевой панели. Увеличьте его размер до желаемого. В объектном меню индикатора снимите выделение с опции Show Plot Legend.

2. Наведите курсор текстового инструмента на метку XY Graph. Щелкните левой кнопкой мыши и впишите название графического индикатора Графики функций. Затем щелкните мышью на свободном поле или на кнопке .

3. Аналогично п.2 замените метки Amplitude и Time на индикаторе на Y и X соответственно.

4. Из палитры Controls → Express → Numeric Controls выберите горизонтальный ползунковый регулятор (Horizontal Pointer Slide) и поместите его на лицевой панели слева от графического индикатора. Введите в метку название регулятора «Максимум Х». Увеличьте размеры регулятора до желаемых размеров.

Активизируйте цифровой дисплей регулятора. Дисплей необходим для задания точного значения Х. Для этого, наведите курсор на регулятор и щелкните правой кнопкой мыши. В появившемся меню выберите Visible Item → Digital Display. Справа от ползункового регулятора появится прямоугольное окно цифрового дисплея, индицирующего числовое значение регулятора.

5. Теперь организуем текстовую индикацию формул и управления выбором нужной формулы с лицевой панели. Из палитры Controls → Classic →Ring&Enum Ring выберите текстовый переключатель (Text Ring) и поместите его на лицевой панели ниже регулятора. Введите в метку название переключателя Вид функции.

6. Вызовем объектное меню текстового переключателя (рисунок 26). Для этого наведем курсор на текстовый переключатель и щелкнем правой кнопкой мыши. В объектном меню выберем Edit Irems (редактирование позиций). В первую строку текстового окна с помощью Меточного инструмента введите формулу Y = X^2. Далее, выбирая новую строку, введите последовательно еще три формулы: Y = X^3, Y = exp(X), Y = sinc(X).

7. Из палитры Controls → Classic → Boolean выберите прямоугольную кнопку STOP (Rectangular Stop Button) и поместите ее на лицевой панели ниже текстового переключателя. Увеличьте размеры кнопки до желаемого. В результате получим лицевую панель ВП, показанную на рисунке 27.

Рисунок 26 – Окно свойств текстового переключателя

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

1. Разместите терминалы регулятора «Максимум Х», переключателя «Вид функции» и кнопки «STOP» слева на блок-диаграмме, а терминал графического индикатора – справа на некотором расстоянии от терминалов органов управления.

2. Выберите из палитры Functions → Signal Processing → Signal Generation генератор синусоиды (Sinc Pattern.vi) и поместите его на структурной схеме правее терминала ползункового регулятора «Максимум Х».

3. Соедините терминал регулятора «Максимум Х» к терминалу генератора синусоиды «amplitude».

Рисунок 27 – Лицевая панель ВП

4. Подведите элемент соединения «Катушку» к входу «Samples» генератора синусоиды и, когда он высветится, вызовите объектное меню нажатием правой кнопки мыши. В этом меню выберите опцию Create → Constant. В появившуюся константу введите значение 1000. Аналогично создайте константы для входов генератора синусоиды «phase (degrees)» и «cycle» и введите в них значения 0 и 1 соответственно.

5. Из палитры Function → Programming → Structures выберите структуру For Loop и поместите ее на блок-диаграмме. Увеличьте размеры структуры.

Из той же палитры выберите структуру Case (Вариант) и поместите ее внутрь структуры Цикла For. Увеличьте размеры структуры Case (рис 28).

Переместите терминал текстового переключателя «Вид функции» внутрь рамки структуры Цикла For и поместите его рядом со структурой Case. Подключите терминал текстового переключателя к терминалу Выбора Case на левой рамке структуры Case (прямоугольник со знаком ).

Из палитры Function → Programming → Structures выберите узел формул (Formula Node) и поместите его внутри окна варианта № 0 структуры Case. С помощью Меточного инструмента введите в узел формул формулы для параболы (Y = X*X). Соблюдайте синтаксис и принятые обозначения математических операций! Математическое выражение всегда заканчивается «точкой с запятой».

6. Наведите меточный инструмент на левую рамку узла формул. Щелкнув правой кнопкой мыши, вызовите объектное меню. Выберите из него опцию Add Input (Добавить вход) и введите Х – имя входной переменной для узла формул. Входной (независимой) переменной для формул будет Х, а выходной (зависимой) переменной – Y.

Вызовите объектное меню на правой рамке узла формул и, выбрав из него опцию Add Output (Добавить Выход), введите имя выхода «Y».

7. Аналогичным образом поместите узлы формул в окнах Case № 1, № 2, № 3. Окна Case № 1, № 2, № 3 можно создать трижды выбирая из объектного меню структуры Case опцию Add Case After. Впишите в них формулы Y=X**3, Y=exp(X), Y=sinc(X). Создайте для каждого окна на рамке слева вход «Х», а на рамке справа – выход «Y».

8. Выберите из палитры Function → Programming → Cluster, Class & Variant функцию Bundle и поместите ее слева от терминала графического индикатора. Функция Bundle служит для объединения двух потоков данных, соответствующих переменным X и Y, до их подачи на двухкоординатный графический индикатор. Образно функцию Bundle можно представить в виде «многоштырькового разъема», после которого протянут «толстый многожильный кабель» к графическому индикатору. На блок-диаграмме «многожильный кабель» изображается более толстой линией, в сравнении с «толщиной» проводников, входящих в Bundle.

9. Выберите из палитры Function → Programming → Application Control функцию Stop и поместите ее справа от терминала кнопки STOP.

Рисунок 28 – Блок-диаграмма ВП

10. С помощью «Катушки» подключите терминал счета (прямоугольник с буквой N) Цикла For к проводу, идущему от терминала Samples генератора синусоиды к константе со значение 1000.

11. Подключите выходной терминал генератора синусоиды «Sinusoidal Pattern» через туннель на левой рамке Цикла For к туннелю на левой рамке структуры Case. Это будет входной туннель структуры Case.

12. Подключите нижнее поле ввода терминала «Bundle Element» функции Bundle через туннель справа в рамке Цикла For к туннелю справа в рамке структуры Case. Это будет выходной туннель структуры Case.

13. Подключите входы «X» узлов формул в окнах вариантов № 0,1,2 и 3 структуры Case к входному туннелю структуры Case.

14. Подключите выходы «Y» узлов формул в окнах № 0,1,2 и 3 структуры Case к выходному туннелю структуры Case.

15. Подключите верхнее поле ввода терминала «Bundle Element» функции Bundle через другой туннель справа в рамке Цикла For к проводу, идущему от выходного терминала генератора синусоиды «Sinusoidal Pattern» к входному туннелю структуры Case, внутри рамки Цикла For, не заходя, однако проводом внутрь рамки структуры Case.

16. Подключите выход терминала «Output Element» функции Bundle к терминалу графического индикатора.

17. Подключите терминал кнопки STOP к входному терминалу функции Stop.

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

 

 

Самостоятельная работа

Создайте ВП, который будет производить построение следующих графиков функций:

,

,

,

, если x >= 0,

где N – номер варианта.

Независимая переменная х в формулах имитируется генератором синусоиды в пределах изменения его амплитуды ±Х = Umax. Значение амплитуды Umax задается ползунковым регулятором амплитуды, при этом максимальное значение на ползунке 10N. Количество отсчетов синусоиды равно 1000N. Начальная фаза синусоиду – 0, число циклов (периодов) синусоиды – N.

Примечание: при задании функции  ее следует преобразовать к виду .

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Из каких основных компонентов состоит Ваш ВП?

2 Какие приемы использования структуры Case Вы знаете?

3 Что представляет собой терминал выбора?

4 Назначение узла формул.

5 Из каких подпалитр состоит палитра Controls (Элементов)?

6 Из каких подпалитр состоит палитра Functions (Функций)?

7 Назовите назначение управляющих кнопок на блок-диаграмме.

 

 


 

ПРАКТИЧЕСКАЯ РАБОТА 6

Работа с массивами

 

Цель работы:

- изучить типовые приемы создания массива элементов управления и отображения;

- изучить типовые приемы создания массива констант;

- изучить функции работы с массивами;

- освоить приемы работы с массивами.

Краткие теоретические сведения

Массивы объединяют элементы одного типы данных. Массив – это набор элементов определенной размерности. Элементами массива называют группу составляющих его объектов. Размерность массива – это совокупность столбцов (длина) и строк (высота), а также глубина массива. Массив может иметь одну и более размерностей в каждом направлении, насколько позволяет оперативная память.

Данные, составляющие массив, могут быть любого типа: целочисленного, логического или строкового. Массив также может содержать элементы графического представления данных и кластеры. Использовать массивы удобно при работе с группами данных одного типа и при накоплении данных после повторяющихся вычислений. Массивы идеально подходят для хранения данных, полученных с графиков, или накопленных во время работы циклов, причем одна итерация цикла создает один элемент массива.

Все элементы массива упорядочены. Чтобы к ним было легко обращаться, каждому элементу присвоен индекс. Нумерация элементов массива всегда начинается с 0. Таким образом, индексы массива находятся в диапазоне от 0 до (n-1), где n – число элементов в массиве.

Создание массива элементов управления и отображения. Для создания массива элементов управления или отображения данных, как показано на рисунке 29, необходимо выбрать шаблон массива из палитры ControlsArray & Cluster и поместить его на лицевую панель. Затем поместить в шаблон массива элемент управления либо отражения данных.

Рисунок 29 – Массив элементов управления или отображения данных

Создание массива констант. Создать массив констант на блок-диаграмме можно, выбрав в палитре FunctionArray шаблон Array Constant и поместив в него числовую константу. Массив констант удобно использовать для передачи данных в подпрограммы ВП.

Двумерные массивы. В двумерном (2D) массиве элементы хранятся в виде матрицы. Таким образом, для размещения элемента требуется указание индекса столбца и строки. На рисунке 30 показан двумерный массив, состоящий из 6 столбцов (длина) и 4 строк (высота). Количество элементов в массиве – 24.

Рисунок 30 – Двумерный массив

Для увеличения размерности массива необходимо щелкнуть правой кнопкой мыши по элементу индекса и выбрать из контекстного меню пункт Add Dimension (Добавить размер). С этой целью также можно использовать инструмент ПЕРЕМЕЩЕНИЕ. Для этого надо просто изменить размер элемента индекса.

Автоматическая индексация. Цикл For и цикл Wile могут автоматически накапливать массивы и проводить их индексацию на своих границах. Это свойство называется авто-индексацией. После соединения терминала данных массива с терминалом выхода из цикла каждая итерация цикла создает новый элемент массива. На блок-диаграмме, изображенной на рисунке 31 видно, что проводник данных, соединяющий терминал данных массива с терминалом выхода из цикла, стал толще, а сам терминал выхода из цикла окрашен в цвет терминала данных массива.

Рисунок 31 – Блок-диаграмма

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

Ввиду того, что цикл For часто используется при работе с циклами, для него в LabVIEW авто-индексация включена по умолчанию. Для цикла While авто-индексация по умолчанию отключена. Для того, чтобы включить авто-индексацию, необходимо щелкнуть правой кнопкой мыши по терминалу входа/выхода из цикла и выбрать в контекстном меню пункт Enable Indexing (разрешить авто-индексацию).

Создание двумерных (2D) массивов. Для создания двумерных массивов необходимо использовать два цикла For, один внутри другого. Как показано на рисунке 32, внешний цикл создает элементы массива в строке, а внутренний цикл создает элементы массива в столбце.

Рисунок 32 – Блок-диаграмма

Функции работы с массивами. Для создания и управления массивами используются функции, расположенные в палитре FunctionArray. Наиболее часто используемые функции работы с массивами включают в себя:

 Array Size (Размер массива) – показывает количество элементов массива каждой размерности. Если массив n-мерный, на выходе функции Array Size будет массив из n элементов.

Например, для приведенного на рисунке 33 массива функция Array Size выдает значение 3.

Рисунок 33 – Функция Array Size

 Initialize Array (задать массив) – создает n-мерный массив, в котором каждый элемент инициализирован значением поля ввода данных element. Для увеличения размерности массива достаточно добавить поля ввода данных, растянув узел функции. Например, если для функции Initialize Array заданы следующие значения параметров: на поле element подается значение 4, а на поле dimension size (если оно одно) – значение 3, то на выходе получится массив, показанный на рисунке 34.

Рисунок 34 – Функция Initialize Array

 Build Array (создать массив) – объединяет несколько массивов или добавляет элемент в n-мерный массив. Изменение размера функции увеличивает количество полей ввода данных, что позволяет увеличить количество добавляемых элементов. Например, если объединить два предыдущих массива, то функция Build Array выдаст на выходе массив, представленный на рисунке 35.

Рисунок 35 – Функция Build Array

Для объединения входных данных в более длинный массив той же размерности, как показано на рисунке 36, достаточно щелкнуть правой кнопкой мыши на функции и выбрать из контекстного меню пункт Concatenate Inputs (объединение входных данных).

Рисунок 36

 Array Subset (подмножество массива) – выдает часть массива, начиная с индекса, поступившего на поле index, и длиной, указанной в поле length (длина). Например, если подать предыдущий массив на поле ввода функции Array Subset, значение 2 – на поле index и 3 – на поле Подмножество (рис 37).

Рисунок 37

 Index Array (индекс массива) – выдает элемент, соответствующий индексу, значение которого подается на поле ввода index. Например, при использовании предыдущего массива функция Index Array выдаст значение 2, если на поле ввода данных index подать значение 0.

Функцию Index Array можно использовать для вычисления строки или столбца из двумерного массива и дальнейшего отображения в виде подмассива. Для этого двумерный массив надо подать в поле ввода данных функции. Функция Index Array должна иметь два поля index. Верхнее поле index указывает строку, а нижнее – столбец. Можно задействовать оба поля index для выбора отдельного элемента или только одно, для выбора строки или столбца. Например, в поле ввода данных функции подается массив, показанный на рисунке 38.

Рисунок 38

Функция Index Array в поле вывода данных выдаст следующий массив в случае, если на поле index (строка) подается значение 0 (рис 39).

Рисунок 39

Задание 1 ВП Работа с массивами

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

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

1. Откройте новый ВП и создайте лицевую панель, показанную на рисунке 40:

а) в палитре ControlsArray & Cluster выберите шаблон массива;

б) созданному массиву присвойте имя Массив случайных чисел;

в) поместите внутрь шаблона массива цифровой элемент отображения, расположенный в палитре ControlsNumeric;

г) с помощью инструмента ПЕРЕМЕЩЕНИЕ измените размер массива таким образом, чтобы он содержал 10 элементов;

д) нажмите и удерживайте клавишу Ctrl и, перемещая элемент Массив случайных чисел, создайте две его копии;

е) копиям присвойте имена Конечный массив и Подмножество массива;

ж) создайте три цифровых элемента управления и присвойте им имена Масштабный коэффициент, Старт подмножества, Количество элементов подмножества;

з) щелкните правой кнопкой мыши по элементам Старт подмножества и Количество элементов подмножества, в контекстном меню выберите пункт Representation, затем пункт I32;

к) значения элементов управления данных пока не изменяйте.

Рисунок 40 – Лицевая панель

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

2. Постройте блок-диаграмму, показанную на рисунке 41.

Рисунок 41 – Блок-диаграмма

 Выберите функцию Random Number (0-1), расположенную в палитре FunctionsNumeric. Эта функция будет генерировать случайное число в пределах от 0 до 1

 Выберите цикл For, расположенный в палитре FunctionsStructures. Этот цикл на терминале выхода накапливает массив из 10 случайных чисел. Терминалу количества итераций присвойте значение 10.

 Выберите функцию Array Subset, расположенную в палитре FunctionsArray. Эта функция выдает подмножество массива, начиная со значения, введенного в элементе Старт подмножества, и будет содержать количество элементов, указанное в элементе Количество элементов подмножества.

3. Сохраните ВП под именем Работа с массивами.

Запуск ВП

4. Перейдите на лицевую панель, измените значения элементов управления и запустите ВП.

Цикл For совершит 10 итераций. Каждая итерация создаст случайное число и сохранит его в терминале выхода из цикла. В элементе Массив случайных чисел отобразится массив из 10 случайных чисел. ВП умножит каждое значение этого массива на число, введенное в элемент управления Масштабный коэффициент, для создания массива, отображаемого в индикаторе Конечный массив. ВП выделит подмножество из получившегося массива, начиная со значения в элементе Старт подмножества длиной, указанной в элементе Количество элементов подмножества, и отобразит это подмножество в индикаторе Подмножество массива.

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

Задание 2 Создать ВП согласно Вашему варианту

Номер варианта

Содержание задания

1

Создайте ВП, который полностью изменяет порядок элементов в массиве, содержащем 10 случайных чисел. Например, элемент массива с индексом 0 становится элементом массива с индексом 9, а элемент массива с индексом 1 становится элементом массива с индексом 8, и так далее. Для изменения порядка данных в массиве следует использовать функцию Reverse ID Array, расположенную в палитре FunctionsArray

2

Создайте ВП, который генерирует одномерный массив и затем попарно перемножает элементы, начиная с элементов с индексами 0 и 1 и т.д., а затем выводит результаты в массив элементов отображения данных. Например, входной массив имеет значение (1, 23, 10, 5, 7, 11), а в результате получается массив (23, 50, 77). Используйте функцию Decimate ID Array, расположенную в палитре FunctionsArray

3

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

4

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

5

Создайте ВП, который генерирует двумерный массив случайных чисел, содержащий 3 строки и 10 столбцов.

6

Создайте ВП, который генерирует одномерный массив случайных чисел и сортирует полученный массив в порядке возрастания. На лицевую панель вывести массив случайных чисел и отсортированный массив. Для сортировки элементов в массиве следует использовать функцию Sort ID Array, расположенную в палитре FunctionsArray

7

Создайте ВП, который генерирует одномерный массив случайных чисел и выводит максимальное значение полученного массива и его порядковый номер. Использовать функцию Array Max & Min, расположенную в палитре FunctionsArray

8

Создайте ВП, который генерирует одномерный массив случайных чисел и выводит минимальное значение полученного массива и его порядковый номер. Использовать функцию Array Max & Min, расположенную в палитре FunctionsArray

9

Создайте ВП, который генерирует двумерный массив случайных чисел, содержащий 4 строки и 5 столбцов.

10

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

11

Создайте ВП, который генерирует двумерный массив случайных чисел размерностью 5 × 6, и выдает часть этого массива размерностью 4 × 5. На лицевую панель вывести исходный массив случайных чисел и полученный массив.

12

Создайте ВП, который генерирует двумерный массив случайных чисел и осуществляет транспонирование полученного массива. На лицевую панель вывести массив случайных чисел и транспонированный массив. Для транспонирования массива используйте функцию Transpose 2D Array, расположенную в палитре FunctionsArray

13

Создайте ВП, который полностью изменяет порядок элементов в массиве, содержащем 20 случайных чисел. Например, элемент массива с индексом 0 становится элементом массива с индексом 9, а элемент массива с индексом 1 становится элементом массива с индексом 8, и так далее. Для изменения порядка данных в массиве следует использовать функцию Reverse ID Array, расположенную в палитре FunctionsArray

14

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

15

Создайте ВП, который создаст двумерный массив чисел размерностью 5 × 10 с помощью функции Initialize Array, расположенную в палитре FunctionsArray

 

 

 

 

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Из каких основных компонентов состоит Ваш ВП?

2 Какие типовые приемы создания массива констант Вы знаете?

3 Какие функции работы с массивами Вы знаете?

4 Что такое полиморфные функции?

5 Как создать многомерный массив?

6 Какие функции создания массивов Вы знаете?

7 Как создать двумерный массив в цикле For?

8 Как объединить два одномерных массива в двумерный массив?

9 Как объединить два одномерных массива в более длинный массив той же размерности?

10 Каково назначение элемента Старт подмножества в подпрограмме ВП?

11 Какая функция генерирует случайное число в пределах от 0 до 1?

12 Как выбирается количество элементов подмножества в подпрограмме ВП?

 

 

 


 

ПРАКТИЧЕСКАЯ РАБОТА 7

Создание кластеров из элементов управления и отображения данных.

Работа с кластерами. Масштабирование кластера

 

Цель работы:

- изучение типовых приемов создания кластеров и функций отображения кластеров;

- создание кластеров на лицевой панели;

- сборка и демонстрирование кластеров с использованием функций обработки кластеров;

- создание ВП, использующего полиморфизм в кластерах.

Краткие теоретически сведения

Как и массив, кластер является структурой, группирующей данные. Однако в отличие от массива кластер может группировать данные различных типов (логические, числовые и т.д.). Объединение нескольких групп данных в кластер устраняет беспорядок на блок-диаграмме и уменьшает количество полей ввода/вывода данных, необходимых подпрограмме ВП. Максимально возможное количество полей ввода/вывода данных ВП равно 28. Если лицевая панель содержит более 28 элементов, которые необходимо использовать в ВП, можно некоторые из них объединить в кластер и связать кластер с полем ввода/вывода данных. Как и массив, кластер может быть элементом управления или отображения данных, однако кластер не может одновременно содержать элементы управления и отображения данных.

Создание кластера из элементов управления и отображения данных. Для создания кластеров из элементов управления и отображения данных следует выбрать шаблон кластера в палитре ControlsArray & Cluster и поместить его на лицевую панель. После этого шаблон кластера следует заполнить элементами. Изменить размер кластера можно с помощью курсора.

На рисунке 42 показан кластер, содержащий три элемента управления.

Рисунок 42

Порядок элементов в кластере. Каждый элемент кластера имеет свой логический порядковый номер, не связанный с положением элемента в шаблоне. Первому помещенному в кластер элементу автоматически присваивается номер 0, второму элементу - 1 и так далее. При удалении элемента порядковые номера автоматически изменяются.

Порядок элементов в кластере определяет то, как элементы кластера будут распределены по терминалам функций Bundle (объединение) и Unbundle (разделения) на блок-диаграмме.

Посмотреть и изменить порядковый номер объекта, помещенного в кластер, можно, щелкнув правой кнопкой мыши по краю кластера и выбрав из контекстного меню пункт Reorder Controls In Cluster. Панель инструментов и кластер примут вид, показанный на рисунке 43.

В белом поле (1) указан текущий порядковый номер элемента, в черном (2) - новый порядковый номер. Для установки порядкового номера элемента нужно в поле ввода текста Click to set to ввести число и нажать на элемент. Порядковый номер элемента изменится. При этом корректируются порядковые номера других элементов. Сохранить изменения можно, нажав кнопку ОК (подтвердить) на панели инструментов.

Рисунок 43

Создание кластера из констант. На блок-диаграмме, можно создать кластер констант, выбрав в палитре FunctionsCluster шаблон Cluster Constant и поместив него числовую константу или другой объект данных, логический или строковый.

Функции работы с кластерами. Для создания и управления кластерами используются функции, расположенные в палитре FunctionsCluster. Функции Bundle (Связать) и Bundle by Name (Связать по названию) используются для сборки и управления кластерами.  Функции Unbundle (Разделить) и Unbundle by Name (Разделить по названию) используются для разборки кластеров.

Эти функции также можно вызвать, щелкнув правой кнопкой мыши по терминалу данных кластера и выбрав из контекстного меню подменю Cluster Tools (Инструменты кластеров). Функции Bundle и Unbundle автоматически содержат правильное количество полей ввода/вывода данных. Функции Bundle by Name и Unbundle by Name в полях ввода/вывода данных содержат имя первого элемента кластера.

Иногда удобно поменять массивы на кластеры и наоборот, поскольку LabVIEW включает в себя намного больше функций, работающих с массивами, чем с кластерами. Для преобразования кластера в массив служит функция Кластер в массив (Cluster to Array). Обратная операция осуществляется с помощью функции Массив в кластер (Array to Cluster). Функция Кластер в массив конвертирует кластер с количеством элементов N одного типа данных в массив с количеством элементов N того же типа данных. Индекс массива соответствует порядковому номеру в кластере (т.е. нулевой элемент кластера становится значением массива с индексом 0). Следует обратить внимание, что при использовании этой функции все элементы в кластере должны быть одного типа.

Функция Массив в кластер преобразует одномерный массив с числом элементов N в кластер с числом элементов N того же типа данных. Для включения этой функции необходимо щелкнуть правой кнопкой мыши по терминалу Массив в Кластер и выбрать опцию Размер кластера (Cluster Size) для установления размера выходного кластера, поскольку кластеры в отличие от массивов, не устанавливают свой размер автоматически. Размер кластера по умолчанию равен 9. Если массив имеет меньшее количество элементов, чем это определено размером кластера, LabVIEW автоматически создаст дополнительные элементы кластера со значениями по умолчанию для типа данных кластера. Однако, если количество элементов входного массива больше величины, установленной в окне размера кластера, то проводник блок-диаграммы, идущий к выходному кластеру, будет разорванным, пока не будет отрегулирован его размер.

Задание 1 ВП Работа с кластерами

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

1. Откройте новый ВП и создайте лицевую панель, как показано на рисунке 44:

Рисунок 44

а) поместите на лицевую панель кнопку «Стоп» и круглый светодиод;

б) из палитры ControlsArray & Cluster выберите шаблон кластера;

в) объекты лицевой панели, показанные на рисунке 44, поместите в шаблон кластера;

г) создайте и переименуйте копию элемента Кластер в Модифицированный кластер. После этого щелкните правой кнопкой мыши по границе шаблона кластер Модифицированный кластер и выберите из контекстного меню пункт Change to Indicator;

д) повторите пункт «г» для создания элемента Маленький кластер. Измените его, как показано на рисунке 44.

2. Проверьте порядковые номера элементов в кластерах Кластер и Маленький кластер. Порядковые номера элементов кластера Модифицированный кластер и Кластер должны совпадать:

а) щелкните правой кнопкой мыши по границе шаблона каждого кластера, из контекстного меню выберите пункт Reorder Controls in Cluster;

б) порядковые номера элементов установите, как показано на рисунке 45.

Рисунок 45

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

3. Создайте блок-диаграмму, показанную на рисунке 46.

Рисунок 46

Из палитры FunctionsCluster выберите функцию Unbundle. Эта функция разъединяет кластер Кластер. Измените размер этой функции до четырех полей ввода данных или соедините терминал данных кластера с функцией для автоматического добавления полей ввода данных.

Из палитры FunctionsCluster выберите функцию Bundle. Эта функция объединит элементы в кластер Маленький кластер.

Из палитры FunctionsCluster выберите функцию Unbundle by Name. Эта функция выделит два элемента из кластера Кластер. Измените размер функции до двух полей вывода данных. Если имена в полях данных отличаются от показанных на рисунке 46, следует щелкнуть правой кнопкой мыши по имени элемента и в контекстном меню войти в раздел Select Item.

Из палитры FunctionNumeric выберите функцию Increment. Эта функция добавит 1 к значению элемента Число.

Из палитры FunctionBoolean выберите функцию Not. Эта функция выдаст логическое отрицание элемента Логический 1.

Из палитры FunctionsCluster выберите функцию Bundle by Name. Эта функция изменит значения элементов Число и Логический 1 в кластере Кластер и создаст Модифицированный кластер. Измените размер этой функции на два поля ввода данных. Если имена в полях данных отличаются от показанных на рисунке 46, следует щелкнуть правой кнопкой мыши по имени элемента и в контекстном меню войти в раздел Select Item.

4. Сохраните ВП под именем Работа с кластерами.

5. Перейдите на лицевую панель и запустите ВП.

6. Поменяйте значения элементов в кластере Кластер и запустите ВП.

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

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Из каких основных компонентов состоит Ваш ВП?

2 Что понимается под термином «Кластер»?

3 Какие типовые приемы создания кластеров Вы знаете?

4 Какие функции отображения кластеров Вы знаете?

5 Как создать кластер на лицевой панели?

6 Как собираются и демонтируются кластеры?

7 Какие функции обработки кластеров Вы знаете?

8 Что такое полиморфизм в кластерах?

9 Как создать модифицированный кластер?

10 Каково основное отличие кластера от массива?

11 Каков порядок размещения элементов в кластере?

12 Как посмотреть и изменить порядковый номер объекта, помещенного в кластер?

13 Как изменить количество полей ввода/вывода в кластере?

14 Как устанавливают размер кластера?

15 Каков размер кластера по умолчанию?

16 Как создать и переименовать копию элемента «Кластер»?

 

 

ПРАКТИЧЕСКАЯ РАБОТА 8

Графическое отображение данных

 

Цель работы:

- приобрести навыки по использованию цикла For и графика Диаграмм для получения и отображения данных;

- создать массив, используя свойство авто-индексации цикла For и вывести данные массива на график Осциллограмм;

- отобразить данные на графике и проанализировать их.

Краткие теоретические сведения

График Диаграмм. График  Диаграмм (Waveform Chart) (волнообразный график) - специальный элемент отображения данных в виде одного и более графиков. График Диаграмм расположен в палитре ControlsGraph. На рисунке 47 показан пример графика Диаграмм с двумя графиками: экспериментальные данные и их бегущее среднее значение.

Рисунок 47 – График Диаграмм

1 – название; 2 – шкала Y; 3 – шкала X; 4 – панель управления шкалами; 5 – палитра инструментов для работы с графиком; 6 – панель управления графиком

График Диаграмм использует три различных режима отображения данных: strip chart (ленточный), scope chart (предельный) и sweep chart (амплитудный). Режим по умолчанию - strip chart.

Задание режима осуществляется щелчком правой кнопки мыши по диаграмме и выбором пункта AdvancedUpdate Mode из контекстного меню.

Режим strip chart представляет собой экран, прокручиваемый слева направо, подобно бумажной ленте. В режиме scope chart по достижении правой границы поле графика очищается, и заполнение диаграммы начинается с левой границы. Режим sweep chart, в отличие от режима scope chart, не очищает поле графика, а отделяет новые данные от старых вертикальной линией маркером (рис 48).

Рисунок 48

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

Рисунок 49

График Диаграмм может отображать несколько графиков. Для объединения отображаемых данных используется функция Bundle (объединение), расположенная в палитре FunctionCluster. Например, блок-диаграмма, показанная на рисунке 50, с помощью функции Bundle объединяет выходные данные трех подпрограмм ВП для последующего отображения на графике Диаграмм.

Рисунок 50

График Осциллограмм и двухкоординатный график Осциллограмм. С помощью графиков в виде осциллограмм ВП обычно отображает накопленные в массив данные. На рисунке 51 показаны элементы графика.

График Осциллограмм (Waveform Graph) и двухкоординатный график Осциллограмм (XY Graph) расположены в палитре ControlsGraph. График Осциллограмм отображает только однозначные функции, такие как y = f(x), с точками, равномерно распределенными по оси X. Двухкоординатный график Осциллограмм отображает любой набор точек, будь  то равномерно распределенная выборка во времени или нет.

Рисунок 51 – График Осциллограмм

1 – панель управления свойствами осциллограмм; 2 – курсор; 3 – основная размерная сетка; 4 – дополнительная размерная сетка; 5 – палитра элементов управления графиком; 6 – панель перемещения курсора; 7 – панель управления свойствами курсора; 8 – панель управления шкалой; 9 – шкала X; 10 – шкала Y; 11 – собственная метка графика

Одиночный график Осциллограмм работает с одномерными массивами и представляет данные массива в виде точек на графике, с приращением по оси X равным 1 и началом в точке x = 0. Графики также отображают кластеры с установленным начальным значением x0, dx и массивом данных по шкале y.

Для отображения множества осциллограмм необходимо изменить размер панели Plot legend (легенда графика). График множества Осциллограмм используется с целью экономии пространства на лицевой панели и для сравнения осциллограмм данных между собой.

График множества Осциллограмм работает с двумерными массивами данных, где каждая строка массива есть одиночная осциллограмма данных и представляет данные массива в виде точек на графике, с приращением по оси X равным 1 и началом в точке x = 0.

Графики множества Осциллограмм отображают также и кластеры с установленным начальным значением x0, dx и массивом данных, содержащим кластеры. Каждый кластер содержит массив точек, отображающих данных по шкале Y. Для создания массива кластеров следует использовать функцию Bundle, которая объединяет массивы в кластеры. Далее с помощью функции Build Array создается массив кластеров. Можно также использовать функцию Build Cluster Array, которая создает массив кластеров с определенными полями ввода данных.

Одиночные двухкоординатные графики Осциллограмм. Одиночный двухкоординатный график Осциллограмм работает с кластерами, содержащими массивы x и y. Двухкоординатный график Осциллограмм также воспринимает массивы точек, где каждая точка является кластером, содержащим значения по шкалам x и y.

Двухкоординатные графики множества Осциллограмм. Двухкоординатные графики множества Осциллограмм работают с массивами осциллограмм, в которых осциллограмма данных является кластером, содержащим массивы значений x и y. Двухкоординатные графики множества Осциллограмм воспринимают также массивы множества осциллограмм, где каждая осциллограмма представляет собой массив точек. Каждая точка - это группа данных, содержащая значения x и y.

Задание 1 ВП Температурный анализ

Ниже приведена последовательность действий для создания ВП, который измеряет температуру каждые 0,25 с. в течение 10 с. В процессе измерения ВП в реальном масштабе времени отображает данные на графике Диаграмм. После завершения измерений ВП выводит данные на график Осциллограмм и рассчитывает минимальную, максимальную и среднюю температуру. Кроме того, ВП отображает аппроксимацию осциллограммы температуры.

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

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

Рисунок 52

а) выберите график Диаграмм (Waveform Chart) из палитры ControlsGraph и поместите его на лицевую панель. На графике Диаграмм будет отображаться значение температуры в реальном масштабе времени. Введите текст Температура в поле собственной метки графика.

Обратите внимание на то, что на панели управления графиком (chart legend) введен текст Plot 0. Измените текст на Температура с помощью инструмента ВВОД ТЕКСТА

Введите текст Градусы F в поле собственной метки оси ординат графика.

Введите текст Время (с) в поле собственной метки по оси абсцисс графика.

б) Щелкните правой кнопкой мыши по графику и выберите пункт Properties. Появится диалоговое окно Chart Properties (свойства графика). Перейдите на закладку Format and Precision и установите значение параметра Digits of precision (порядок точности) равное 2 (рис 53).

Рисунок 53

в) Нажмите на закладку Plots и установите стиль точек на графике диаграмм в виде x (рис 54).

Рисунок 54

г) Выберите график Осциллограмм (Waveform Graph) из палитры ControlsGraph и поместите его на лицевую панель. На графике Осциллограмм будут отображаться значения температуры по завершении работы ВП и их аппроксимация. С помощью инструмента ПЕРЕМЕЩАНИЕ измените размер панели plot legend. С помощью инструмента ВВОД ТЕКСТА переименуйте График 0 в Промежуточный, а График 1 - в Аппроксимированный.

Измените названия осей и собственные метки графика осциллограмм согласно рисунку 52.

Установите стиль точек осциллограммы Промежуточный в виде маленького квадрата.

Пока не создавайте элементы отображения данных Среднее, Макс, и Мин.

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

2. Постройте блок-диаграмму, как показано на рисунке 55.

Рисунок 55

Выберите Термометр.vi, созданный в практической работе 3, и поместите его на блок-диаграмму. Этот ВП выдает одно измеренное значение температуры.

В палитре FunctionsTime & Dialog выберите функцию Wait Until Next ms Multiple. С помощью числовой константы на поле ввода функции подайте значение 250, что заставит цикл For выполняться каждые 0,25 с.

FunctionsArray выберите функцию Array Max & Min. Эта функция определяет минимум и максимум температуры.

Functions → Analyze → Mathematics → Probability and Statistics выберите ВП Mean VI. Этот ВП определяет среднее значение измеренной температуры.

Щелкните правой кнопкой мыши по полю вывода данных Array Max & Min и ВП Mean VI и выберите в контекстном меню пункт CreateIndicator для создания элементом Максимальное, Минимальное и Среднее.

FunctionsAnalyzeMathematicsCurve Fitting (сглаживание) и выберите ВП General Polynomial Fit (основная полиномиальная аппроксимация). Этот ВП проведет аппроксимацию осциллограммы температуры.

В палитре FunctionsCluster выберите функцию Bundle. Нажмите и удерживайте клавишу Ctrl во время перемещения функции для создания ее копии. Эта функция объединяет элементы в одномерный кластер. Элементы содержат начальное значение x0 = 0, dx и массив значений температуры по y. dx = 0,25 необходимо для того, чтобы ВП выводил значения температуры на график Осциллограмм каждые 0,25 секунды.

В палитре FunctionsArray выберите функцию Build Array. Эта функция создает массив кластеров из группы измеренных данных температуры и их аппроксимации.

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

Запуск ВП

4. Перейдите на лицевую панель и запустите ВП.

На графике Осциллограмм одновременно появятся осциллограммы данных температуры и их аппроксимации.

5. Поменяйте значения константы порядка аппроксимации на блок-диаграмме и снова запустите ВП.

6. Измените вид представления осциллограмм:

а) Щелкните правой кнопкой мыши по надписи Промежуточный на панели Plot legend и выберите в контекстном меню Common PlotsScatter Plot (экспериментальные точки);

б) Щелкните правой кнопкой мыши по надписи Аппроксимированный на панели Plot legend и в разделе Bar Plots контекстного меню выберите вторую иконку в средней строке. Получившийся график осциллограмм должен оказаться подобным изображенному на рисунке 56.

Рисунок 56

7. Сохраните и закройте ВП.

Задание 2 Создать ВП согласно Вашему варианту

Номер варианта

Содержание задания

1

Создайте ВП, который генерирует двумерный массив случайных чисел размерностью 5 × 10 и отображает на графике строки полученного массива.

2

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

3

Создайте ВП, который генерирует двумерный массив случайных чисел размерность 11 × 4 и отображает на графике столбцы полученного массива.

4

Создайте ВП, который генерирует одномерный массив случайных чисел в диапазоне от 0 до 100 (состоящий из 7 элементов) до тех пор, пока минимальное значение массива не станет равным числу, введенному в элемент управления на лицевой панели. На лицевую панель вывести полученный массив, его график, минимальный элемент и число итераций.

5

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

6

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

7

Создайте ВП, который на лицевой панели содержит кластер и массив элементов отображения (Подмножеств массива). Кластер состоит из 2 регуляторов (старт подмножества и количество элементов подмножества) и массива числовых данных - Массив 1. Из массива 1 выделить подмножество, начиная с элемента Старт подмножества, содержащее количество элементов, заданное с регулятора Количество элементов подмножества, и поместить в массив - Подмножество массива. На графике Осциллограмм отображаются элементы Массива 1 и Подмножество массива.

8

Создайте ВП, который измеряет температуру каждые 20 с. в течении 2 мин. и отображает значения температуры в реальном масштабе времени.

9

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

10

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

11

Создайте ВП, который генерирует двумерный массив случайных чисел размерностью 5 × 6 и выдает часть этого массива размерностью 4 × 5. На лицевую панель вывести исходный массив случайных чисел, полученный массив и их графики.

12

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

13

Создайте ВП, который генерирует двумерный массив случайных чисел размерностью 3 × 7 и отображает на графике строки полученного массива.

14

Создайте ВП, который генерирует одномерный массив случайных чисел в диапазоне от 0 до 100 (состоящий из 7 элементов) до тех пор, пока максимальное значение массива не станет равным числу, введенному в элемент управления на лицевой панели. На лицевую панель вывести полученный массив, его график, максимальный элемент и число итераций.

15

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

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Назовите основные элементы графика Диаграмм. Для чего он предназначен?

2 Назовите основные элементы графика Осциллограмм. Для чего он предназначен?

3 Какие режимы отображения данных на графике Диаграмм Вы знаете?

4 С какими данными работает график множества Осциллограмм?

5 Какая функция определяет среднее значение массива?

6 Какая функция определяет минимальное и максимальное значение массива?

7 Какой ВП служит для аппроксимации графика Осциллограмм в Вашем ВП?

8 Как установить определенный стиль точек, цвет и тип линии на графике?

 

 

 

 

 


 

ПРАКТИЧЕСКАЯ РАБОТА 9

Строки и таблицы

 

Цель работы:

- изучить создание строковых элементов управления и отображения данных;

- приобрести навыки по использованию функций обработки строк;

- изучить создание элемента управления и отображения Таблица.

Краткие теоретические сведения

Строки. Строки - это последовательность отображаемых и неотображаемых ASCII символов. Строки обеспечивают независимый от платформы формат обмена данными. Некоторые из наиболее распространенных строковых приложений включают в себя:

- Создание простых текстовых сообщений.

- Передачу числовых данных в приборы в виде строк символов и преобразование строк в числовые данные.

- Сохранение числовых данных на диск. Чтобы сохранять числовые данные в виде ASCII, необходимо перед записью преобразовать их в строки.

- Диалоговые окна инструкций и подсказок.

На лицевой панели строки появляются в виде таблиц, полей ввода текста и меток.

Создание строковых элементов управления и отображения данных. Для работы с текстом и метками используются строковые элементы управления и отображения данных, расположенные в палитре ControlsString & Path. Создание и редактирование текста в строке производится с помощью инструментов УПРАВЛЕНИЕ и ВВОД ТЕКСТА. Для изменения размера строкового объекта на лицевой панели используется инструмент ПЕРЕМЕЩЕНИЕ. Для экономии места на лицевой панели можно использовать полосу прокрутки. Для этого необходимо щелкнуть правой кнопкой мыши по строковому объекту и выбрать в контекстном меню пункт Visible ItemsScrollbar (полоса прокрутки).

Тип отображения строкового объекта выбирается в его контекстном меню. Типы отображения строки и примеры заполнения поля ввода текста показаны в таблице 2.

Таблица 2 - Типы отображения строки и примеры заполнения ввода текста

Функции работы со строками. Для редактирования и управления строками на блок-диаграмме следует пользоваться функциями обработки строк, расположенными в палитре FunctionsString. Некоторые из функций работы со строками рассмотрены ниже:

- String Length - выдает количество символов в строке, включая пробелы. Например, функция String Length выдает значение 19 для приведенного текста: The quick brown fox (Быстрая чернобурка).

- Concatenate Strings (связать строки) - объединяет строки и одномерные массивы строк в отдельную строку. Для увеличения полей ввода данных функции следует изменить ее размер. Например, объединив предыдущую строку со следующим массивом строк (рис 57):

Рисунок 57

функция Concatenate Strings на выходе выдает следующую строку: The quick brown fox jumped over the lazy dog (Быстрая чернобурка перепрыгнула через ленивую собаку).

- String Subset (подстрока) - выдает подстроку определенной длины length, начиная со значения offset (смещение). Смещение первого элемента в строке равно 0. Например, если на поле ввода данных функции подать предыдущую строку, то функция String Subset при offset = 4 и length = 5 выдаст значение: quick.

- Match Pattern (похожая структура) - ищет повторяющуюся последовательность, поданную на поле ввода данных regular expression, в строке начиная со значения смещения offset, и, если находит соответствие, разбивает строку на три подстроки. Если соответствие не найдено, поле ввода данных match substring является пустым, а значение поля вывода данных offset past match (смещение повторяющейся последовательности в строке) равно -1. Например, на поле regular expression (шаблон подстроки) подается значение, а строка на входе VOLTS DC: + 1.22863Е + 1.

Функция Match Pattern выдаст величины before substring (перед строкой) VOLTS DC, match substring (шаблон подстроки) : и after substring (после подстроки) + 1.22863Е + 1, а также offset past match равный 9.

Преобразование числовых данных в строку. Для преобразования числовых данных в строковые используются ВП Build Text Express и функция Format Into String (конвертирование в строку). Обе эти функции имеют входные и выходные кластеры ошибок.

Примечание: При недостатке места на блок-диаграмме лучше использовать функцию Format Into String.

Экспресс-ВП  Build Text, расположенный в палитре FunctionsExpressOutput, производит объединение входных строк. Если входные величины имеют не строковый тип данных, то они преобразуются в строку в соответствии с настройками этого экспресс-ВП.

Функция Format Into String преобразует параметры любого формата, такие как числовые данные, в строку. Для увеличения количества параметров следует изменить размер функции.

Для преобразования строки в числовые данные следует использовать функцию Scan From String. Функция Scan From String преобразует строку, содержащую допустимые числовые символы, такие как 0-9, +, –, е, Е и разделитель, в данные числового формата. Функция начинает просмотр строки, подаваемой на поле ввода данных input string, с номера символа, задаваемого на поле initial search location (внутренний поиск положения строки). Функция может просматривать входящую строку различных типов данных, таких как числовые или логические данные, основываясь на формате строки. Для увеличения количества полей вывода данных следует изменить размер функции.

Таблицы. Элемент управления Таблица, расположенный в палитре ControlsList & Table, предназначен для создания таблиц на лицевой панели. Каждая ячейка находится в строке и столбце таблицы. Поэтому таблица отображает двумерный массив строк. На рисунке 58 показана таблица и ее составные части.

Рисунок 58 – Таблица

1 – ячейка таблицы; 2 – заголовок столбца; 3 – вертикальная полоса прокрутки; 4 – горизонтальная полоса прокрутки; 5 – заголовок строки; 6 – индекс по ГОРИЗОНТАЛИ; 7 – индекс по ВЕРТИКАЛИ

Для инициализации значений ячеек таблицы используется инструмент УПРАВЛЕНИЕ или ВВОД ТЕКСТА, с помощью которых достаточно ввести текст в выделенную ячейку.

Таблица - это двумерный массив строк. Таким образом, для использования таблицы в качестве элемента отображения данных необходимо двумерный массив чисел преобразовать в двумерный массив строк с помощью функции Number To Fractional String, расположенный в палитре FunctionsStringNumber Conversion. Заголовки строк и столбцов таблицы автоматически не отображаются. Необходимо создать одномерный массив строк, содержащий заголовки строк и столбцов таблицы.

Задание 1 ВП Компоновка строки

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

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

1. Откройте новый ВП и оформите лицевую панель, так как показано на рисунке 59. Воспроизводить комментарии и подписи к элементам не обязательно.

Рисунок 59

а) Щелкните правой кнопкой мыши по элементу Строка 2 и выберите из контекстного меню режим отображения ʽ\ʼ Codes Display.

б) Для элементов Длина строки и Смещение повторяющейся последовательности установите тип представления данных I32.

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

2. Постройте блок-диаграмму, как показано на рисунке 60.

Рисунок 60

Выберите функцию Format Into String, расположенную в палитре FunctionsString. Эта функция преобразует число в строку.

а) щелкните правой кнопкой мыши по функции Format Into String и выберите пункт Edit Format String для вызова соответствующего диалогового окна.

б) Выделите опцию Use specified precision (использовать определенную точность) и в поле ввода текста введите значение 4 для преобразования элемента Число в строку с четырьмя знаками после запятой.

в) Нажмите на кнопку ОК. LabVIEW создаст формат %4f, используя выбранную опцию.

г) С помощью инструмента ВВОД ТЕКСТА введите пробел с обеих сторон %4f и нажмите клавиши Shift + Enter. Таким образом, на элементе Комбинированная строка числовые данные появятся с пробелами с обеих сторон.

д) Щелкните правой кнопкой мыши по константе и выберите режим отображения ʽ\ʼ Codes Display из контекстного меню. Введенные пробелы заменятся на \.

Выберите функцию Concatenate Strings, расположенную в палитре FunctionsString. Эта функция объединяет входящие в нее строки в одну.

Выберите функцию String Length, расположенную в палитре FunctionsString. Эта функция выдаст значение количества символов в объединенной строке Комбинированная строка.

Выберите функцию Match Pattern, расположенную в палитре FunctionsString. Эта функция осуществляет поиск в элементе Строка 2 по шаблону : (двоеточие).

е) Щелкните правой кнопкой мыши по полю regular expression (постоянное выражение) и выберите пункт контекстного меню CreateConstant, введите двоеточие и нажмите на клавиши Shift + Enter.

Иконка ВП и соединительная панель

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

4. Сохраните ВП под именем Компоновка строки.vi. Этот ВП будет использоваться позднее.

Запуск ВП

5. Измените значение элементов на лицевой панели и запустите ВП.

ВП объединит элементы: Заголовок, Число и Завершение строки в строку Комбинированная строка и выдаст значение Длины строки.

ВП также найдет месторасположение подстроки : в элементе Строка 2. При выполнении ВП выводит на экран индекс первого элемента после двоеточия в элемент Смещение повторяющейся последовательности.

6. Сохраните и закройте ВП.

Задание 2 Создать ВП, согласно Вашему варианту

Номер варианта

Содержание задания

1

Создайте ВП, который генерирует двумерный массив случайных чисел размерностью 5 × 40 и записывает полученный массив в таблицу. Таблица должна содержать заголовки для каждого столбца.

2

Создайте ВП, который генерирует двумерный массив случайных чисел размерностью 3 × 10 и записывает полученный массив в таблицу. Таблица должна содержать заголовки для каждого столбца.

3

Создайте ВП, который объединяет 3 произвольные строки в одну, считает количество символов полученной строки и выдает подстроку определенной длины, указанной с лицевой панели.

4

Создайте ВП, который генерирует двумерный массив случайных чисел размерностью 5 × 6, транспонирует его и записывает в таблицу.

5

Создайте ВП, который объединяет 2 одномерных массива строк в отдельную строку.

6

Создайте ВП, который объединяет 2 произвольные строки в одну строку и выдает подстроку определенной длины, указанной с лицевой панели.

7

Создайте ВП, который объединяет 3 одномерных массива строк в одну отдельную строку.

8

Создайте ВП, который объединяет 4 строки, содержащие числовые данные, в строку.

9

Создайте ВП, который считает количество символов строки, введенной на лицевой панели.

10

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

11

Создайте ВП, который объединяет 4 одномерных массива строк в одну отдельную строку.

12

Создайте ВП, который объединяет 4 произвольные строки в одну строку и выдает подстроку определенной длины, указанной с лицевой панели.

13

Создайте ВП, который генерирует двумерный массив случайных чисел размерностью 5 × 8 и записывает полученный массив в таблицу. Таблица должна содержать заголовки для каждого столбца.

14

Создайте ВП, который объединяет 2 строки (1 - Автоматизация измерений 2 - контроля и испытаний) в одну строку и считает количество символов полученной строки.

15

Создайте ВП, который генерирует двумерный массив случайных чисел размерностью 6 × 8, транспонирует его и записывает в таблицу.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Как создать строковый элемент управления и отображения данных?

2 Назовите типы отображения строкового объекта.

3 Назовите основные функции работы со строками.

4 С помощью какой функции можно преобразовать числовые данные в строку?

5 Какая функция позволяет подсчитывать количество символов в строке?

6 Какая функция позволяет объединить строки и одномерные массивы строк в отдельную строку?

7 Как создать элемент управления Таблица? Для чего он предназначен?

8 Какая функция позволяет преобразовать двумерный массив чисел в двумерный массив строк?

 

 

 

 

 


 

ПРАКТИЧЕСКАЯ РАБОТА 10

Создание виртуального прибора для генерации сигнала и

отображения результатов в виде таблицы

 

Цель работы: Научиться создавать и настраивать ВП, не пользуясь шаблонами.

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

Рисунок 61 – Лицевая панель ВП Reduce Samples

Порядок выполнения:

Открытие пустого ВП (Blank VI)

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

Выполните следующие шаги, чтобы открыть пустой ВП (Blank VI):

1. В окне первоначального запуска Getting Started, щелкните по ссылке Blank VI (Пустой ВП) в разделе New (Новый) или нажмите сочетание клавиш Ctrl+N. Появятся пустые окна лицевой панели и блок-диаграммы.

Примечание: Пустой ВП можно открыть также, если выбрать меню File → New VI (Файл → Новый ВП) или File → New (Файл → Новый) и выбрать Blank VI (Пустой ВП) из списка Create New (Создать новый).

2. Если палитра функций (Functions palette) не видна, щелкните правой кнопкой мыши в любом свободном месте блок-диаграммы. Нажмите на значок в левом верхнем углу Палитры функций, чтобы закрепить палитру, и тогда она будет присутствовать постоянно.

Добавление экспресс-ВП, моделирующего сигнал

Выполните следующие шаги для поиска необходимого экспресс-ВП и добавления его на блок-диаграмму.

1. Выберите меню Help → Show Context Help (Помощь → Показать окно контекстной справки) на лицевой панели или блок-диаграмме, чтобы отобразить окно контекстной справки, которое показано на рисунке 62. Также для этого можно щелкнуть по кнопке Show Context Help Window на панели инструментов лицевой панели или блок-диаграммы.

Подсказка: Для отображения контекстной справки вы также можете нажать клавиши Ctrl+H (Mac OS) клавиши Command+Shift+H.

Рисунок 62 – Окно контекстной справки

2. В палитре Функций выберите Express → Input palette (Экспресс → палитра Ввод) и наведите курсор на один из экспресс-ВП в палитре Input. При наведении курсора на ВП окно Контекстной справки покажет информацию об этом ВП.

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

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

4. Выберите экспресс-ВП и поместите его на блок-диаграмму. На экране появится диалоговое окно Configure Simulate Signal (Настройка моделируемого сигнала).

5. Перемещайте курсор по различным опциям в диалоговом окне Configure Simulate Signal (Настройка моделируемого сигнала), таким как Frequency (Частота) (Гц) и Amplitude (Амплитуда). Просматривайте информацию, которая появляется в окне контекстной справки.

6. Настройте экспресс-ВП Simulate Signal (моделирование сигнала) так, чтобы он моделировал синусоиду с частотой 10.7 и амплитудой 2.

Сигнал в окне Result Preview (Предварительный просмотр результата) изменится и отобразит смоделированную синусоиду.

7. Щелкните по кнопке OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Configure Simulate Signal (Настройка моделируемого сигнала).

8. Поместите курсор мыши над экспресс-ВП Simulate Signal и посмотрите информацию, которая появится в окне контекстной справки. Окно Контекстной справки отобразит информацию о настройках экспресс-ВП Simulate Signal.

9. Сохраните ВП под именем Reduce Samples.vi в своей папке.

Поиск справочной информации и изменение сигнала

Выполните следующие шаги, чтобы с помощью справки LabVIEW Help найти экспресс-ВП, уменьшающий количество выборок в сигнале.

1. Наведите курсор на экспресс-ВП Simulate Signal и щелкните по ссылке Detailed help (Детализированная справка) в окне Контекстной справки, чтобы отобразить раздел Simulate Signal (Моделирование Сигнала) справки LabVIEW Help. Возможно, вам придется увеличить размер окна или прокрутить вниз окно Контекстной справки, чтобы увидеть ссылку Detailed help (Детализированная справка).

Вы также можете обратиться к справке LabVIEW Help, щелкнув правой кнопкой мыши по ВП или функции на блок-диаграмме или в прикрепленной палитре и выбрав пункт Help (Справка) из контекстного меню, или выбрав меню Help → Search the LabVIEW Help (Помощь » Найти в LabVIEW Help).

2. Щелкните по вкладке Search (Поиск), введите фразу sample compression в строке Type in the word(s) to search for (Введите слово для поиска) и нажмите клавишу Enter. Чтобы найти фразу целиком, нужно взять ее в кавычки. Например, чтобы сузить результаты поиска, введите "sample compression".

Эта фраза показывает, что нам необходимо от экспресс-ВП – сжатие (compression) или прореживание количества выборок в сигнале.

3. Дважды щелкните на раздел Sample compression в результатах поиска, чтобы отобразить раздел, который описывает экспресс-ВП Sample compression.

4. После того, как вы прочитаете описание экспресс-ВП, щелкните по кнопке Place on the block diagram (Разместить на блок-диаграмме), чтобы прикрепить экспресс-ВП к курсору.

5. Переместите курсор на блок-диаграмму.

6. Разместите экспресс-ВП Sample compression на блок-диаграмме справа от экспресс-ВП Simulate Signal.

7. Настройте экспресс-ВП Sample compression так, чтобы проредить сигнал с коэффициентом 25 относительно его среднего значения.

8. Щелкните по кнопке OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Configure Sample Compression.

9. Используйте инструмент Соединение, чтобы соединить выход Sine (Синус) экспресс-ВП Simulate Signal со входом Signals (Сигналы) экспресс-ВП Sample compression.

Настройка интерфейса пользователя на блок-диаграмме

1. На блок-диаграмме щелкните правой кнопкой мыши по выходу Mean (Среднее) экспресс-ВП Sample compression, и выберете опцию Create → Numeric Indicator (Создать → Числовой индикатор) из контекстного меню, чтобы создать числовой индикатор. Числовой индикатор Mean (Среднее) появится на блок-диаграмме.

2. Щелкните правой кнопкой мыши по выходу Mean (Среднее) экспресс-ВП Sample compression и выберите опцию Insert Input/Output (Добавить ввод/вывод) из контекстного меню, чтобы добавить входной терминал Enable (включить).

3. Щелкните правой кнопкой мыши по входу Enable (включить) и выберите пункт Create → Control (Создать → Элемент управления) из контекстного меню, чтобы создать выключатель. Терминал логического элемента управления появится на блок-диаграмме.

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

4. Щелкните правой кнопкой мыши по проводнику, который соединяет выход Sine (Синус) экспресс-ВП Simulate Signal со входом Signals (Сигналы) экспресс-ВП Sample compression,  выберите опцию Create → Graph Indicator (Создать → Графический индикатор) из контекстного меню.

5. Используйте инструмент Соединение, чтобы соединить выход Mean (Среднее) экспресс-ВП Sample compression с графическим индикатором Sine (Синус). Появится Функция Merge Signals (Объединение сигналов).

6. Расположите объекты на блок-диаграмме, как показано на рисунке 63.

Рисунок 63 – Блок-диаграмма ВП Reduce Samples

7. Переключитесь на лицевую панель.

Добавленные элементы Управления (Сontrols) и Индикаторы (Indicators) появились на лицевой панели и имеют ярлыки, соответствующие тем вводам и выводам ВП, для которых вы их создавали.

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

8. Сохраните ВП.

Настройка непрерывного выполнения ВП до остановки его пользователем

В текущей версии ВП запускается один раз, сгенерирует сигнал и заканчивает свое выполнение. Чтобы ВП выполнялся до определенного момента, можно использовать цикл While (While Loop).

Выполните следующие шаги, чтобы добавить цикл While (While Loop) на блок-диаграмму.

1. Активируйте лицевую панель и запустите ВП.

ВП выполнится один раз и, затем, остановится. На лицевой панели нет кнопки остановки.

2. Переключитесь на блок-диаграмму.

3. Щелкните по кнопке Search (Найти)  на палитре Функций, и введите слово While в текстовое поле. LabVIEW ищет слова, которые вы набрали, и отображает любые совпадения в текстовом поле результатов поиска. В поле результатов поиска слева от названия подпалитры будет отображаться символ папки, а в случае экспресс-ВП это будет иконка ВП на голубом фоне.

4. Дважды щелкните While Loop → Execution Control (Цикл While → Управление выполнением), чтобы отобразить подпалитру Execution Control и Цикл While.

5. Выберите цикл While (While Loop) в палитре Execution Control.

6. Поместите курсор мыши в верхний левый угол блок-диаграммы. Щелкните там, чтобы закрепить верхний левый угол цикла While.

7. Переместите курсор по диагонали так, чтобы охватить все экспресс-ВП и проводники, как показано на рисунке 64.

Рисунок 64 – Размещение экспресс-ВП внутри Цикла While

8. Еще раз щелкните кнопкой мыши, чтобы создать Цикл While, охватывающий экспресс-ВП и проводники.

Цикл While появится с кнопкой Стоп (STOP), соединенной с терминалом условия выхода (conditional terminal). Этот цикл будет останавливаться при нажатии на кнопку Стоп (STOP).

9. Переключитесь на лицевую панель и выполните ВП.

ВП теперь будет выполняться до тех пор, пока вы не нажмете кнопку Стоп (STOP).

10. Нажмите кнопку Стоп (STOP) и сохраните ВП.

Использование окна Список ошибок (Error List)

Если ВП содержит ненужные индикаторы, вы можете их удалить.

Выполните следующие шаги, чтобы удалить индикатор Mean (Среднее) с лицевой панели.

1. На лицевой панели поместите курсор над индикатором Mean (Среднее) и дождитесь, пока появится инструмент Позиционирования (Positioning tool).

2. Щелкните по индикатору Mean (Среднее) выделите его и нажмите клавишу Delete.

3. Переключитесь на блок-диаграмму.

Проводник теперь выглядит как черная штриховая линия с красным крести? ком посередине. Линия такого вида – это неисправный проводник. Кнопка Пуск (Run) принимает вид сломанной стрелки, чтобы указать, что этот ВП нельзя запустить.

4. Щелкните по неисправной кнопке Пуск (Run), чтобы вывести на экран окно Error list (Список ошибок), в котором перечислены все допущенные ошибки в ВП и написана детальная информация о каждой ошибке. Кроме этого, окно Error list (Список ошибок) можно использовать, чтобы определить местонахождение ошибки.

5. В списке Errors and warnings (Ошибки и предупреждения), выберите пункт Wire: has loose ends (Провод: имеет свободный конец) и щелкните по кнопке Help (Справка), чтобы вывести на экран подробную информацию об ошибке.

Подсказка: Чтобы вывести на экран подсказку с описанием неисправности, вы можете поместить инструмент Соединение на неисправный проводник. Эта информация также появляется в окне контекстной справки.

6. В списке Errors and warnings (Ошибки и предупреждения) дважды щелкните по пункту Wire: has loose ends (Провод: имеет свободный конец), чтобы выделить неисправный проводник.

7. Нажмите сочетание клавиш Ctrl+B, чтобы его удалить.

Нажатием клавиш Ctrl+B стираются все неисправные проводники на блок-диаграмме. Чтобы стереть только выделенный проводник, нажмите клавишу Delete.

8. Выберите View → Error List (Показать → Список ошибок), чтобы вывести на экран окно списка ошибок. Теперь список пуст.

Подсказка: Также, для того, чтобы вывести на экран окно списка ошибок, можно нажать сочетание клавиш Ctrl+L.

9. Нажмите на кнопку Close, чтобы закрыть окно списка ошибок. Кнопка Run теперь будет работоспособна.

Управление скоростью выполнения

Чтобы строить точки на графике осциллограмм более медленно, можно добавить на блок-диаграмму временную задержку.

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

1. В палитре Функций на блок-диаграмме найдите экспресс-ВП Time Delay (Временная задержка) и поместите его в Цикл While. Он предназначен для управления скоростью выполнения ВП.

2. Введите значение 0.25 в текстовое поле Time delay (Время задержки) (секунды). Это значение определяет, как часто будет выполняться цикл. Если время задержки равно 0.25 секунды, цикл будет выполнять итерацию раз в четверть секунды.

3. Щелкните кнопкой OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Configure Time Delay (Настроить временную задержку).

4. Переключитесь на лицевую панель и запустите ВП.

5. Переключите элемент управления Enable и изучите изменения на графике. Если переключатель включен, график будет отображать прореженный сигнал.

6. Нажмите кнопку STOP (Стоп), чтобы остановить ВП.

Использование таблиц для вывода данных на экран

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

1. В палитре элементов управления (Controls palette) на лицевой панели найдите индикатор Express Table и поместите его на лицевую панель, справа от графика осциллограмм.

2. Переключитесь на блок-диаграмму.

LabVIEW автоматически соединил терминал Table (Таблица) с экспресс-ВП Build Table (построение таблиц).

3. Если экспресс-ВП Build Table и терминал Table (Таблица) еще не выделены, щелкните по свободному месту блок-диаграммы слева от экспресс-ВП Build Table и терминала Table (Таблица). Переместите курсор по диагонали, пока прямоугольник области выделения не охватит их, как показано на рисунке 65.

Рисунок 65

При этом экспресс-ВП Build Table, терминал Table (Таблица) и проводник между ними будут охвачены двигающимся пунктирным контуром.

4. Переместите эти объекты в Цикл  While, справа от экспресс-ВП Sample Compression.

Если вы переместите объекты около границы Цикла While, цикл изменит размеры, чтобы включить в себя экспресс-ВП Build Table и терминал Таблицы.

При размещении объекта около границы цикла, цикл изменяет размеры, чтобы добавить место для этого объекта.

5. Используйте инструмент Соединение, чтобы присоединить выход Mean (Среднее) экспресс-ВП Sample Compression к входу Signals (Сигналы) экспресс-ВП Build Table. Блок-диаграмма должна выглядеть, как показано на рисунке 66.

Рисунок 66 – Блок-диаграмма ВП Reduce Samples

6. Переключитесь на лицевую панель и запустите ВП.

7. Щелкните переключателем Enable.

Если переключатель Enable включен, таблица будет отображать средние значения каждых 25 выборок синусоиды. Если он выключен, таблица не будет записывать средние значения.

8. Остановите ВП.

9. Поэкспериментируйте со свойствами таблицы, используя диалоговое окно Table Properties (Свойства таблицы). Например, попробуйте изменить число столбцов до одного.

10. Сохраните и закройте ВП.


ПРАКТИЧЕСКАЯ РАБОТА 11

Создание виртуального прибора для анализа сигналов

 

Цель работы: Научиться использовать LabVIEW для проведения операций стандартного анализа сигналов и сохранение результатов в файл.

Задание 1 Создать ВП, который генерирует сигнал, фильтрует его, показывает, превышает ли сигнал определенный предел, и сохраняет данные. После того, как вы выполните задание, лицевая панель виртуального прибора должна выглядеть так же, как показано на рисунке 67.

Рисунок 67 – Лицевая панель ВП Save Data

Изменение ВП, созданного из шаблона

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

1. В окне Getting Started нажмите New, чтобы появилось диалоговое окно New.

2. Из списка Create New выберите пункты VI → From Template → Tutorial (Getting Started) → Generate, Analyze, and Display. Этот шаблон ВП моделирует сигнал и анализирует его СКО (среднеквадратическое отклонение) (RMS).

3. Нажмите кнопку OK или дважды щелкните по названию шаблона, чтобы создать ВП из шаблона.

4. Если окно Context Help (Контекстной справки) закрыто, нажмите сочетание клавиш Ctrl+H (Mac OS). Нажмите клавиши Command+Shift+H.

5. Переключитесь на блок-диаграмму, нажав клавиши Ctrl+E.

6. Поместите курсор мыши над экспресс-ВП Amplitude and Level Measurements. Окно Контекстной справки будет содержать информацию о характеристиках этого ВП.

Оставьте окно Контекстной справки открытым. Оно будет снабжать вас полезной информацией во время выполнения оставшейся части упражнения.

7. На лицевой панели удалите индикатор RMS (СКЗ), а так же некоторые неисправные проводники на блок-диаграмме, которые появились из-за выполнения этой операции. Чтобы удалить все неисправные проводники на блок-диаграмме, нужно нажать сочетание клавиш Ctrl+B.

В этом задании мы не будем вычислять RMS (СКЗ)с помощью экспресс-ВП Amplitude and Level Measurements. Однако вы можете использовать шаблон ВП Generate, Analyze, and Display с возможностью вычисления среднеквадратичное значения в следующем проекте, чтобы уменьшить время его разработки.

8. На лицевой панели щелкните правой кнопкой мыши по графику осциллограмм и выберите опцию Properties (Свойства) из контекстного меню. На экране появится диалоговое окно Graph Properties.

9. На вкладке Appearance отметьте галочкой пункт Visible в разделе Label (Ярлык) и введите Unfiltered Signal (Необработанный сигнал) в текстовое поле.

10. Нажмите кнопку OK, чтобы сохранить настройки и закрыть диалоговое окно Graph Properties.

11. Запустите ВП.

Сигнал появится на графике.

12. Нажмите кнопку STOP, чтобы остановить ВП.

Сложение сигналов

По умолчанию экспресс-ВП Simulate Signal моделирует синусоиду.

Изменяя опции в диалоговом окне Configure Simulate Signal, можно настроить моделируемый сигнал.

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

1. На блок-диаграмме, с помощью инструмента Перемещение, выделите экспресс-ВП Simulate Signal. Чтобы создать еще один экспресс-ВП Simulate Signal, перемещайте его, одновременно удерживая клавишу Ctrl (Mac OS). При перемещении удерживайте клавишу Option (Linux). При перемещении удерживайте среднюю кнопку мыши.

2. Поместите копию экспресс-ВП Simulate Signal под оригиналом и отпустите кнопку мыши. Среда LabVIEW заменит имя скопированного экспресс-ВП Simulate Signal на Simulate Signal2.

3. Дважды щелкните по экспресс-ВП Simulate Signal2, чтобы появилось диалоговое окно настройки Configure Simulate Signal.

4. Выберите Sine (Синус) из выпадающего меню Signal type (Тип сигнала).

5. В текстовом поле Frequency (Hz) введите значение 60.

6. В текстовом поле Amplitude введите значение 0,1.

7. Пометьте пункт Add noise, чтобы добавить шум к синусоиде.

8. Выберите пункт Uniform White Noise (Однородный белый шум) из выпадающего меню Noise type (Тип шума).

9. В текстовом поле Noise amplitude (амплитуда шума) введите значение 0,1.

10. В текстовом поле Seed number введите значение -1.

11. В разделе Timing (Синхронизация) выберите опцию Run as fast as possible (Выполняться максимально быстро).

12. В разделе Signal Name (Название сигнала) удалите отметку с пункта Use signal type name.

13. В текстовом поле Signal name введите 60 Hz and Noise.

При изменении названия сигнала в окне Configure Simulate Signal среда LabVIEW меняет название выходного терминала, что облегчает идентификацию типа сигнала при просмотре экспресс-ВП на блок-диаграмме.

Раздел Result Preview (Предварительный просмотра результата) отображает случайный сигнал. Диалоговое окно Configure Simulate Signal (Настройка моделируемого сигнала) должно выглядеть так же, как на рисунке 68.

Рисунок 68 – Диалоговое окно Configure Simulate Signal

14. Нажмите кнопку OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Configure Simulate Signal.

Сложение двух сигналов

Чтобы создать один сигнал, как сумму двух других, можно воспользоваться экспресс-ВП Formula (Формула). В частности, мы будем использовать экспресс-ВП Formula для добавления шума к сигналу.

Выполните следующие шаги, чтобы добавить сигнал 60 Hz and Noise к сигналу Sine.

1. На блок-диаграмме трижды щелкните по проводнику, соединяющему выход Sine (Синус) экспресс-ВП Simulate Signal, вход экспресс-ВП Amplitude and Level Measurements и индикатор Unfiltered Signal, и удалите этот проводник.

2. Нажмите кнопку Search (Поиск) в палитре функций, чтобы найти экспресс-ВП Formula и поместите его на блок-диаграмму между экспресс-ВП Simulate Signal и экспресс-ВП Amplitude and Level Measurements.

3. В появившемся диалоговом окне Configure Formula в столбце Label измените ярлык для входа X1 на Sine, а для X2 на 60 Hz and Noise.

4. Нажмите кнопки Input и «+», чтобы сложить Sine и 60 Hz and Noise, записав эту операцию в текстовом поле String.

5. Нажмите кнопку OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Configure Formula.

6. Используйте инструмент Соединение, чтобы соединить выход Sine экспресс-ВП Simulate Signal с входом Sine экспресс-ВП Formula.

7. Соедините выход 60 Hz and Noise экспресс-ВП Simulate Signal2 с входом 60 Hz and Noise экспресс-ВП Formula.

8. Соедините выход Result (Результат) экспресс-ВП Formula с индикатором Unfiltered Signal и входом Signals экспресс-ВП Amplitude and Level Measurements.

9. Переключитесь на лицевую панель, нажав клавиши Ctrl+E.

10. Запустите ВП. На графике появится сигнал с добавленным шумом.

11. Нажмите кнопку STOP, чтобы остановить ВП.

12. Выберите меню File → Save As (Файл → Сохранить как) и сохраните ВП как Analysis.vi в своей папке.

Фильтрация сигнала

Для обработки сигналов с помощью фильтров и окон, можно использовать экспресс-ВП Filter (Фильтр).

Выполните следующие шаги, чтобы настроить экспресс-ВП Filter так, чтобы он производил обработку сигнала с помощью IIR (БИХ – с бесконечной импульсной характеристикой) фильтра.

1. Удалите проводник, который соединяет выход Result (Результат) экспресс-ВП Formula с входом Signals экспресс-ВП Amplitude and Level Measurements.

2. Удалите все оставшиеся неисправные проводники.

3. Найдите экспресс-ВП Filter и поместите его на блок-диаграмму между экспресс-ВП Simulate Signal2 и экспресс-ВП Amplitude and Level Measurements. На экране появится диалоговое окно Configure Filter.

4. В разделе Filter Specifications (Характеристики фильтра), измените Cutoff Frequency (Частота среза) (Гц) на 25.

5. Нажмите кнопку OK, чтобы сохранить настройки и закрыть диалоговое окно Configure Filter.

6. Переключитесь на лицевую панель.

7. На лицевой панели щелкните по индикатору Unfiltered Signal и, удерживая нажатой клавишу Ctrl, переместите его, чтобы создать еще один график осциллограмм.

8. Поместите созданный график осциллограмм под исходным.

9. Трижды щелкните по ярлыку Unfiltered Signal2 выше нового графика осциллограмм и введите Filtered Signal. Также можно изменить ярлык на вкладке Appearance (вид) диалогового окна Graph Properties.

10. На блок-диаграмме соедините выход Result (Результат) экспресс-ВП Formula с входом Signal (Сигнал) экспресс-ВП Filter.

11. Соедините выход Filtered Signal экспресс-ВП Filter с входом Signal экспресс-ВП Amplitude and Level Measurements и с терминалом графика осциллограмм Filtered Signal.

12. Выберите меню File → Save (Файл → Сохранить). Блок-диаграмма ВП Analysis должна выглядеть так, как показано на рисунке 69.

Рисунок 69 – Блок-диаграмма ВП Analysis

Изменение вида графиков

Вы можете использовать страницу Display Format (Формат отображения) диалогового окна Graph Properties чтобы задать, в каком масштабе шкалы X и Y появятся на графике.

Выполните следующие шаги, чтобы изменить формат шкал X и Y для графиков Unfiltered Signal и Filtered Signal.

1. На лицевой панели щелкните правой кнопкой мыши по графику Unfiltered Signal и выберите пункт Properties (Свойства) из контекстного меню. На экране появится диалоговое окно Graph Properties.

2. На вкладке Format and Precision выберите Time (X-Axis) (Время) над выпадающим меню.

3. В списке Type (тип) выберите Automatic formatting (авто-форматирование).

4. В поле Digits введите 6 и выберите пункт Significant digits (значащие цифры) из выпадающего меню Precision Type (Тип Точности).

5. Отметьте пункт Hide trailing zeros (Скрыть лишние нули).

6. Выберите пункт Amplitude (Y-Axis) (Амплитуда) над выпадающим меню и повторите шаги 3-5. Теперь настройки оси Y соответствуют оси X.

7. На вкладке Scales (Масштаб) выберите пункт Amplitude (Y-Axis) (Амплитуда).

8. Удалите отметку с пункта Autoscale.

9. В текстовое поле Minimum введите значение -2,5, в Maximum - значение 2,5.

10. Нажмите кнопку OK, чтобы сохранить настройки и закрыть диалоговое окно Graph Properties.

11. Повторите шаги 1-10, чтобы настроить вид графика Filtered Signal.

Оси X и Y на графиках Unfiltered Signal и Filtered Signal изменятся, отражая сделанные изменения.

Анализ амплитуды сигнала

Для анализа изменения сигнала можно использовать экспресс-ВП Amplitude and Level Measurements.

Выполните следующие шаги, чтобы настроить экспресс-ВП для измерения амплитуды сигнала.

1. На блок-диаграмме дважды щелкните по экспресс-ВП Amplitude and Level Measurements, чтобы появилось диалоговое окно Configure Amplitude and Level Measurements.

2. В разделе Amplitude Measurements (Измерение амплитуды), удалите отметку с пункта RMS (СКЗ).

3. Отметьте пункт Peak to peak. Peak to peak появится в разделе Results (Результаты) с соответствующим измеренным значением.

4. Нажмите кнопку OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Configure Amplitude and Level Measurements. Выход RMS экспресс-ВП Amplitude and Level Measurements изменится на выход Peak to peak. Мы будем использовать выход Peak to peak позже.

Управление скоростью выполнения

Чтобы точки на графике появлялись медленнее, необходимо добавить задержку на блок-диаграмму.

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

1. Найдите экспресс-ВП Time Delay (Временная задержка).

2. Поместите его в нижний левый угол Цикла While. На экране появится диалоговое окно Configure Time Delay.

3. В текстовое поле Time delay (seconds) введите значение 0,1 и нажмите кнопку OK.

4. Запустите ВП. Цикл будет выполняться с частотой 10 итераций в секунду.

5. Остановите ВП.

Добавление предупредительной световой сигнализации

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

1. Щелкнув правой кнопкой мыши на любом свободном месте лицевой панели, вызовите палитру элементов управления.

2. В подпалитре Express, выберите подпалитру светодиодных индикаторов, которая показана на рисунке 70.

Рисунок 70 – Палитра светодиодных индикаторов

3. Выберите круглый светодиодный индикатор и поместите его на лицевую панель слева от графиков.

4. Дважды щелкните по ярлыку Boolean над индикатором и измените его на Warning (Предупреждение). Мы будем использовать этот светодиодный индикатор позже, чтобы показать, когда значение превысило свой предел.

5. Выберите меню File → Save (Файл → Сохранить как), чтобы появилось диалоговое окно Save As.

6. Просмотрите различные опции этого диалогового окна. Выберите опцию Copy (Копировать) и выделите пункт Substitute copy for original, чтобы создать копию исходного ВП и начать ее редактировать.

7. Нажмите кнопку Continue и сохраните ВП как Warning Light.vi в своей папке.

Настройка предельного значения

Чтобы определить значение, при котором светодиодный индикатор будет включаться, используйте экспресс-ВП Comparison (Сравнение).

Выполните следующие шаги, чтобы сравнить полное значение амплитуды с задаваемым пределом.

1. Найдите экспресс-ВП Comparison и поместите его справа от экспресс-ВП Amplitude and Level Measurements. На экране появится диалоговое окно Configure Comparison.

2. В разделе Compare Condition (Условия сравнения) выберите опцию Greater (>) (Больше).

3. В разделе Comparison Inputs выберите Value и введите 2 в текстовое поле Value, чтобы задать постоянное значение, при котором светодиод будет гореть.

4. Нажмите кнопку OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Configure Comparison.

Название экспресс-ВП Comparison изменится, отражая выполняемую операцию, как показано на рисунке 71. Название Greater (Больше) указывает, что экспресс-ВП выполняет сравнение "больше?".

Рисунок 71

5. Соедините выход Peak to Peak экспресс-ВП Amplitude and Level Measurements с входом Operand 1 экспресс-ВП Greater.

6. Наведите курсор на проводник, который соединяет выход Peak to Peak к входу Operand 1.

7. Когда появится инструмент Перемещение, щелкните правой кнопкой мыши по проводнику и выберите Create → Numeric Indicator (Создать → Числовой Индикатор) из контекстного меню.

Терминал Peak to Peak, появится на блок-диаграмме. Если терминал Peak to Peak появится на проводниках между экспресс-ВП, передвиньте экспресс-ВП и терминал Peak to Peak, создавая больше места. Например, переместите терминал Peak to Peak на свободное место выше экспресс-ВП.

Предупреждение пользователя

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

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

1. На блок-диаграмме поместите терминал Warning (Предупреждение) справа от экспресс-ВП Greater. Удостоверьтесь, что этот терминал находится в Цикле While, как показано на рисунке 72.

Рисунок 72 – Блок-диаграмма ВП Warning Light

2. Соедините выход Result (Результат) экспресс-ВП Greater с терминалом Warning. Блок-диаграмма должна выглядеть, как показано на рисунке 72.

3. Переключитесь на лицевую панель.

На ней появится числовой индикатор с ярлыком Peak to Peak. Этот индикатор отображает значение полной амплитуды сигнала.

4. Запустите ВП.

Когда значение двойной амплитуды превысит 2,0, индикатор Warning загорается.

5. Нажмите кнопку STOP, чтобы остановить ВП.

6. Сохраните ВП.

Настройка ВП для сохранения данных в файл

Чтобы сохранить информацию о данных, которые моделирует ВП, используйте экспресс-ВП Write To Measurement File.

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

1. Найдите экспресс-ВП Write To Measurement File и поместите его на блок-диаграмму ниже и правее экспресс-ВП Amplitude and Level Measurements. На экране появится диалоговое окно настройки Configure Write To Measurement File. Текстовое поле File Name содержит полный путь к выходному файлу test.lvm.

Данные в файл test.lvm записывают в виде таблицы, состоящей из столбцов разделенных символом табуляции. Этот файл можно открыть с помощью приложений для просмотра и редактирования электронных таблиц или текстовых файлов. Среда LabVIEW сохраняет данные с шестью разрядами точности. По умолчанию файл сохранится в папке LabVIEW Data. Среда LabVIEW располагает папку LabVIEW Data в заданном по умолчанию каталоге файлов операционной системы.

Если вы хотите просмотреть данные, используйте путь к файлу, отображенный в текстовом поле File Name.

2. В разделе If a file already exists (Если файл уже существует) диалогового окна Configure Write To Measurement File выберите опцию Append to file, чтобы дописать все данные в файл test.lvm, не стирая уже существующие.

3. В разделе Segment Headers (Заголовки Сегмента) выберите опцию One header only, чтобы создать только один заголовок файлу, в который LabVIEW записывает данные.

4. В текстовое поле File Description введите следующий текст: Sample of peak to peak values (Пример значений размаха сигнала). LabVIEW прикрепит этот текст к заголовку файла.

5. Нажмите кнопку OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Configure Write To Measurement File.

Сохранение данных в файл

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

1. На блок-диаграмме соедините выход Peak to Peak экспресс-ВП Amplitude and Level Measurements с входом Signals (Сигналы) экспресс-ВП Write To Measurement File.

2. Выберите File → Save (Файл → Сохранить как) и сохраните ВП, как Save Data.vi в своей папке.

3. Переключитесь на лицевую панель и запустите ВП.

4. Нажмите кнопку STOP на лицевой панели.

5. Чтобы просмотреть данные, которые вы сохранили, откройте файл test.lvm в папке LabVIEW Data с помощью любого текстового редактора. Файл будет иметь заголовок, содержащий информацию об экспресс-ВП.

6. Закройте файл после просмотра и вернитесь к ВП Save Data.

Добавление кнопки сохранения данных в файл

Если вы хотите сохранить только определенные значения данных, вы можете настроить экспресс-ВП Write To Measurement File так, чтобы значения амплитуды размаха сохранялись только тогда, когда пользователь нажимает кнопку.

Выполните следующие шаги, чтобы добавить кнопку в ВП и настроить её поведение при нажатии.

1. Найдите в палитре элементов управления тумблер (rocker button) и поместите его справа от графиков.

2. Щелкните правой кнопкой мыши по кнопке и выберите опцию Properties (Свойства) из контекстного меню, чтобы отобразить диалоговое окно свойств.

3. Измените метку кнопки на Write to File.

4. На вкладке Operation (Функционирование) диалогового окна Boolean Properties выберите режим Latch when pressed из меню Button behavior (Режим работы). Это меню используется для задания поведения кнопки при нажатии. Увидеть, как кнопка реагирует на щелчок, можно в разделе Preview Selected Behavior.

5. Нажмите кнопку OK, чтобы сохранить текущие настройки и закрыть диалоговое окно Boolean Properties.

6. Сохраните ВП.

Сохранение данных по запросу пользователя

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

1. На блок-диаграмме дважды щелкните по экспресс-ВП Write To Measurement File, чтобы отобразить диалоговое окно Configure Write To Measurement File.

2. В текстовом поле File Name измените имя файла test.lvm на Selected Samples.lvm, чтобы сохранить данные в другой файл.

3. Нажмите OK, чтобы сохранить текущую конфигурацию и закрыть диалоговое окно Configure Write To Measurement File.

4. Щелкните правой кнопкой мыши по входу Signals экспресс-ВП Write To Measurement File и выберите пункт Insert Input/Output из контекстного меню, чтобы вставить вход Comment (Комментарий).

5. Щелкните правой кнопкой мыши по входу Comment экспресс-ВП Write To Measurement File и выберите Select Input/Output → Enable из контекстного меню, чтобы заменить вход Comment входом Enable. Входы и выходы экспресс-ВП появляются в таком же порядке, в котором вы их добавляете. Чтобы выбрать определенный вход, возможно, сначала придется создать произвольный, а затем изменить его на тот, который хотите использовать, щелкая по нему правой кнопкой мыши и выбирая подходящий из меню.

6. Поместите терминал кнопки Write to File слева от экспресс-ВП Write To Measurement File.

7. Соедините терминал Write to File с входом Enable экспресс-ВП Write To Measurement File.

Блок-диаграмма должна выглядеть так, как показано на рисунке 73.

Рисунок 73 – Блок-диаграмма ВП Save Data

Просмотр сохраненных данных

Выполните следующие шаги, чтобы просмотреть данные, которые вы сохранили в файл Selected Samples.lvm.

1. Переключитесь на лицевую панель и запустите ВП. Нажмите кнопку Write to File несколько раз.

2. Нажмите кнопку STOP на лицевой панели.

3. Откройте файл Selected Samples.lvm с помощью текстового редактора. Файл Selected Samples.lvm отличается от файла test.lvm.

В test.lvm записались все данные, сгенерированные ВП Save Data, тогда как в файл Selected Samples.lvm данные записывались только тогда, когда вы щелкали кнопкой Write to File.

4. Закройте файл после просмотра.

5. Сохраните и закройте ВП.


 

ПРАКТИЧЕСКАЯ РАБОТА 12

Блок схема. Элементы управления и индикаторы.

Цикл For Loop. Запись данных в файл

 

Цель работы:

Задание 1 Создать ВП, который считает сумму двух чисел и выводит результат в графическом виде

Порядок выполнения:

1. Создайте новый ВП и сохраните его под именем Example01.vi в своей папке.

2. Выберите числовой элемент управления, расположенный в палитре ControlsModernNumericNumeric control и поместите его на лицевую панель.

3. Два раза щелкните левой кнопкой мыши на надписи Numeric над элементом управления и введите текст Число А.

4.  Добавим на переднюю панель еще один элемент управления и назовем его Число Б.

5.  Аналогичным образом добавим на лицевую панель индикатор, расположенный в палитре Controls → Modern → Numeric → Numeric Indicator. Назовем его Сумма.

Теперь лицевая панель выглядит, так как показано на рисунке 74 - на ней расположены два элемента управления, используя которые можно ввести в компьютер два числа, и индикатор, который будет отображать результат операции с этими числами. А на блок-диаграмме появились соответствующие терминалы, при помощи которых введенные числа Число А и Число Б передаются в программу, а результат выполнения программы выводится на индикатор Сумма.

Рисунок 74 – Элементы управления и индикатор на лицевой панели

6. Выберите функцию сложения, расположенную в палитре FunctionsProgrammingNumericAdd. Поместите ее на блок-диаграмму.

7. Соедините элементы, расположенные на блок-диаграмме, так как показано на рисунке 75.

Рисунок 75 – Соединение элементов на блок-диаграмме

8. Сохраните программу и запустите ее. Нажмите на кнопку циклического выполнения программы (Run Continuously) .

9. Проверьте программу на работоспособность. Измените значения в полях ввода данных и посмотрите как изменится значение индикатора.

10. Остановите выполнение программы. Нажмите на кнопку прервать выполнение (Abort Execution) .

При запуске наша программа однократно опрашивает состояние элементов управления, передает их значения операции сложения, а затем результат сложения индикатору и завершается. Для того чтобы она непрерывно отслеживала изменения состояния элементов  управления, мы использовали возможности среды программирования - режим Run Continuously, в котором программа запускается снова и снова сразу же после ее завершения. Теперь сделаем так, чтобы программа самостоятельно периодически опрашивала элементы управления, складывала полученные числа и отображала результат  сложения на индикаторе. Для этого поместим нашу программу в цикл While Loop.

11. Щелкнем правой кнопкой мыши на блок-диаграмме и выберем в меню  Functions → Programming → Structures → While Loop.

12.  Курсор мыши примет вид маленького пунктирного прямоугольника с  черным левым верхним уголком. Поместим курсор левее и выше группы терминалов и процедур,  которую мы хотим заключить в цикл, нажав и удерживая левую  кнопку, обведем группу пунктирным прямоугольником.  После того, как мы отпустим левую кнопку мыши, программа будет  выглядеть так, как показано на рисунке 76.

Рисунок 76 – Цикл While Loop

После того, как мы поместили цикл While Loop на блок-диаграмму, кнопка циклического выполнения заблокировалась, а на кнопке запуска программы появилось изображение .

Это произошло потому, что среда программирования LabVIEW проверяет  программу непосредственно в процессе ее составления. Она обнаружила ошибку и запретила запуск программы. Выясним причину ошибки.

13. Нажмем на кнопку со сломанной стрелкой List Errors (составить список ошибок), откроется окно списка ошибок (рис 77).

Рисунок 77 – Окно списка ошибок

14. Чтобы выяснить, в каком именно месте блок-диаграммы обнаружена ошибка, нажмем кнопку Show Error (Показать ошибку). При этом окно блок-диаграммы станет активным, а цикл While Loop будет кратковременно  выделен черным цветом.

Исправим ошибку на блок-диаграмме. Для этого подключим к терминалу  условия цикла кнопку, прерывающую его выполнение. 

15. Наведем указатель мыши на терминал условия цикла, и, нажав правую кнопку мыши, выберем в появившемся меню режим работы терминала Stop if True. Убедимся, что иконка терминала приобрела соответствующий вид.

16. Наведем указатель мыши на контакт терминала, и когда курсор  превратится в катушку с проводом (Wiring tool), нажмем правую  кнопку мыши. В появившемся меню выберем Create Control (создать элемент управления).

17.  В результате на лицевой панели появится кнопка управления Stop, а ее терминал на блок-диаграмме автоматически соединится с терминалом условия цикла (рис 78).

Рисунок 78 – Терминал кнопки Stop на блок-диаграмме

18. Изменим вид элементов управления на лицевой панели. Поместим указатель мыши на элемент Число А и нажмем правую  кнопку мыши. В появившемся меню выберем Replace → Modern → Numeric → Knob.

19. Изменим атрибуты ручки. Нажмем правую кнопку мыши и в  выпадающем меню выберем Visible Items → Ramp. Для удобства точной установки ручки выберем в том же меню Digital  Display.

20. Аналогично изменим остальные элементы управления, чтобы лицевая панель выглядела так, как показано на рисунке 79.

Рисунок 79 – Лицевая панель с измененными элементами управления

21. После того, как редактирование завершено, необходимо сохранить  программу, используя меню File → Save.

22. Теперь программа полностью готова, и ее можно запустить. Для этого нажмем кнопку выполнения программы (Run).

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

24. Не останавливая программу, перейдем в окно блок-диаграммы и  нажмем кнопку Highlight Execution (подсветить выполнение). На проводниках появятся движущиеся точки, которые  показывают, в каком порядке выполняется программа.

Примечание: ОБЯЗАТЕЛЬНО отключите режим Highlight Execution, иначе программа будет выполняться очень медленно, так как это  демонстрационный режим,  отладки программ.

25. Перейдем на лицевую панель и остановим выполнение программы, нажав кнопку Stop.

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

26. Поместим на лицевую панель индикатор Modern → Graph → Waveform Chart.

27. На блок-диаграмме перетащим терминал Waveform Chart в цикл While  Loop и подключим его параллельно стрелочному индикатору Сумма.

28. Для того, чтобы наш графический индикатор отображал значения  суммы через определенные промежутки времени, добавим в цикл на блок-диаграмме операцию задержки Programming → Timing → Wait Until Next ms Multiple.

29. Создадим константу, определяющую интервал выполнения этой  операции. Для этого подведем указатель мыши к входу оператора  (контакт входа расположен слева) и, нажав правую кнопку мыши, выберем в меню Create Constant.

30. Введем в окошко константы значение 250, соответствующее задержке при выполнении цикла в 250 мс (1/4 секунды). Теперь блок-диаграмма выглядит так, как показано на рисунке 80.

Рисунок 80 – Блок-диаграмма программы с Waveform Chart и задержкой

31. Перейдем на лицевую панель, и отключим автоматическое  масштабирование по оси Y. Для этого поместим указатель на Waveform Chart, нажмем правую кнопку мыши и в меню выберем Y Scale и снимем галочку  AutoScaleY.

32. Установим пределы шкалы Y Waveform Chart в соответствии с  минимальным и максимальным значением суммы, щелкнув по  крайним значениям шкалы, и введя новые значения.

33. Сохраним программу и запустим ее. 

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

Рисунок 81 – Редактирование линий графика

35.  Остановим программу.

36. Заменим константу, определяющую задержку, на элемент управления. Для этого добавим на переднюю панель еще один элемент управления Modern → Numeric → Horizontal Pointer Slide и назовем его Задержка.

37.  Вызовем контекстное меню этого элемента и выберем в нем Find  Terminal. При этом программа переключится в окно блок-диаграммы, а в нем выделится терминал элемента управления Задержка.

38. Удалим константу и вместо нее подключим терминал Задержка. При этом около контакта появится красная точка. Эта точка показывает, что в данном месте происходит преобразование типа данных.

39. Выберем в контекстном меню оператора задержки раздел Help. Из  открывшейся справки выясним, что его входной параметр должен  иметь тип U32 (Unsigned long integer 32-bit) – 32-разрядное целое  число без знака.

40. В контекстном меню элемента управления Задержка выберем Representation → U32. Красная точка исчезнет. Типы данных согласованы.

41. Чтобы было интереснее следить за движением графика по экрану, добавим к сумме чисел случайную помеху, создаваемую генератором случайных чисел от 0 до 1, расположенную в палитре Functions → Programming → Numeric → Random Number (0-1).

42. Прибавим случайное число с выхода генератора случайных чисел к  нашей сумме, и результат подключим к индикаторам Сумма и Waveform Chart (рис 82).

Рисунок 82 – Блок-диаграмма окончательного варианта программы Example01.vi

43. Перейдем на лицевую панель, и в контекстном меню элемента  управления Задержка выберем Scale → Mapping → Logarithmic.

44. Сохраним и запустим программу.

Задание 2 Создать ВП, который создает массив случайных чисел в виде таблицы. Результат отображает на графике и записывает данные случайного массива в файл

Порядок выполнения:

1. Создадим новый ВП, и сохраним его под именем Example02.vi в своей папке.

2. Добавим на блок схему цикл For Loop, расположенную в палитре Functions → Programming → Structures → For Loop.

3. Подведем указатель мыши к левому контакту (к входу) терминала N цикла For Loop и создадим константу, определяющую количество повторений этого цикла (100 раз).

4. Добавим в цикл операцию умножения случайного числа на номер  итерации этого цикла (терминал i).

5. Выведем результат из цикла и подключим к графическому  индикатору Waveform Chart, помещенному на лицевую панель (рис 83).

Рисунок 83 – Блок-диаграмма программы с циклом For Loop

6. Запустим программу. Результат ее выполнения выглядит, как показано на рисунке 84.

Рисунок 84 – Результат выполнения программы

Обратим внимание, что в точке пересечения проводом границы цикла For Loop появился символ в виде квадратных скобок, вписанных в квадрат, а толщина  проводника увеличилась. Этот квадрат называется Auto Indexing Tunnel (туннель автоматического индексирования). 

Пересечение проводником границы любой структуры в среде LabVIEW  называется туннелем (Tunnel). Автоматическое индексирование означает, что после того, как цикл For Loop повторится заданное число  раз, на выходе из туннеля появится одномерный массив чисел, переданных из цикла по одному на каждой его итерации. В нашем случае (N=100) массив будет состоять из 100 элементов, имеющих номера от 0 до 99. Проводник, по которому передается массив, изображается более толстой или двойной линией в зависимости от  размерности массива.

7. Из контекстного меню проводника, передающего массив, выберем Create  → Indicator.

8. Немного растянем при помощи мыши индикатор Array (массив), появившийся на лицевой панели, показанный на рисунке 85. В ячейках отображаются элементы созданного массива. Элемент управления, расположенный слева вверху, задает номер элемента массива, который будет показан в верхней ячейке индикатора.

Рисунок 85

Сохраним массив в файл. Наиболее простой способ сохранить данные в файл сводится к использованию одного единственного оператора Write to Spreadsheet File.

9. Добавим на блок-диаграмму функцию Write to Spreadsheet File, расположенную в палитре Functions → Programming → File I/O → Write to Spreadsheet File.

10.  Подключим контакт 1D data параллельно индикатору Waveform Chart  (рис 86) и запустим программу.

11. В появившемся диалоговом окне выберем папку для сохранения  данных и введем имя файла с расширением Data.txt.

Рисунок 86 – Запись данных в файл

12. Откроем файл в указанной нами папке. Он будет содержать строку чисел.

13. Добавим на блок-диаграмму константу типа Boolean, расположенную в палитре Functions → Programming → Boolean → False constant и подключим ее к  контакту Transpose?

14. Поместим указатель мыши на белое поле около константы, дважды  нажмем левую кнопку и напишем комментарий к этой константе – «Транспонировать?» (Комментарии к блок-схемам значительно  облегчают работу с ними, ВСЕГДА комментируйте ваши  программы и как можно более подробно!)

15. Нажимая левую кнопку мыши, изменим состояние константы с F (False) на T(True).

16. Запустим программу и сохраним данные в файл DataT.txt.

17. Откроем файл и убедимся, что в нем записан столбец чисел – оператор записи в файл транспонировал массив – его строки стали столбцами.

18. Поместим на блок-диаграмму процедуру преобразования массива в  строку символов, расположенную в палитре Functions → Programming → String → Array To Spreadsheet String (рис 87).

Рисунок 87 – Процедура записи массива в файл

19. Подключим массив к его контакту array. Из контекстного меню  контакта format string выберем Create → Constant и впишем в нее %.3f (3 знака после запятой, плавающая точка).

20. Добавим на блок-диаграмму операции работы с файлами из меню Programming → File I/O три процедуры:

1) Open/Create/Replace File;

2) Write o Text File;

3) Close file.

21. Создадим константу для контакта file path процедуры Open/Create/Replace File и введем в нее путь к файлу, в  который мы хотим сохранить данные (если эту константу не  подключать, то будет открываться диалоговое окно, такое же, как при  использовании функции Write to Spreadsheet String).

22. Создадим константы для контактов operation и access и выберем их значения replace or create with confirmation и read/write, соответственно.

23. Open/Create/Replace File открывает (создает, заменяет) файл и  передает ссылку (refnum) на него и информацию об ошибках (error) следующим процедурам. Соединим процедуры между собой, передавая им ссылку на файл (гладкий сине-зеленый провод), и данные об ошибках (толстый черно-желтый провод).

24. Подключим к последнему выходу информации об ошибках (error out) процедуру, расположенную в палитре Functions → Programming → Dialog & User Interface → General Error Handler. В случае если в одной  из процедур произойдет ошибка, например, не будет открыт файл, то Error Handler откроет окно с сообщением об ошибке.

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

25. Подключим выход процедуры Array To Spreadsheet String к входу text процедуры Write to text file. Обратите внимание, что эта  процедура имеет еще один вход – Prompt (подсказка) для  переменной формата String, который мы не используем!

26. Запустим программу. Она автоматически сохранит данные в файл, путь к которому мы указали. 

27. При повторном запуске программа запросит разрешение переписать  этот файл в виде диалогового окна (рис 88). Если вы отмените  перезапись, выбрав Cancel, то сообщение об ошибке пройдет от  одного элемента к другому и затем к обработчику ошибок, который откроет окно сообщения об ошибке (рис 89).

Рисунок 88 – Запрос на перезапись файла

Рисунок 89 – Сообщение о том, что файл не был переписан, так как пользователь

отменил эту операцию

28.  Уменьшите количество повторений цикла For Loop до 10 раз, включите режим Highlight Execution

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

30. Отключите режим Highlight Execution.

Усовершенствуем нашу программу. Сделаем так, чтобы она непрерывно  вычисляла массивы случайных чисел, но сохраняла массив в файл, если нажата кнопка Запись на лицевой панели. Непрерывное выполнение программы осуществим так же, как в и предыдущем  задании – поместим все вычисления в цикл While Loop, который прерывается при нажатии кнопки Stop. Теперь нам понадобится  структура Case Structure, которая будет проверять состояние кнопки Запись и записывать массив в файл, если она нажата, то есть, когда ее состояние – True.

31. Поместим всю программу в цикл While loop и создадим кнопку Stop для выхода из цикла.

32. Поместим процедуру записи в файл внутрь структуры Сase Structure, расположенной в палитре Functions → Programming → Structures.

33. Добавим на лицевую панель кнопку Controls → Modern → Boolean → OK button и назовем ее Запись. Также изменим надпись на  самой кнопке.

34. Скроем имена переменных, написанные над кнопками сняв галочку в  контекстном меню кнопки Visible Item → Label.

35. Подключим терминал кнопки Запись к контакту Case Selector структуры Case Structure (рис 90).

Рисунок 90 – Программа записи массива в файл с использованием Case Structure

Структура Case содержит два случая. Один из них соответствует  состоянию True входа Case selector, а другой – False (рис 91, а и б). При  редактировании программы оба случая можно просмотреть, нажимая левую кнопку мыши, когда указатель находится на стрелках слева и  справа от заголовка в верхней части структуры.

а)

б)

Рисунок 91

36. Сохраним и запустим программу.

ПРАКТИЧЕСКАЯ РАБОТА 13

Интерфейс пользователя. Символьная строка.

Массивы и работа с ними

 

Цель работы:

Краткие теоретические сведения

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

Простейший интерфейс пользователя – кнопка. Это  электромеханическое устройство. Когда человек нажимает на кнопку  пальцем, внутри нее замыкаются проводники. Через кнопку течет  электрический ток. Наличие или отсутствие тока через кнопку интерпретируется компьютером как один бит информации. Нажимая  кнопку, мы изменяем по нашему желанию значение этого бита с 0 (нет  тока) на 1 (есть ток). 

Аналогично мы можем проверить значение любого бита в  электрической схеме компьютера. Достаточно подключить лампу к соответствующему проводнику. Лампа светится, когда через нее течет  ток, то есть состояние проводника 1, и не светится, когда состояние  проводника 0 (нет тока). В свою очередь, человек воспринимает свет  лампы глазами и делает вывод о состоянии данного проводника.

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

Чтобы не конструировать громоздкие пульты, в современных  универсальных компьютерах используют другой вид интерфейса – графический. В Windows и LabVIEW, используются только две кнопки – это кнопки манипулятора мышь. А то, какой именно бит переключает  каждая из них, зависит от положения манипулятора на столе, вернее, от  места, в котором находится изображение специального указателя  (курсора) на экране монитора компьютера. Компьютер отслеживает перемещения мыши по столу и перемещает изображение указателя по  экрану монитора. Если указатель находится в области, где на экране  нарисована кнопка, – то при нажатии на кнопку мыши изменяется состояние некоторой переменной в памяти компьютера. Но  если, мы, перемещая мышь, отведем указатель в сторону от нарисованной  кнопки, то компьютер проигнорирует нажатие на кнопку мыши. 

Когда мы помещаем указатель мыши на изображение кнопки Stop,  компьютер начинает проверять, не нажата ли левая кнопка мыши. И если мы нажмем на кнопку, выполнение цикла прекратится. Здесь  возможно несколько вариантов. Например, выполнение программы  можно прекратить сразу же, как только мы нажмем кнопку мыши. А  можно – только после того, как мы, нажав кнопку, ее отпустим. Во втором случае у нас будет возможность передумать – если мы навели  указатель на нарисованную кнопку, нажали на кнопку мыши, а затем передумали останавливать программу, то можно, не отпуская кнопку  мыши, отвести указатель в сторону. И нарисованная кнопка не  сработает. Такая настройка кнопки (кстати, стандартная для графического интерфейса в среде Windows) учитывает особенность  человеческого поведения – прежде, чем взять какой либо предмет, человек легко прикасается к нему, и, прикоснувшись, окончательно  решает – брать или нет. 

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

В среде LabVIEW реакция кнопки на нажатие может быть настроена тем или иным образом при помощи параметра Mechanical Action (механическое действие) в контекстном меню этой кнопки.  Существует два вида отклика кнопки на нажатие: 

Switch (переключатель) – при нажатии кнопка изменяет свое состояние  (переключается) и остается в нем до следующего нажатия;

Latch (защелка) – при нажатии кнопка переключается и ждет, пока  программа не проверит ее, а после первой проверки автоматически  возвращается в исходное состояние.

Всего параметр Mechanical Action имеет шесть возможных значений:

Switch When Pressed – кнопка переключается в момент нажатия на  нее;

Switch When Released – переключается в момент, когда ее отпускают; (в этом случае есть возможность передумать – если вы, не отпуская кнопку мыши, отведете указатель от кнопки, то ее состояние не изменится).

Switch Until Released – переключается в момент нажатия, и возвращается в исходное состояние когда ее отпускают;

Latch When Pressed – переключается в момент нажатия и  возвращается в исходное состояние после проверки ее состояния программой;

Latch When Released – переключается в момент, когда ее отпускают и  возвращается в исходное состояние после проверки ее состояния  программой;

Latch Until Released – переключается в момент нажатия и  возвращается в исходное состояние после того, как будет произведена  проверка программой ее состояния, или кнопка будет отпущена, в зависимости от того, какое из этих событий произойдет позже другого.

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

Порядок выполнения:

1. Создадим интерфейс виртуального прибора, показанный на рисунке 92 и сохраним его под именем Example03.vi

2. В качестве индикаторов состояния кнопок используем круглые  светодиоды, расположенные в палитре Controls → Modern → Boolean → Round LED.

3. В качестве индикатора чтения кнопок используем прямоугольный  светодиод, расположенный в палитре Controls → Properties → Appearance → Colors, в контекстном меню которого изменим настройки цвета светодиода: выберем красный цвет для включенного состояния, и темно красный – для выключенного.

4. Для украшения интерфейса используем накладные панели, расположенные в палитре Controls → Modern → Decorations → Raised Box.

Рисунок 92 – Интерфейс программы Example03

5. Воспользуемся панелью инструментов для того, чтобы равномерно и ровно расположить кнопки и индикаторы на передней панели, изменить шрифт и переместить выпуклые панели на задний план (Reorder () Move to back).

6. В контекстном меню каждой из кнопок установим значение Mechanical Action, соответствующее надписям на панели. Кнопку Latch When Released выделим цветом - это стандартная настройка кнопок Windows.

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

1) включить светодиод READ;

2) проверить состояние кнопок и включить/выключить  соответствующие светодиоды;

3) подождать некоторое время (50 мс),  чтобы мы успели заметить вспышку светодиода READ;

4) выключить  светодиод READ;

5) подождать 2 секунды, чтобы мы успели понять, что  происходит;

6) повторить процедуру. Блок-диаграмма этой программы  показана на рисунке 93.

Рисунок 93 – Блок-диаграмма Example03

7. Так как при выполнении данной программы важна точная  последовательность действий, то воспользуемся структурой Flat Sequence Structure, расположенной в палитре Functions  → Structures.

8. Flat Sequence Structure имеет вид кинопленки, кадры которой  исполняются один за другим. Новые кадры можно добавить, выбрав в контекстном меню структуры Add frame before или Add frame after.

9. Для того чтобы выключить светодиод READ в четвертом кадре мы  используем структуру Local Variable, расположенную в палитре Functions → Structures.

10.  В контекстном меню Local Variable нужно выбрать Change to write и

Select Item → READ.

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

12. Обратите внимание, что зеленые светодиоды переключаются только  после того, как программа проверит состояние кнопки (включится светодиод READ).

13. Можно дополнительно украсить программу, если растянуть светодиод READ, переместить его на задний план и «подложить» под панели (рис 94).

Рисунок 94 – Вариант оформления индикатора READ (светодиод на заднем плане)

Задание 2 Создать программу, которая будет считать некоторые предметы, например, яблоки. И выводит ответ в виде строки текста. Например: «У меня есть 5 яблок».

Порядок выполнения:

1.  Создадим новый виртуальный прибор, и сохраним его под именем Example04.vi.

2. На лицевую панель поместим цифровой элемент управления, при  помощи которого мы будем вводить количество «яблок». В контекстном меню выберем тип данных – 32 разрядное целое число без знака U32 (отрицательное число яблок не имеет смысла).

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

4.  В контекстном меню этого индикатора выберем Display Format → Binary.

5. Добавим текстовый индикатор, расположенный в палитре Controls → Modern → String & Path → String Indicator, который отображает созданную программой  строку.

6. Используя операторы из меню Functions → Programming → String,  соберем строку «ответа» (рис 95).

Рисунок 95 – Лицевая панель и блок-диаграмма программы, которая

составляет строку текста

7. В цикл While Loop ОБЯЗАТЕЛЬНО нужно добавить задержку Wait Until Next ms Multiple (рис 95).

Если этого не сделать, то компьютер будет стремиться проверять  состояние элементов управления и выполнять цикл как можно быстрее, нерационально используя свои ресурсы (даже такая простая программа способна полностью загрузить процессор!). С другой стороны, вполне достаточно проверять состояние элементов управления 10 раз в  секунду. Оператор не заметит этой задержки, так как время реакции человека, как правило, не меньше 0,1 с. Всегда используйте  задержку, если программа обращается к передней панели!

Строка, получающаяся в результате выполнения этой программы, в  некоторых случаях выглядит немного странно, например, «У меня есть 2 яблок» или «0 яблок». В первом случае человек скажет «У меня есть 2 яблока», а во втором – «У меня нет яблок». 

Сделаем ответ программы более похожим на человеческую речь. Заметим, что слово яблоко согласуется с числительным. Мы говорим одно яблоко, затем говорим два, три, четыре яблока, с пяти до  двадцати мы говорим «яблок», а затем все повторяется: 21 яблоко, 22 яблока, 25 яблок и т.д. То, какое слово следует добавить в строку,  определяется двумя младшими разрядами числа.

8. Выделим эти два разряда – разделим введенное число два раза подряд на 10 и возьмем остатки от этих делений (рис 96) (Functions → Programming → Quotient & Remainder).

Рисунок 96 – Усовершенствованная программа Example04.vi

9. Используя операторы сравнения из меню Functions → Programming → Comparison, и логическую операцию AND из меню Boolean организуем проверку значений этих разрядов и выбор  правильной формы слова яблоко (рис 96).

10. При проверке на 2, 3, 4 в контекстном меню оператора In range and  coerce установите Include upper limit и Include lower limit.

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

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

Задание 3 Создать ВП, который состоит из массивов любого типа данных

Порядок выполнения:

1. Создадим новый виртуальный прибор и сохраним его под именем Example05.vi.

2. Добавим на лицевую панель элемент Array, расположенный в палитре Controls → Modern → Array, Matrix & Cluster → Array. Этот элемент пустой внутри.

3. Выберем любой элемент управления и поместим его внутрь элемента Array. Растянем элемент управления Array.

4. Чтобы добавить измерение к массиву, в контекстном меню массива  выберем Add dimension. Чтобы сбросить значения массива, в  контекстном меню выберем Data Operations → Empty Array.

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

6. Обратите внимание, что в цикл While Loop добавлен оператор  задержки на 100 мс. Это сделано для того, чтобы не перегружать компьютер слишком частой проверкой и перерисовыванием большого числа элементов лицевой панели.

Рисунок 97 – Программа Example05.vi

Задание 4 Создать ВП, в котором значения элементов массива попадают в некоторый интервал. Лицевая панель и блок-диаграмма изображены на рисунке 98.

Второй случай структуры Case

Рисунок 98 – Программа элементов массива, попадающих в заданный диапазон

В качестве входных данных используется массив случайных чисел,  созданный в цикле For Loop. Размер массива задается оператором при помощи элемента управления Число элементов. Этот массив передаются процедуре поиска элементов, значения которых находятся в интервале, заданном оператором при помощи элементов управления Верхняя граница интервала и Нижняя граница интервала.

В этой процедуре мы определяем полное количество элементов входного массива при помощи оператора Array Size. Затем создаем массив точно такого же размера, как и входной, все элементы которого равны нулю (Initialize Array). Затем последовательно проверяем все  элементы входного массива в цикле For Loop. Для проверки  используется уже знакомый нам оператор In range and coerce

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

 Чтобы избежать этого, в данной программе мы заранее создаем  достаточно большой массив. Мы записываем нужные нам элементы в этот массив, последовательно заменяя значения его элементов. Одновременно программа считает количество таких замен N. После  того, как поиск завершен, мы изменяем размер выходного массива, и оставляем в нем первые N элементов, которые содержат найденные  нами значения.

Для замены значений массива и счета количества этих замен в программе используется уже знакомая нам структура Case Structure.

В этой программе используется туннель особого вида – так называемый Shift register. Чтобы создать его, нужно в контекстном меню туннеля выбрать Replace with Shift Register.

В результате вместо одного туннеля появится два – один на входе в цикл, а другой – на выходе. 

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

Рисунок 99 – Счетчик с использованием Shift Register

ПРАКТИЧЕСКАЯ РАБОТА 14

Работа со строками и файлами

 

Цель работы: изучение функций работы со строками, изучение функций файлового ввода/вывода, создание программы производящей вывод данных в текстовые  файлы.

Краткие теоретические сведения

Строки. Строки - это последовательность отображаемых и неотображаемых символов таблицы ASCII. Строки обеспечивают независимый от платформы формат обмена данными. Некоторый из наиболее распространенных строковых приложений включают в себя:

- создание простых текстовых сообщений;

- передачу числовых данных в приборы в виде строк символов и преобразование строк в числовые данные;

- сохранение числовых данных на диск, с процедурой преобразования числовых данных из двоичного формата в формат символов ASCII строк перед записью в файл;

- диалоговые окна инструкций и подсказок.

Строковые переменные в LabVIEW имеют то же значение, что и в языках программирования высокого уровня.

На лицевой панели приборов строги могут быть представлены в виде таблиц, полей ввода текста и меток. Для размещения строкового элемента на лицевой панели необходимо вызвать палитру элементов и выбрать в ней группу «String&Path» (рис 100).

Рисунок 100 – Группа элементов «String&Path»

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

Рисунок 101 – Примеры представления строковых переменных

Для смены типа отображения символов нужно правым щелчком мыши вызвать контекстное меню строкового элемента и выбрать необходимый тип отображения - «Normal Display», «ʼ\ʼ Code Display», «Password Display», «Hex Display».

На блок-диаграмме строковые элементы будут показаны в виде обычных терминалов, так же, как и другие элементы.

Строки, так же как и все остальные элементы-переменные в LabVIEW, могут быть элементами управления и элементами отображения данных, элементами-источниками и элементами-приемниками.

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

В палитре функций для выполнения операций над строковыми переменными отведена группа функций «String» (рис 102).

Рисунок 102

На рисунке 103 приведен пример виртуального прибора, который преобразует числовое представление числа в строковое, записанное словами (для простоты построения взят диапазон чисел от 20 до 90).

Рисунок 103 – Пример ВП перевода чисел и их представление

в виде слов

Файловый ввод/вывод. Функции файлового ввода/вывода производят файловые операции записи и считывания данных. Функции файлового ввода/вывода расположены в палитре функций «File I/O» (рис 104) и предназначены для:

- открытия и закрытия файла данных;

- считывания и записи данных из/в файл(а);

- считывания и записи данных из/в файл(а) в виде таблицы символов;

- перемещения и переименования файлов и каталогов;

- изменения характеристик файла;

- создания, изменения и считывания файлов конфигурации.

Рисунок 104

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

Функции файлового ввода/вывода высокого уровня расположены в верхней строке палитры «File I/O» и предназначены для выполнения основных операций во вводу/выводу данных.

Функции файлового ввода/вывода низкого уровня расположены в средней строке палитры «File I/O». Они используются для создания нового или обращения к ранее созданному файлу, записи и считывания данных и закрытия файла. Функции низкого уровня работы с файлами поддерживают все операции, необходимые при работе с файлами.

Для осуществления стандартной процедуры ввода/вывода данных в/из файл(а) необходимо выполнять следующую последовательность действий:

1. Создание или открытие файла. Указание месторасположения существующего файла или пути для создания нового файла с помощью диалогового окна LabVIEW. После открытия файла LabVIEW создает ссылку на него.

2. Произведение операции считывания или записи данных в/из файл(а).

3. Закрытие файла.

4. Обработка ошибок.

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

Рисунок 105 – Пример записи данных в файл

Из рисунка видно, что на лицевой панели, расположено два элемента: строковый элемент, содержащий текст, который будет записан в файл, и элемент «File Path Control» из палитры «Strings&Path», который содержит путь и имя файла, с которым будет взаимодействовать программа.

На блок-диаграмме при помощи узла «Open/Create/Replace File» происходит открытие файла и получение файлового указателя «refnum». На вход узла подается два сигнала: путь и имя файла, и число обозначающее функцию, которая будет выполняться с указанным файлом (в нашем случае мы подаем число 2 - создать новый файл или перезаписать существующий).

Далее при помощи узла «Write file» производится запись данных в файл и закрытие файла при помощи узла «Close file».

После выполнения данной программы на диске «h:\» получим файл «test.txt», содержащий текст «Эта строка запишется в файл».

На рисунке 106 приведен пример программы, которая позволяет считывать данные из файла.

Рисунок 106 – Пример чтения данных из файла

Здесь для чтения информации из файла используется узел «Real File», на который подается файловый указатель «refnum» и количество символов (байт), которое нужно считать из файла. Размер файла определяется при помощи узла «File\Directory Info».

Задание 1 Создать и оформить в виде подпрограммы виртуальный прибор, подобный представленному на рисунке 103. Данная подпрограмма должна переводить числа в от 0 до 100 из числового формата в формат записи числа в виде строк текста.

Задание 2 Разработать и создать ВП, который будет производить следующие действия:

- генерировать случайное число в диапазоне от 0 до 100;

- переводить сгенерированное число из строкового формата в формат в виде записи числа из строк;

- последовательно записывать полученные числа в текстовый файл.

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

Пример лицевой панели прибора данных, выводимых в файл показан на рисунке 107.

Рисунок 107 – Пример лицевой панели прибора

и результатов работы программы

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Какие типы данных вы изучили в данной работе?

2 Какие функции работы со строками вы знаете?

3 Опишите последовательность действий при записи данных в файл.

4 Опишите последовательность действий при чтении данных из файла.

5 Какие операции с файлами можно выполнять в LabVIEW?

6 Можно ли при помощи средств LabVIEW создать текстовый редактор наподобие редактора Блокнот из Windows? Каков будет последовательность ваших действий при его создании?

7 Какой тип данных в LabVIEW отображается розовым цветом?

 

 


 

ПРАКТИЧЕСКАЯ РАБОТА 15

Массивы

 

Цель работы: Работа с массивами

Задание 1 Создать ВП, создающий двумерный массив 5х5, заполненный числами от 1 до 25. Лицевая панель и блок-диаграмма представлены на рисунке 108.

Рисунок 108 – Программа, создающая двумерный массив 5х5, заполненный числами от 1 до 25

Задание 2 Создать ВП, вычисляющий числа Фибоначчи. Лицевая панель и блок-диаграмма представлены на рисунке 109.

Числа Фибоначчи – это числа, вычисляемые по следующему алгоритму: каждое новое число вычисляется как сумма двух предыдущих. Первые два числа обычно берут 0 и 1.

Рисунок 109 – Вычисление чисел Фибоначчи

Задание 3 Функции работы с массивами.

- Инициализация массива (Initialize Array) – создает n-мерный массив, в котором каждый элемент инициализирован значением поля ввода данных «element». Лицевая панель и блок-диаграмма представлены на рисунке 110.

Рисунок 110 – Функция Initialize Array

- Компоновка массива (Build Array) – объединяет несколько массивов или добавляет элемент в n-мерный массив. Лицевая панель и блок-диаграмма представлены на рисунке 111.

Рисунок 111 – Функция Build Array

- Подмножество массива (Array Subset) – выдает часть массива, начиная с индекса, введенного в поле index, и длиной, указанной в поле length. Лицевая панель и блок-диаграмма представлены на рисунке 112.

Рисунок 112 – Функция Array Subset

- Элемент массива по индексу (Index Array) – выдает элемент, соответствующий индексу, номер которого введен в поле index. Лицевая панель и блок-диаграмма представлены на рисунке 113.

Рисунок 113 – Функция Index Array

- Поиск в одномерном массиве (Search 1D Array). Данная функция выполняет поиск заданного элемента в одномерном массиве начиная с заданного индекса. Лицевая панель и блок-диаграмма представлены на рисунке 114.

Рисунок 114 – Функция Search 1D Array

Задание 4 Создать ВП, в котором реализуется поиск всех индексов массива, значение которых совпадает с заданным значением. Блок-диаграмма представлена на рисунке 115.

Рисунок 115 – Реализация поиска индексов массива

Задание 5 Создать массив из 1000 целых случайных чисел в диапазоне от 0 до 100, в котором ищется первое вхождение числа 55. Блок-диаграмма представлена на рисунке 116.

Рисунок 116 – Блок-диаграмма к заданию 5

Задание 6 Создать ВП реализации алгоритма поиска элемента в массиве с максимальным значением. Блок-диаграмма представлена на рисунке 117.

Рисунок 117 – Блок-диаграмма к заданию 6

 

ПРАКТИЧЕСКАЯ РАБОТА 16

Графики

 

Цель работы: Работа с графиками

Задание 1 Создать программу, отображающую на графике 100 периодов синусоиды. Лицевая панель и блок-диаграмма представлены на рисунке 118.

Рисунок 118 – Программа, отображающая на графике 100 периодов синусоиды

Создайте виртуальный прибор, изображенный на рисунке 118. Графический элемент Waveform Graph можно найти в разделе Modern → Graph, функцию Sine, вычисляющую синус числового значения – Mathematics → Elementary.

Установите палитру элементов управления графиком. Для этого во всплывающем меню на графическом индикаторе Waveform Graph установите галку в пункте Visible Items → Graph Palette.

Выберите способ выделения участка графика, как показано на рисунке 119.

Рисунок 119 – Выбор способа выделения участка графика

Выделите небольшой участок графика, как показано на рисунке 120.

Рисунок 120 – Выделенный участок графика

Задание 2 Создание синусоиды и косинусоиды с помощью формулы Эйлера. Лицевая панель и блок-диаграмма представлены на рисунках 121 и 122.

Рисунок 121 – Лицевая панель

Рисунок 122 – Блок-диаграмма

Обратите внимание на использование компаундной арифметики для задания фазы комплексной экспоненты.

Задание 3 Создание «зашумленной» косинусоиды с помощью узла Expression Node и генератора случайных чисел. Лицевая панель и блок-диаграмма представлены на рисунках 123 и 124.

Рисунок 123 – Лицевая панель

Рисунок 124 – Блок-диаграмма

Задание 4 Генерация осциллограмм различных стандартных сигналов с добавлением шума с помощью ВП Basic Function Generator.vi и Gaussian White Noise Waveform.vi (Wave_form_gen.vi). Лицевая панель и блок-диаграмма представлены на рисунках 125 и 126.

Параметры квантования на оба ВП поступают с одного управляющего элемента «Квантование». Для суммирования сигнала и шума используется полиморфная функция сложения. Если параметры квантования будут отличаться, при суммировании возникнет ошибка. Доступ к временным параметрам сгенерированной осциллограммы дает функция Get Waveform Components с палитры Waveform. Индикатор «Дата» пуст. Чтобы записать в него системное время компьютера, можно воспользоваться функцией Get Date → Time in Second с палитры Time&Dialog и Build Waveform с палитры Waveform, включив ее в разрыв выходного проводника ВП – генератора стандартных функций.

Рисунок 125 – Лицевая панель

Рисунок 126 – Блок-диаграмма

Задание 5 Сравнение корреляции и свертки на примере согласованной фильтрации ЛЧМ-сигнала. Лицевая панель и блок-диаграмма представлены на рисунках 127 и 128.

Рисунок 127 – Лицевая панель

Рисунок 128 – Блок-диаграмма

Задание 6 Преобразование действительного ЛЧМ-сигнала в аналитический. Лицевая панель и блок-диаграмма представлены на рисунках 129 и 130.

Рисунок 129 – Блок-диаграмма

Рисунок 130 – Лицевая панель

Задание 7 Знакомство с работой ВП FIR Windowed Filter.vi. Лицевая панель и блок-диаграмма представлены на рисунках 131 и 132.

Рисунок 131 – Лицевая панель

Рисунок 132 – Блок-диаграмма

Задание 8 Удаление импульсной помехи из сигнала с помощью медианного фильтра (Fir_med.vi). Лицевая панель и блок-диаграмма представлены на рисунках 133 и 134.

Обратите внимание на использование генератора случайных чисел для задания положения импульса и сдвигового регистра и суммирования в цикле For Loop для создания сигнала, состоящего из импульсов. В ВП Sine Wave.vi частота задается как f= число периодов / число отсчетов.

Рисунок 133 – Лицевая панель

Рисунок 134 – Блок-диаграмма

Задание 9 Сравнение различных окон при спектральном анализе. Лицевая панель и блок-диаграмма представлены на рисунках 135 и 136.

В палитре Signal Processing → Windows располагаются ВП, умножающие входную последовательность на различные окна: Hamming Window.vi, Hanning Window.vi, Flat Top Window.vi и т.д. Приведенный ниже пример (см. рис 135-136) знакомит со свойствами некоторых из этих окон применительно к упоминавшийся выше заданию выделения слабого гармонического сигнала на фоне сильного.

Рисунок 135 – Лицевая панель

Рисунок 136 – Блок-диаграмма

ПРАКТИЧЕСКАЯ РАБОТА 17

Физические процессы, конденсат и генератор

 

Цель работы:

Задание 1 Создать ВП, в котором будет отображаться моделирование физических процессов. Лицевая панель и блок-диаграмма представлены на рисунках 137 и 138.

http://i67.fastpic.ru/big/2014/0826/6c/084248a13138f13e38fcd51009ddc96c.png

Рисунок 137 – Лицевая панель моделирования процессов сжатия

http://i63.fastpic.ru/big/2014/0826/ee/0d20db646d47cbd5bb9e25c4761192ee.png

Рисунок 138 – Блок-диаграмма программы моделирования

политропного сжатия воздуха

Задание 2 Создать ВП, который будет определять емкости конденсата. Лицевая панель и блок-диаграмма представлены на рисунках 139 и 140.

http://i65.fastpic.ru/big/2014/0826/f8/ffd095be883c2c6d29a3c96c88ac56f8.png

Рисунок 139 – Лицевая панель программы для определения емкости конденсата

http://i66.fastpic.ru/big/2014/0826/7d/c00ae207098cc715902c7833ceae217d.png

Рисунок 140 – Блок-диаграмма программы по определению емкости конденсата

Задание 3 Создать ВП «Генератор сигналов». Лицевая панель и блок-диаграмма представлены на рисунках 141 и 142.

http://i67.fastpic.ru/big/2014/0826/fb/1774419ecf65ed021398a8e8040e5efb.png

Рисунок 141 – Лицевая панель генератора сигналов

http://i67.fastpic.ru/big/2014/0826/d9/40d287973d2bbb2613d428eca874aad9.png

Рисунок 142 – Блок-диаграмма программного управления режимом работы генератора

 


ПРАКТИЧЕСКАЯ РАБОТА 18

Регистратор

 

Цель работы:

Задание 1 Создать ВП для циклической генерации случайного числа в заданном диапазоне с проверкой на допустимость значения и записью измеренных значений в файл.

Исходные данные для разработки ВП представлены в таблице 3.

Таблица 3 - Исходные данные

Порядок выполнения:

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

Рисунок 143 – Лицевая панель одноканального регистратора

Используя палитру-меню элементов пользовательского интерфейса, конструируем лицевую панель. Лицевая панель изображена на рисунке 143. Для создания лицевой панели используются элементы, представленные в таблице 4.

Таблица 4 - Элементы для создания лицевой панели

Кроме того, для визуальной группировки различных исходных данных используем две прямоугольные рамки из палитры Decorations и окружаем ими регулятор "Диапазон" и параметры проверки на допустимость значений.

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

Блок-диаграмма программы, представлена на рисунке 144.

Рисунок 144 – Блок-диаграмма одноканального регистратора

Алгоритм работы ВП:

1. начало (запуск виртуального прибора)

2. запрашиваем у оператора имя файла для сохранения результатов, открываем выбранный файл. Удаляем с графика результаты предыдущего эксперимента. Удаляем элементы из таблицы.

3. ожидаем нажатие на кнопку "Пуск"

4. определяем время старта, переходим в режим "измерений"

5. циклически, через dt=500 мс. выполняем следующие действия:

- определяем время со старта;

- генерируем случайное число 0-1. Умножаем на значение регулятора "Диапазон", получаем число 0-Диапазон;

- определяем текущее значение уставки;

- сравниваем результат измерения с уставкой, при превышении зажигаем лампу "Авария";

- отображаем на график следующие данные: Диапазон, Уставка, измеренное значение;

- формируем строку со значением времени, для чего преобразуем число (время в секундах) в строковый вид – формат числа с плавающей точкой, 3 знака после запятой;

- формируем строку с полями Диапазон, Уставка, измеренное значение, разделенными табуляцией, в конце символ перевода строки. Формат преобразования – число с плавающей точкой, 2  знака после запятой;

- формируем итоговую строку для записи в файл в виде время – табуляция – строка с предыдущего этапа;

- записываем итоговую строку в файл;

- передаем текущее время и измеренное значение на выходные индексирующие туннели цикла, чтобы можно было после завершения работы построить таблицу время-значение;

- проверяем условие завершения цикла – нажатие оператором на кнопку "Стоп"

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

7. конец.

Для реализации этого алгоритма можно использовать конструкцию программирования "Последовательность", состоящую в данном случае из пяти страниц, расположенных слева направо. Помещаем на блок-диаграмму конструкцию "Flat Sequence Structure" через всплывающее меню добавляем нужное количество страниц. Затем формируем блок-диаграмму в соответствие с нашим алгоритмом. Один из вариантов построения блок-диаграммы изображен на рисунке 144.

Сохраняем виртуальный прибор на диск под именем "Регистратор.vi".

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

Рисунок 145 – Файл результатов работы регистратора,

обработка полученных данных в Microsoft Excel

 

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

1 Какие пакеты для разработки программ вы знаете?

2 Каковы отличительные особенности среды графического программирования LabVIEW, какова структура этого инструментального средства?

3 Поясните содержание и назначение понятий «виртуальный прибор»,  «передняя панель», «блок-диаграмма», «пиктограмма», «коннектор».

4 Что находится на передней панели ВП? Объясните разницу между режимами работы элементов передней панели "Регулятор" и "Индикатор"?

5 Каким образом можно отобразить результаты работы ВП на элементе передней панели с режимом "Регулятор"? Как считать данные с "Индикатора"?

6 Что находится на блок-диаграмме? Что такое узел, терминал, конструкция программирования?

7 Чем определяется порядок выполнения виртуального прибора?

8 Что такое полиморфизм?

9 Как в LabVIEW организовать цикл с неизвестным числом итераций с предпроверкой условия?


 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

Организация разработчик: Краевое государственное автономное профессиональное образовательное учреждение «Губернаторский авиастроительный колледж г

Организация разработчик: Краевое государственное автономное профессиональное образовательное учреждение «Губернаторский авиастроительный колледж г

СОДЕРЖАНИЕ Практическая работа 1

СОДЕРЖАНИЕ Практическая работа 1

ПРАКТИЧЕСКАЯ РАБОТА 1 Создание виртуального прибора на основе шаблона

ПРАКТИЧЕСКАЯ РАБОТА 1 Создание виртуального прибора на основе шаблона

При нажатии на Blank VI программа откроет два окна

При нажатии на Blank VI программа откроет два окна

Индикаторы имитируют выходные устройства прибора и отображают данные, которые блок диаграммы получает или генерирует

Индикаторы имитируют выходные устройства прибора и отображают данные, которые блок диаграммы получает или генерирует

Рисунок 4 – Панель Tools Palette – выделение, перемещение объектов, изменение их размера; – открытие и редактирование текстового окна; – служит для соединения объектов на…

Рисунок 4 – Панель Tools Palette – выделение, перемещение объектов, изменение их размера; – открытие и редактирование текстового окна; – служит для соединения объектов на…

Выполните следующие шаги для создания

Выполните следующие шаги для создания

Блок-диаграмма имеет белый фон рабочего пространства и содержит

Блок-диаграмма имеет белый фон рабочего пространства и содержит

Изменение типа сигнала На блок-диаграмме присутствует иконка голубого цвета, с названием

Изменение типа сигнала На блок-диаграмме присутствует иконка голубого цвета, с названием

Рисунок 8 – Диалоговое окно

Рисунок 8 – Диалоговое окно

Этот инструмент используется для выбора, размещения или изменения размеров объектов

Этот инструмент используется для выбора, размещения или изменения размеров объектов

Снабдите ВП, который вы создаете, кнопкой остановки, чтобы обойти эту проблему

Снабдите ВП, который вы создаете, кнопкой остановки, чтобы обойти эту проблему

String вверху диалогового окна

String вверху диалогового окна

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

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

Рисунок 13 – Блок-диаграмма, демонстрирующая применение функции

Рисунок 13 – Блок-диаграмма, демонстрирующая применение функции

Рисунок 14 – Диалоговое окно Knob

Рисунок 14 – Диалоговое окно Knob

В текстовом поле Name удалите текущий ярлык и измените название этого графика на "

В текстовом поле Name удалите текущий ярлык и измените название этого графика на "

ПРАКТИЧЕСКАЯ РАБОТА 2 Создание виртуального прибора «Преобразование °С в °

ПРАКТИЧЕСКАЯ РАБОТА 2 Создание виртуального прибора «Преобразование °С в °

Dynamic – динамический тип, отображается в виде темно-синих терминалов

Dynamic – динамический тип, отображается в виде темно-синих терминалов

Multiply и сложения Add , а также две константы 1,8 и 32

Multiply и сложения Add , а также две константы 1,8 и 32

Самостоятельная работа Создайте

Самостоятельная работа Создайте

Как соединяются объекты проводниками данных? 8

Как соединяются объекты проводниками данных? 8

ПРАКТИЧЕСКАЯ РАБОТА 3 Создание виртуального прибора для использования в качестве подпрограммы

ПРАКТИЧЕСКАЯ РАБОТА 3 Создание виртуального прибора для использования в качестве подпрограммы

С помощью простейших функций графического редактора можно создать собственный вариант иконки

С помощью простейших функций графического редактора можно создать собственный вариант иконки

ВВОД ТЕКСТА ; б) напечатайте «С» и «F»; в) для выбора размера шрифта дважды щелкните левой кнопкой мыши по инструменту

ВВОД ТЕКСТА ; б) напечатайте «С» и «F»; в) для выбора размера шрифта дважды щелкните левой кнопкой мыши по инструменту

Controls в разделе Numeric (Числовые элементы); б) напечатайте

Controls в разделе Numeric (Числовые элементы); б) напечатайте

Description and Tip (Описание и предупреждения); е) в поле ввода текста напечатайте следующее:

Description and Tip (Описание и предупреждения); е) в поле ввода текста напечатайте следующее:

В палитре Functions (Функций) в разделе

В палитре Functions (Функций) в разделе

ВП измеряет напряжение; на выходе – значение напряжения или силы тока (рассчитанной по закону

ВП измеряет напряжение; на выходе – значение напряжения или силы тока (рассчитанной по закону

ПРАКТИЧЕСКАЯ РАБОТА 4 Создание виртуального прибора «Изменение температуры во времени»

ПРАКТИЧЕСКАЯ РАБОТА 4 Создание виртуального прибора «Изменение температуры во времени»

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

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

TRUE и вариант FALSE. Если к терминалу подключено целое число, строка или величина перечислительного типа, то такая структура может иметь любое количество вариантов

TRUE и вариант FALSE. Если к терминалу подключено целое число, строка или величина перечислительного типа, то такая структура может иметь любое количество вариантов

Flat Sequence , размеры границ структуры автоматически изменяются

Flat Sequence , размеры границ структуры автоматически изменяются

Блок-диаграмма 2 Создайте блок-диаграмму, показанную на рисунке 25

Блок-диаграмма 2 Создайте блок-диаграмму, показанную на рисунке 25

Самостоятельная работа

Самостоятельная работа

КОНТРОЛЬНЫЕ ВОПРОСЫ 1 Из каких основных компонентов состоит

КОНТРОЛЬНЫЕ ВОПРОСЫ 1 Из каких основных компонентов состоит

ПРАКТИЧЕСКАЯ РАБОТА 5 Разработка виртуального прибора с возможностью задания амплитуды и функции отображения

ПРАКТИЧЕСКАЯ РАБОТА 5 Разработка виртуального прибора с возможностью задания амплитуды и функции отображения

Синтаксис математических выражений и правила написаний функций представлены в таблице 1

Синтаксис математических выражений и правила написаний функций представлены в таблице 1

Увеличьте его размер до желаемого

Увеличьте его размер до желаемого

Рисунок 26 – Окно свойств текстового переключателя

Рисунок 26 – Окно свойств текстового переключателя

Подведите элемент соединения «

Подведите элемент соединения «

Рисунок 28 – Блок-диаграмма ВП 10

Рисунок 28 – Блок-диаграмма ВП 10

Самостоятельная работа Создайте

Самостоятельная работа Создайте

ПРАКТИЧЕСКАЯ РАБОТА 6 Работа с массивами

ПРАКТИЧЕСКАЯ РАБОТА 6 Работа с массивами

Двумерные массивы . В двумерном (2

Двумерные массивы . В двумерном (2

Рисунок 32 – Блок-диаграмма

Рисунок 32 – Блок-диаграмма

Concatenate Inputs (объединение входных данных)

Concatenate Inputs (объединение входных данных)

Ctrl и, перемещая элемент Массив случайных чисел , создайте две его копии; е) копиям присвойте имена

Ctrl и, перемещая элемент Массив случайных чисел , создайте две его копии; е) копиям присвойте имена

Выберите функцию Array Subset , расположенную в палитре

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