Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник 367.docx
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
1.88 Mб
Скачать

ФГБОУ ВО “Воронежский государственный технический университет”

Кафедра полупроводниковой электроники и наноэлектроники

ХХХ-2015

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к выполнению лабораторных работ

по дисциплине «Компьютерные технологии в научных исследованиях»

для студентов направления

11.04.04 «Электроника и наноэлектроника»

(магистерская программа “Приборы и устройства в микро- и наноэлектронике”)

очной формы обучения

Воронеж 2015

Составители: канд. техн. наук А.В. Арсентьев,

канд. техн. наук Е.Ю. Плотникова

УДК 621.382

Методические указания к выполнению лабораторных работ по дисциплине «Компьютерные технологии в научных исследованиях» для магистров направления 11.04.04 «Электроника и наноэлектроника» (магистерская программа “Приборы и устройства в микро- и наноэлектронике”) очной формы обучения / ФГБОУ ВО «Воронежский государственный технический университет»; сост. А.В. Арсентьев, Е.Ю. Плотникова. Воронеж, 2015. 33 с.

Языки визуального программирования содержат большое число стандартных функций и библиотек, а также готовых средств визуализации. Они позволяют создавать эффектные программы, не написав ни одной строки кода специалистами, не являющимися программистами, на алгоритмических языках, пользуясь только логикой и понимая постановку прикладной задачи, из готовых компонентов, набрасывая их мышкой на экран монитора и проводя графические связи для указания потоков информации. Одним из таких языков является LabView фирмы National Instruments.

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

Методические указания подготовлены в электронном виде в текстовом редакторе MS Word МУ КТНИ LabView.doc.

Ил. 31. Библиогр.: 4 назв.

Рецензент д-р техн. наук, проф. А.В. Строгонов

Ответственный за выпуск зав. кафедрой

д-р физ.-мат. наук, проф. С.И. Рембеза

Издается по решению редакционно-издательского совета Воронежского государственного технического университета

© ФГБОУ ВО «Воронежский государственный технический университет», 2015

ЛАБОРАТОРНАЯ РАБОТА № 1.

Ознакомление с средой LabVIEW.

ЦЕЛЬ: Ознакомиться со средой разработки LabVIEW и основными принципами создания виртуальных приборов.

ЗАДАНИЕ: Создать виртуальный прибор (ВП), моделирующий температурный монитор.

ПОРЯДОК ВЫПОЛНЕНИЯ:

  1. Создать субВП цифрового термометра (рис. 1.1):

      1. Установив курсор на лицевой панели ВП, щёлкнуть правой кнопкой мыши и удерживать её до тех пор, пока не появится меню Controls.

      2. Поместить на лицевую часть ВП термометр (Controls – Numeric – Termometer).

      3. Изменить пределы измерения на шкале термометра в пределах 70…90

  1. Поместить на блок-схему ВП (рис. 1.2):

      1. Источник напряжения (Functions – Tutorial – Demo Voltage Read.vi.

      2. Числовую константу (Functions – Numeric – Numeric Constant).

      3. Умножение (Functions – Numeric – Multiply).

  1. На блок-схеме присвоить числовой константе значение 100.

  2. На блок-схеме соединить источник напряжения с объектом умножения.

  3. На блок-схеме соединить числовую константу с объектом умножения.

  4. На блок-схеме соединить объект умножения с терминалом термометра.

  5. На лицевой части ВП, щёлкнув правой кнопкой мыши на пиктограмме в правом верхнем углу, выбрать пункт меню Show Connector.

  6. Правой кнопкой мыши вызвать в этом поле контекстное меню и выбрать пункт Patterns.

  7. В появившейся палитре выбрать образец, соответствующий единственному параметру.

  8. Щёлкнув курсором «катушки» на объекте лицевой панели Термометр, установить соответствие его с секцией образца.

  9. Сохранить созданный субВП (меню File – Save As…).

  10. Создать новый ВП температурного монитора.

  11. Поместить на лицевую часть ВП (рис. 1.3):

      1. Вертикальный переключатель (Controls – Boolean – Vertical Toogle Switch).

      2. Диаграмму сигнала (Controls – Graph – Waveform Chart).

  1. Поместить на блок-схему ВП (рис. 1.4):

    1. Цикл While (Structures – While Loop).

    2. Созданный ранее ВП цифрового термометра (Functions – Select a VI…).

    3. Числовую константу (Functions – Numeric – Numeric Constant).

    4. Таймер (Functions – Time & Dialog – Wait Until Next ms Multiple).

  2. На блок-схеме присвоить числовой константе значение 500.

  3. На блок-схеме соединить числовую константу с таймером.

  4. На блок-схеме соединить субВП цифрового прибора с терминалом диаграммы сигнала.

  5. На блок-схеме соединить терминал переключателя с условием выхода из цикла.

  6. Запустить ВП на выполнение. На графике должен отобразиться процесс изменения температуры (рис. 1.5).

Рис. 1.1. Внешний вид ВП цифрового термометра

Рис. 1.2. Блок-схема ВП цифрового термометра

Рис. 1.3. Внешний вид ВП температурного монитора

Рис. 1.4. Блок-схема ВП температурного монитора

Рис. 1.5. Результат работы ВП температурного монитора

ЛАБОРАТОРНАЯ РАБОТА № 2.

Моделирование дискретных процессов.

ЦЕЛЬ: Научиться моделировать и отображать дискретные процессы.

ЗАДАНИЕ: Создать виртуальный прибор (ВП), позволяющий рассчитывать значение логической функции f(x,y) и отображать значения функции и зависимых переменных на графиках.

ПОРЯДОК ВЫПОЛНЕНИЯ:

  1. Поместить на лицевую часть ВП (рис. 2.1):

      1. Два логических переключателя X и Y (Controls – Boolean - Vertical Toggle Switch).

      2. Три графика X, Y, F (Controls – Graph - Waveform Chart).

      3. Строковой индикатор Результат (Controls - String & Path - String Indicator).

  1. Задать для каждого графика значения шкалы Amplitude от -10 до 10.

  2. Поместить на блок-схему ВП (рис. 2.2):

    1. Структуру While Loop (Functions – Structures – While Loop) так, чтобы все остальные объекты были внутри нее.

    2. Три структуры Case (Functions – Structures - Case).

    3. Булеву константу True (Functions – Boolean – True Constant).

    4. Числовую константу (Functions – Numeric – Numeric Constant).

    5. Таймер (Functions – Time & Dialog – Wait Until Next ms Multiple).

  3. На блок-схеме числовой константе присвоить значение 500.

  4. На блок-схеме соединить числовую константу с Таймером.

  5. На блок-схеме соединить булеву константу True с условием выхода из цикла (см. рис. 2.2).

  6. На блок-схеме соединить логические переключатели X, Y со структурой Case (для каждого переключателя своя структура Case). Соединения производятся в точке условия (знак “?”).

  7. На закладку True каждой из двух использованных структур Case поместить по числовой константе и присвоить им значения, равные 5.

  8. В каждой из двух использованных структур Case на закладке True cоединить числовую константу с рамкой (появится точка внешнего соединения – «квадрат»).

  9. На закладку False каждой из двух использованных структур Case поместить по числовой константе и присвоить им значения, равные -5.

  10. В каждой из двух использованных структур Case на закладке False cоединить числовую константу с рамкой в той же точке внешнего соединения, что и на закладке True (на рамке каждой структуры должен быть только один «квадрат»).

  11. На блок-схеме соединить графики X, Y со структурами Case так, чтобы соответствующие логические переключатели и графики соединялись с одной структурой Case (X c X, Y c Y). Подключение осуществляется в точке внешнего соединения на рамке структуры («квадрат»). На рамке каждой структуры по прежнему должна оставаться только одна точка внешнего соединения.

  12. В соответствии с заданным вариантом (варианты задания у преподавателя) на блок-схеме с помощью логических элементов (палитра Functions - Boolean) реализовать логическую функцию. В качестве переменных используются выходы логических переключателей X и Y (пример на рис. 2.2).

  13. Выход реализованной функции соединить с третьей неиспользованной структурой Case аналогично п. 7.

  14. На вкладку True данной структуры Case поместить числовую (Functions – Numeric – Numeric Constant) и строковую (Functions – String – String Constant) константы.

  15. Присвоить этим константам значения «Истина» и 5 соответственно.

  16. Соединить каждую константу с рамкой данной структуры Case, создав две точки внешнего соединения аналогично п. 9.

  17. На вкладку False данной структуры Case аналогично поместить числовую и строковую константы и присвоить им значения «Ложь» и -5 соответственно.

  18. Соединить каждую константу с соответствующей точкой соединения (строковую – со строковой, числовую – с числовой).

  19. На блок-схеме присоединить строковой индикатор «Результат» к строковой точке соединения последней структуры Case.

  20. На блок-схеме присоединить график F к числовой точке соединения аналогично п. 12.

  21. Запустить ВП на выполнение (рис. 2.3). На графиках X и Y должны отображаться уровнем сигнала текущие состояния логических переключателей, а на графике F – текущее значение булевой функции. Строковой индикатор результат должен отображать текущее значение функции в виде «Истина» / «Ложь».

  22. Проверьте правильность реализации функции, изменяя значения переключателей X и Y.

Рис. 2.1. Внешний вид ВП

Рис. 2.2. Блок-схема ВП

Рис. 2.3. Результаты работы ВП

ЛАБОРАТОРНАЯ РАБОТА № 3.

Работа с узлами свойств.

ЦЕЛЬ: Научиться работать с узлами свойств.

ЗАДАНИЕ: Создать виртуальный прибор, генерирующий последовательность случайных чисел и отображающий на диаграмме: текущее число, среднеарифметическое значение, вычисленное с использованием трёх последних значений, и среднеквадратичное значение, вычисленное с использованием трёх последних значений. При помощи кнопок управлять видимостью каждой кривой на графике.

ПОРЯДОК ВЫПОЛНЕНИЯ:

  1. Создайте новый ВП.

  2. На лицевой части ВП (рис. 3.1)

    1. Поместите элемент Horizontal Pointer Slide (Controls - Numeric). Настройте диапазон его значений от 100 до 1000. Сделайте видимым его цифровой дисплей.

    2. Поместите элемент Waveform Chart (Controls - Graph). Настройте

значения его шкал.

    1. Поместите три элемента Push Button (Controls - Boolean)

    2. Поместите элемент Stop Button (Controls - Boolean)

  1. На блок-диаграмме ВП (рис.3.2)

    1. Поместите цикл While и соедините его терминал условия завершения с кнопкой stop.

    2. Поместите элемент задержки Wait Until Next ms Multiple и соедините его терминал с терминалом элемента управления для задания длительности задержки.

    3. На рамке цикла создайте сдиговый регистр с тремя входными терминалами.

    4. Поместите генератор случайных чисел и соедините его с выходным терминалом сдвигового регистра.

    5. При помощи арифметических операций рассчитайте среднеарифметическое и среднеквадратичное значения регистра, используя три его последних значения, как показано на рис. 3.2.

    6. Объедините рассчитанные значения в кластер при помощи блока Bundle (Functions - Clusters).

    7. Соедините объединённые значения с терминалом графика.

    8. Поместите три структуры Case и соедините терминал выбора каждой из них с соответствующими терминалами трёх кнопок.

    9. Создайте шесть узлов свойств (Property Node) для графика, используя его контекстное меню (Create – Property Node), и поместите каждый узел свойств в блоки True и False структур Case.

    10. Выберите у узлов свойств два свойства: ActivePlot и Plot – Visible. Переведите их в режим записи.

    11. Создайте по константе для каждого из свойств, установите в них необходимые значения и запишите их в свойства. Для выбора необходимой кривой на графике используйте индексацию 0, 1, 2, …, для установки видимости используйте булевы значения.

  2. Запустите ВП на выполнение и проверьте правильность его работы.

Рис. 3.1. Лицевая панель ВП.

Рис. 3.2. Блок-схема ВП

ЛАБОРАТОРНАЯ РАБОТА № 4

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

ЦЕЛЬ: Научиться работать с массивами.

ЗАДАНИЕ: Создать виртуальный прибор, который создавал бы двумерный массив (три строки и сто столбцов) случайных чисел и записывал транспонированные данные в файл таблицы символов. Файл должен содержать заголовки для каждого столбца. Затем отобразить три результирующих вектора на одном графике.

ПОРЯДОК ВЫПОЛНЕНИЯ:

  1. Создайте новый ВП.

  2. На лицевой части ВП (рис. 4.1).

    1. Поместите элемент управления File Path Control (Controls – String & Path).

    2. Поместите график Waveform Graph (Controls - Graph).

    3. Поместите кнопку.

  3. На блок-диаграмме ВП.

    1. Создайте бесконечный цикл по условию.

    2. Внутри цикла создайте структуру Case и соедините терминал кнопки с терминалом условия структуры.

    3. Внутри структуры Case создайте структуру Sequence с тремя кадрами.

  4. В первом кадре структуры Sequence (рис. 4.2)

    1. Поместите элементы Write Characters To File (Functions – File I/O), Concatenate Strings (Functions - String), создайте строку заголовков путём склеивания подстрок и строковых констант символа табуляции и конца строки.

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

    3. Создайте локальную переменную внутри кадра (из контекстного меню по щелчку правой кнопкой мыши на рамке структуры) и запишите в неё значение имени файла.

  5. Во втором кадре структуры Sequence (рис. 4.3).

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

    2. Запишите результирующий двумерный массив в файл табличного формата Write To Spreadseet File (Functions – File I/O), установите свойство transpose в true и свойство append to file в true.

    3. Создайте другую локальную переменную на рамке структуры Sequence и запишите в неё результирующий двумерный массив.

  6. В третьем кадре структуры Sequence (рис. 4.4) на рисунке показана сортировка каждого одномерного массива и отображение результата на графике.

Рис. 4.1. Лицевая панель ВП

Рис. 4.2. Первый кадр структуры последовательности

Рис. 4.3. Второй кадр структуры последовательности

Рис. 4.4. Третий кадр структуры последовательности

ЛАБОРАТОРНАЯ РАБОТА № 5

Графический анализ данных.

ЦЕЛЬ: Использование графиков и осциллограмм для анализа данных.

ЗАДАНИЕ: Создайте виртуальный прибор, который измеряет температуру приблизительно через каждые 0,25 с в течение 10 с. Во время получения данных ВП демонстрирует результаты измерений в реальном времени на развертке осциллограммы. После завершения сбора данных ВП вычерчивает данные на графике и вычисляет минимальное, максимальное и среднее значение температуры.

ПОРЯДОК ВЫПОЛНЕНИЯ:

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

  2. Измените масштаб графика для получения диапазона от 70,0 до 90,0. Убедитесь, что режим автоматической настройки шкал включен для обеих осей графика.

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

  4. Развертка Температура отображает температуру по мере получения данных. После завершения сбора информации о температуре ВП вычерчивает данные на Графике температуры. Цифровые элементы отображения Среднее, Max и Min покажут соответственно среднее, максимальное и минимальное значение температуры.

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

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

  1. Цикл с фиксированным числом итераций выполняется 40 раз. Функция Задержка до следующего кратного интервала мс заставляет каждую итерацию выполняться приблизительно каждые 0,25 с. Виртуальный прибор сохраняет результаты измерений температуры в массиве, созданном на границе цикла с фиксированным числом итераций, используя автоиндексирование.

  2. После завершения цикла массив переходит к различным узлам данных. Функция Массив Maxi&rMin возвращает максимальное и минимальное значения температуры, функция Mean.vi – среднее значение.

  3. Вернитесь к лицевой панели и запустите виртуальный прибор.

  4. С помощью панели редактирования шкалы (сделайте ее видимой (рис. 5.3), используя опцию Видимые элементы => Панель редактирования шкалы из контекстного меню графика) измените точность значений шкалы Y так, чтобы график отображал числа с тремя знаками после запятой.

  5. Используя палитру элементов управления графиком, увеличьте его, щелкнув по кнопке Увеличение (Zoom) и выбрав какой-либо режим.

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

Используйте инструмент управления для перемещения курсора по графику; обратите внимание на то, как изменяются значения X и Y на дисплее курсора. Эти значения помогут вам определить координаты любой точки на графике. А теперь с помощью кнопок управления курсором подвигайте курсор в разных направлениях.

Рис. 5.1. Лицевая панель ВП

Рис. 5.2. Блок схема

Рис. 5.3. Лицевая панель со шкалой графика и панелью курсора

ЛАБОРАТОРНАЯ РАБОТА № 6.

Работа с переменными.

ЦЕЛЬ: Научиться работать с глобальными и локальными переменными, научиться использовать структуру «Последовательность» (Sequence) и сдвиговые регистры.

ЗАДАНИЕ: Создать два виртуальных прибора (ВП) и с помощью глобальных переменных организовать связь между ними. Первый ВП должен позволять вводить целые числа и передавать их по одному из трех каналов во второй ВП. Номер выбранного для передачи канала должен отображаться на цифровом индикаторе. Второй ВП должен принимать числа, вести историю транзакций и рассчитывать статистику по принятым числам (задание по вариантам).

ПОРЯДОК ВЫПОЛНЕНИЯ

  1. Создайте первый ВП. Назовите его transmitter.

  2. На блок-схеме ВП (рис. 6.1):

      1. Поместите структуру Sequence (Functions – Structures – Sequence Structure) и растяните ее на весь экран.

      2. Создайте еще один фрейм (контекстное меню – Add Frame After).

      3. Перейдите на фрейм 0.

      4. Поместите логическую константу False (Functions – Boolean – False Constant) и числовую константу (Functions – Numeric – Numeric Constant) в нулевой фрейм структуры Sequence.

  1. На интерфейсной части ВП (рис. 6.2):

      1. Поместите элемент Digital Control (Controls – Numeric – Digital Control). Назовите его Transferring Number.

      2. Поместите элемент Digital Indicator (Controls – Numeric – Digital Indicator). Назовите его Selected Channel.

      3. Поместите три элемента Push Button (Controls – Boolean – Push Button). Назовите их Channel 1, Channel 2, Channel 3 соответственно.

  1. На блок-схеме ВП (рис. 6.1):

      1. Проследите, чтобы пиктограммы всех элементов управления были вне рамки структуры Sequence. При необходимости переместите их.

      2. В нулевом фрейме структуры Sequence создайте пять локальных переменных (Functions – Structures – Local Variable). Убедитесь в контекстном меню (Change To Read / Change To Write), что они находятся в режиме записи (обычно стоит по умолчанию).

      3. Ассоциируйте их с помещенными в предыдущем пункте элементами управления (контекстное меню – Select Item - …).

      4. Соедините элементы Push Button с константой False, а Digital Indicator и Digital Control с числовой константой.

  1. На блок схеме ВП (рис. 6.3):

    1. Перейдите на первый фрейм внешней структуры Sequence.

    2. Внутри первого фрейма создайте бесконечный цикл, использовав структуру While и константу True.

    3. Внутри цикла поместите структуру Case.

    4. Закладку False оставьте пустой. На закладке True структуры Case поместите структуру Sequence. Добавьте в ней еще один фрейм.

    5. Перейдите на фрейм 0 внутренней структуры Sequence и аналогично п. 4 обнулите состояния элементов Channel1, Channel 2, Channel 3, использовав константу False и три локальные переменные.

  2. На блок-схеме ВП (рис. 6.4);

    1. Перейдите на первый фрейм внутренней структуры Sequence.

    2. Поместите в первый фрейм внутренней структуры пиктограмму элемента Transferring Number (до этого все пиктограммы должны были находиться вне рамок использованных структур, теперь мы будем постепенно помещать их в нужные фреймы).

    3. Поместите глобальную переменную (Functions – Structures – Global Variable).

    4. Щелкните на пиктограмме глобальной переменной два раза. В отдельном окне откроется интерфейсная часть предопределенного глобального ВП. Блок-схемы у этого ВП нет.

  3. На интерфейсной части глобальной переменной (рис 6.5):

    1. Поместите два элемента Digital Indicator и один элемент Push Button.

    2. Назовите их TransNumberStore, ChanNumberStore и HaveNumber соответственно. Эти элементы будут использоваться для передачи данных между первым и вторым ВП.

    3. Сохраните переменную под именем global.vi

8. На блок схеме первого ВП (рис. 6.4):

    1. На первом фрейме внутренней структуры Sequence ассоциируйте помещенную ранее глобальную переменную с ее составным элементом TransNumberStore.

    2. Соедините эту переменную с элементом Transferring Number.

    3. Сюда же поместите еще одну глобальную переменную (на этот раз воспользуйтесь меню Select VI и выберите global.vi) и константу True. В дальнейшем при вводе новых глобальных переменных следует использовать global.vi

    4. Аналогично п. 8.a ассоциируйте переменную с составным элементом HaveNumber.

    5. Соедините константу True с этой переменной.

    6. Добавьте на первый фрейм внутренней структуры Sequence структуру Case.

    7. В структуру Case добавьте числовую константу, локальную и глобальную переменную.

    8. Ассоциируйте локальную переменную с элементом Selected Channel.

    9. Ассоциируйте глобальную переменную с составным элементом ChanNumberStore.

    10. Присвойте числовой константе значение 1.

    11. Соедините числовую константу с обеими введенными переменными.

    12. Аналогично п.п. 8.f – 8.k добавьте еще две структуры Case. Измените значение числовой константы на 2 и 3 соответственно.

    13. Перенесите пиктограммы элементов Channel 1, Channel 2, Channel 3 и Selected Channel внутрь цикла (рис. 6.4).

    14. Используя элементы Or (Functions – Boolean - Or), False Constant (Functions – Boolean – False Constant), Not Equal (Functions – Comparation – Not Equal), организуйте проверку нажатия одной из клавиш Channel 1, Channel 2, Channel 3 и передачу номера канала в глобальную переменную (рис. 6.4).

  1. Создайте второй ВП. Назовите его receiver.

  2. На интерфейсной части ВП (рис. 6.6):

    1. Поместите три элемента Digital Indicator и один элемент String Indicator.

    2. Назовите их Received Number, Selected Channel, TotalSumOfNumbers, ChannelsHistory соответственно.

  3. На блок схеме ВП (рис. 6.7):

    1. Поместите структуру Sequence.

    2. Добавьте еще один фрейм.

    3. На нулевой фрейм поместите числовую константу, строковую константу и четыре локальных переменных.

    4. Аналогично п.п. 4.a – 4.c обнулите значения элементов индикации перед началом работы программы.

  4. На блок-схеме ВП (рис. 6.8):

    1. Перейдите на первый фрейм структуры Sequence.

    2. Аналогично п. 5.b создайте внутри первого фрейма бесконечный цикл.

    3. Используя контекстное меню (вызывать сбоку на рамке цикла), добавьте к структуре While Loop два сдвиговых регистра (Add Shift Register). Регистры позволяют передавать значение, полученное на текущей итерации в следующую, т.е. являются временными переменными. Они используются для организации вычислений в циклах.

    4. Добавьте строковую и числовую константы и соедините их с регистрами, как показано на рис. 6.8.

    5. Добавьте в цикл глобальную переменную global.vi и ассоциируйте ее с составным элементом HaveNumber. Установите для переменной режим чтения.

    6. Добавьте в цикл структуру Case и соедините глобальную переменную с точкой условия.

    7. На закладку True структуры Case перенесите пиктограммы всех четырех элементов управления.

    8. Добавьте три глобальные переменные и ассоциируйте их соответственно с ChanNumberStore, TransNumberStore, HaveNumber. Для первых двух переменных установите режим чтения.

    9. Добавьте числовую константу и константу False. Добавьте элементы Add (Functions – Numeric - Add), NumberToDecimalString (Functions – String – String/Number Conversion – Number To Decimal String), Concatenate String (Functions – String – Concatenate String). Соедините их, как показано на рис. 6.8.

    10. Закладка False показана на рис. 6.9.

  5. Запустите оба ВП одновременно и проверьте работу системы (рис. 6.10).

Рис. 6.1. Блок-схема нулевого внешнего фрейма первого ВП

Рис. 6.2. Интерфейс первого ВП

Рис. 6.3. Блок-схема первого внешнего фрейма, закладки True внутреннего условия, нулевого внутреннего фрейма первого ВП

Рис. 6.4. Блок-схема первого внешнего фрейма, закладки True внутреннего условия, первого внутреннего фрейма первого ВП

Рис. 6.5. Глобальная переменная

Рис. 6.6. Интерфейс второго ВП

Рис. 6.7. Нулевой фрейм второго ВП

Рис. 6.8. Первый фрейм закладка True второго ВП

Рис. 6.9. Первый фрейм закладка False второго ВП

=

Рис. 6.10. Работа обоих ВП

ЛАБОРАТОРНАЯ РАБОТА № 7

Работа с файлами

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

ЗАДАНИЕ: Создать виртуальный прибор (ВП), позволяющий рассчитывать значение функции f(x) на заданном интервале с заданным шагом и отображать значения функции на графике. ВП должен поддерживать работу в двух режимах. В первом режиме должна быть предусмотрена возможность строить график функции на заданном интервале и сохранять его в файл в формате LabVIEW Waveform. Во втором режиме необходимо организовать чтение ранее записанных данных из файла, отображение их на графике и конвертацию данных в обычный текстовый файл.

ПОРЯДОК ВЫПОЛНЕНИЯ:

  1. Создайте новый ВП.

  2. На блок-схеме (рис. 7.1):

    1. Поместите структуру While Loop (Functions – Structures – While Loop) и растяните ее на весь экран.

    2. Создайте бесконечный цикл. Для этого поместите булеву константу True (Functions – Boolean – True Constant) и соедините ее с условием выхода из цикла.

    3. Поместите структуру Case (Functions – Structures - Case) внутри While Loop и растяните ее так, чтобы она занимала большую ее часть.

  3. На лицевой части ВП (рис. 7.2):

    1. Поместите элемент Tab Control (Controls – Array & Cluster – Tab Control), растяните его на весь экран и назовите «Режимы работы».

    2. Щелкните правой клавишей мыши на закладке вверху и в контекстном меню выберите пункт «Add page after».

    3. Назовите первую закладку «Save to file», а вторую – «Load from file».

  4. На блок-схеме ВП (рис. 7.1):

    1. Соедините элемент Tab Control с точкой условия структуры Case. Элемент Tab Control должен быть внутри цикла.

    2. В структуре Case появятся две закладки «Save to file» и «Load from file», соответствующие закладкам Tab Control.

  5. На лицевой части ВП (рис. 7.2):

    1. Создайте интерфейс для первого режима работы. Для этого выберите первую закладку (Save to file).

    2. Поместите три элемента Digital Control (Controls – Numeric – Digital Control), назовите их соответственно: «Начальное значение х», «Конечное значение х» и «Шаг».

    3. Щелкните правой клавишей мыши на каждом элементе и в контекстном меню выберите представление в виде числа DBL (действительное с плавающей точкой двойной точности).

    4. Поместите элемент Digital Indicator (Controls – Numeric – Digital Indicator) и назовите его «Количество итераций».

    5. Аналогично пункту b выберите представление в виде 32-разрядного целого числа (I32).

    6. Поместите элемент Waveform Graph (Controls – Graph – Waveform Graph). Используя контекстное меню установите автомасштабирование по осям X, Y.

    7. Поместите элемент OK Button (Controls – Boolean – OK Button) и присвойте ему название «Рассчитать».

  6. На блок схеме ВП (рис. 7.1):

  1. Проверьте, чтобы структура Case была установлена на закладке «Save to file».

  2. Убедитесь, что пиктограммы всех помещенных в предыдущем пункте элементов управления и индикации находятся внутри структуры Case.

  3. Поместите элемент Round To Nearest (Functions – Numeric – Round To Nearest), позволяющий округлять числа до ближайшего целого.

  4. Используя значения элементов управления «Начальное значение х», «Конечное значение х» и «Шаг», рассчитайте необходимое количество итераций. Для этого следует воспользоваться структурой Formula Node (Functions – Structures – Formula Node), позволяющей использовать текстовые формулы, как во всех распространенных языках программирования. Создайте на рамке структуры три точки входа и одну точку выхода. Для этого воспользуйтесь контекстным меню. Назовите их соответственно «b», «e», «sh» и «iter_num».

  5. Соедините входы с соответствующими элементами Digital Control, а выход с элементом Round To Nearest, как показано на рис. 7.1.

  6. Внутри структуры Formula Node напишите текстом формулу с использованием созданных переменных (iter_num=(e-b)/sh;). Все формулы должны заканчиваться точкой с запятой.

  7. Соедините выход элемента Round To Nearest с элементом «Количество итераций» (Digital Control).

  8. Поместите внутри структуры Case еще одну такую же структуру.

  9. Соедините элемент OK Button («Рассчитать») с точкой условия структуры.

  10. Установите закладку True.

  11. Поместите внутри созданной структуры Case структуру For Loop (Functions – Structures – For Loop).

  12. Задайте количество итераций. Для этого соедините пиктограмму N структуры For Loop с выходом элемента Round To Nearest, как показано на рис. 7.1.

  13. В структуру For Loop добавьте элемент Formula Node. Аналогично п. 6.d создайте формулу для расчета значений x (x=b+i*sh-sh;). Переменные b, sh, i – входы, а x – выход. Соедините переменные, как показано на рис. 7.1.

  1. На блок-схеме ВП (рис. 7.1) добавьте в цикл For Loop еще одну структуру Formula Node и реализуйте функцию f(x)=cos(x)+x*x.

  2. На блок-схеме ВП (рис. 7.1):

    1. Создайте точку внешнего соединения в цикле For Loop. Для этого соедините выход реализованной функции с рамкой цикла.

    2. Если пиктограмма Waveform Graph находится за рамкой внутренней структуры Case, переместите ее так, чтобы она была внутри.

    3. Поместите туда же элементы Build Waveform (Functions – Waveform – Build Waveform) и Write Waveforms to File (Functions – Waveform – Waveform File I/O – Write Waveform to File).

    4. Соедините эти два элемента и Waveform Graph, как показано на рис. 7.1

    5. Используя элемент Array Max & Min (Functions – Array – Array Max & Min), отобразите с помощью элемента Digital Indicator минимальное значение вектора (рис. 7.1).

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

  4. Опишите второй режим работы ВП. На лицевой части ВП (рис. 7.4):

    1. Перейдите на закладку «Load from file».

    2. Поместите элемент Waveform Graph.

    3. Поместите два элемента OK Button и назовите их: «Конвертировать в текстовый файл» и «Показать график».

  5. На блок схеме ВП (рис. 7.3):

    1. Перейдите на закладку «Load from file» внешней структуры Case.

    2. При необходимости переместите пиктограммы элементов, добавленных в п. 12, на эту закладку (они могут быть и автоматически на нее помещены).

    3. Поместите еще одну структуру Case внутри первой.

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

    5. Во внутреннюю структуру Case поместите элемент Read Waveform From File (Functions – Waveform – Waveform File I/O – Read Waveform From File).

    6. Переместите пиктограмму графика Waveform Graph в эту же структуру.

    7. Соедините их, как показано на рис. 7.3.

    8. Аналогично добавьте еще одну структуру Case и соедините ее с кнопкой «Конвертировать в текстовый файл» (рис. 7.3).

    9. Добавьте в эту структуру Case элементы Read Waveform From File и Export Waveforms to Spreadsheet File (Functions – Waveform – Waveform I/O)

    10. Соедините их как показано на рис. 7.3.

    11. Закладки False обеих структур Case должны быть пусты.

  6. Проверьте работоспособность ВП: наличие файлов, правильность отображения графиков, правильность расчетов.

Рис. 7.1. Блок-схема первого режима работы ВП

Рис. 7.2. Интерфейс первого режима работы ВП

Рис. 7.3. Блок-схема второго режима работы ВП

Рис. 7.4. Интерфейс второго режима работы ВП

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]