Главная страница
Навигация по странице:

  • Задание 3.3. Виртуальные генератор и осциллограф - регулировка частоты и формы входного сигнала

  • Задание 3.4. Установка масштабов шкал и индикация величины сигнала

  • Задание 3.5. Виртуальный осциллограф - регулировка амплитуды входного сигнала

  • Задание 3.6. Виртуальное устройство, которое показывает, сколько осталось времени до конца занятий (в часах и минутах)

  • Рекомендация

  • Задание 3.7. Виртуальные часы

  • Задание 3.8. Расчет электрической цепи с потенциометром

  • Задание 3.9. Использование Case Structure

  • Задание 3.10. Извлечение квадратного корня из вводимого числа

  • II. Лабораторная работа № 2-NI. Программирование виртуальных приборов в среде LabView

  • 1.Теоретическая часть

  • 1.1.2. Компонент Formula

  • 1.1.3. Структура Formula Node

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

  • методичка по созданию приборов. 1_создание_виртуальных_приборов. Программирование устройства сбора


    Скачать 3.99 Mb.
    НазваниеПрограммирование устройства сбора
    Анкорметодичка по созданию приборов
    Дата16.03.2023
    Размер3.99 Mb.
    Формат файлаpdf
    Имя файла1_создание_виртуальных_приборов.pdf
    ТипУчебное пособие
    #994360
    страница4 из 9
    1   2   3   4   5   6   7   8   9
    виртуального генератора
    Воспроизведите действия, описанные в теоретической части в разделе 2.2.
    Сохраните проект в файл с именем “Лабораторная №1 Задание 3_2.vi”.
    Задание 3.3. Виртуальные генератор и осциллограф - регулировка
    частоты и формы входного сигнала
    Создайте копию предыдущего проекта и сохраните ее в файл с именем
    “Лабораторная №1 Задание 3_3.vi”. Для этого выберите пункт меню File/Save
    As…– в появившемся окне с вопросами ничего не меняйте, нажмите кнопку
    Continue… (продолжить), после чего в появившемся окне выбора файла введите новое имя Лабораторная №1 Задание 3_3.vi и нажмите кнопку OK.
    Измените в свойствах генератора параметры сигнала (частоту и форму), и посмотрите, как изменяется сигнал на осциллографе.
    Добавьте компонент Express/Num Ctrls/Num Ctrl, с выхода которого подайте сигнал на вход Frequency частоту генерируемого сигнала. Значение частоты задаётся в виде числа в поле ввода компонента Num Ctrl (на блок- схеме он имеет надпись Numeric). Для завершения ввода в поле этого компонента во время работы программы надо нажать на клавиатуре клавишу
    “Ввод” (Enter).
    Сохраните проект.
    Замечание: значение, выдаваемое с ручки Knob, или c ползункового регулятора, или c других компонентов Numeric Controls, рассматривается как

    40
    сигнал, величина которого регулируется поворотом ручки, передвижением движка, и т.п.
    Задание 3.4. Установка масштабов шкал и индикация величины
    сигнала
    Создайте копию предыдущего проекта и сохраните ее в файл с именем
    “Лабораторная №1 Задание 3_4.vi”.
    Добавьте ещё один компонент Knob
    (ручка). Зайдите в его свойства
    (Properties) во вкладку Scale (шкала) и измените имеющуюся шкалу 0..10 ручки на -1..1. Добавьте индикатор
    Express/Num Inds/ Thermometer и измените в нём шкалу с 0..100 на -1..1.
    Замените надпись "Thermometer" на "Индикатор".
    Подсоедините к индикатору выход Knob. Запустите приложение и пронаблюдайте, что при вращении ручки Knob изменяются показания индикатора.
    Аналогичным образом можно изменять шкалы всех числовых компонентов.
    Сохраните проект.
    Задание 3.5. Виртуальный осциллограф - регулировка амплитуды
    входного сигнала
    Создайте копию предыдущего проекта и сохраните ее в файл с именем
    “Лабораторная №1 Задание 3_5.vi”.
    Величину сигнала, поступающего с выхода генератора, необходимо в последующей цепи умножить на значение, задаваемое ручкой дополнительного компонента Knob (см. предыдущее задание), и полученный сигнал вывести на экран осциллографа.
    При выполнении задания необходимо использовать удаление и разветвление проводов (см. пункт “Работа с виртуальными проводами” в разделе 1.4.1).
    Запустите программу на выполнение. Проверьте, происходит ли регулировка сигнала по амплитуде при вращении ручки. Сохраните проект.

    41
    Задание 3.6. Виртуальное устройство, которое показывает, сколько
    осталось времени до конца занятий (в часах и минутах)
    а) Создайте виртуальный прибор, в котором имеется два пункта ввода
    Numeric для задания с клавиатуры текущего времени (в часах и минутах) и два пункта ввода для задания с клавиатуры времени окончания занятия (в часах и минутах). На индикатор должно выводиться число минут, которое осталось до конца занятия.
    Рекомендация: воспользуйтесь компонентами из разделов Numeric
    Controls и Arith&Comparison.
    Замечание:
    в разделе
    Functions/Programming/Timing/ имеются специальные компоненты, позволяющие работать с датой и временем.
    Однако на данном этапе освоения LabView целесообразно освоить работу с более простыми компонентами. б) Усовершенствуйте предыдущий пример, обеспечив невозможность ввода отрицательных значений в пункты ввода, а также числа часов более 24 и числа минут более 60.
    Подсказка: воспользуйтесь меню Properties, вкладка Data Entry (“ввод данных”). Снимите флажок Use Default Limits (“Использовать границы значений по умолчанию”) и установите в поле задания минимального значения 0. в) Усовершенствуйте предыдущий пример, добавив индикатор, на который выводится целая часть от числа часов, оставшихся до конца занятия.
    Подсказка: для округления воспользуйтесь компонентом Round To -Infinity
    (“округлять в сторону минус бесконечности”, т.е. для положительных чисел отбрасывать дробную часть числа). г)* Усовершенствуйте предыдущий пример, добавив индикатор, на который выводится время в часах и минутах, оставшееся до конца занятия.
    Подсказка: для вычисления числа минут используйте числовые значения, полученные в частях а) и в) данного задания.
    Сохраните проект.

    42
    Задание 3.7. Виртуальные часы
    Создайте виртуальный прибор, в котором показывается текущее время. Для измерения времени используйте компонент Functions/Programming/
    Timing/Get Date/Time String. Для вывода времени используйте компонент
    String Indicator. Для того, чтобы при индикации показывались секунды, ко входу ? want seconds (“? нужны секунды”) подключите булевскую константу
    True.
    Сохраните проект.
    Задание 3.8. Расчет электрической цепи с потенциометром
    а) Нарисуйте в рабочем журнале электрическую цепь с подачей напряжения с источника напряжения на потенциометр и измерением напряжения между ползунком потенциометра и “землей”.
    Напишите формулу зависимости выходного напряжения на ползунке потенциометра от положения ползунка (сопротивления между ползунком и заземленным выводом потенциометра).
    В соответствии с этой формулой создайте виртуальное устройство, демонстрирующее, как изменяется выходное напряжение потенциометра в зависимости от положения ползунка. Подайте это виртуальное напряжение на виртуальный осциллограф Waveform Chart (с компонентом Waveform
    Graph схема работать не будет, так как на него можно подавать только массив – например, генерируемый в цикле). Подберите масштаб оси Y осциллографа так, чтобы было видно изменение амплитуды сигнала при перемещении ползунка (не забудьте убрать галочку “AutoScale” – автоматический выбор масштаба).
    Воспользуйтесь обозначениями
    E – переменная, соответствующая Э.Д.С. источника напряжения. Значение должно регулироваться в пределах от 0 до 10 В.
    U
    вых
    - выходное напряжение потенциометра.
    R
    max
    - полное сопротивление потенциометра. Значение должно задаваться в соответствии с указанием преподавателя (может лежать в пределах от 10
    Ом до 10 Ком.

    43
    R - сопротивление между ползунком и заземленным выводом потенциометра.
    Замечание: обратите внимание, что ни в коем случае нельзя говорить про
    “виртуальный потенциометр”, или “виртуальный конденсатор”, или
    “виртуальный транзистор”, или “виртуальную катушку индуктивности”.
    Виртуальные приборы в среде LabView являются аналогами микросхем с выводами, являющимися либо только входами, либо только выходами.
    Например, если считать выводы резистора входами (так как на них можно подавать входные сигналы), то у него нет выходов, на которых появляются выходные сигналы, величина которых зависит от входных. А смешивать вход с выходом нельзя. Поэтому правильно говорить про виртуальный прибор, осуществляющий расчет токов и напряжений в электрической цепи, а элементы схемы должны соответствовать численному алгоритму расчета. б*) Усложните предыдущее задание: учтите внутреннее сопротивление вольтметра, измеряющего значение U
    вых
    . В каких пределах нужно задать внутреннее сопротивление вольтметра, чтобы измерять значения U
    вых
    с заданной точностью (лежащей в диапазоне от 0,1% до 1%)?
    Продемонстрируйте преподавателю полученные результаты с помощью вашего виртуального устройства.
    Сохраните проект.
    Задание 3.9. Использование Case Structure
    Воспроизведите виртуальное устройство, схема которого показана на рис.1.17. Выходные данные с Case Structure подайте на индикатор Meter. Не забудьте задать разумное нижнее значение шкалы индикации.
    Сохраните проект.
    Задание 3.10. Извлечение квадратного корня из вводимого числа
    Создайте виртуальное устройство, в котором рассчитывается значение квадратного корня из значения, устанавливаемого с помощью компонента
    Dial (“циферблат”). Если число отрицательное, должно выводиться сообщение об ошибке. Для принятия решения о том, выводить значение числа или сообщение об ошибке, использовать Case Structure.
    Сохраните проект.

    44
    Подсказка: для вывода использовать компонент String Indicator. Для проверки знака входных данных использовать компонент Greater Or Equal?
    Для преобразования числа в строку использовать Number To Fractional String.

    45
    II. Лабораторная работа № 2-NI. Программирование
    виртуальных приборов в среде LabView
    Лабораторная работа предназначена для развития и углубления навыков создания виртуального прибора в среде LabView, полученных студентами при выполнении лабораторной работы №1-NI. При ее выполнении студенты на примере решения конкретных задач получат дополнительные сведения о программировании в среде LabView, в том числе об использовании компонентов, находящихся в разделе Functions/Programming.
    1.Теоретическая часть
    1.1 . Некоторые элементы программирования LabView,
    использующиеся в работе
    1.1.1. Массивы
    При работе с группами данных и при накоплении данных после повторяющихся вычислений удобно использовать массивы. Массивом
    (Array) в LabView называется совокупность элементов одного типа.
    Элементами массива могут быть данные любого типа (например, строковые элементы, числа, элементы Boolean, массивы, кластеры, элементы управления). Не следует путать массив с элементами управления Array
    подраздела Array, Matrix & Cluster/Array разделов Controls/Modern,
    Controls/Silver и Controls/Classic. Эти элементы управления предназначены для показа на лицевой панели содержимого массивов.
    Все элементы массива упорядочены. Обращение к отдельному элементу массива осуществляется через индекс, который находится в диапазоне от 0 до N-1, где N - число элементов в массиве. Массив может быть одномерным, двумерным и многомерным (размерности 3 и более). Чаще всего используются одномерные и двумерные массивы.
    На блок-схеме передача массива с выхода одного компонента на вход другого изображается утолщенным проводником, число линий в котором зависит от размерности массива.

    46
    Провод, передающий одномерный массив, состоит из одной линии. Линия может иметь форму извилистой линии или пересечения извилистых линий, если передаются дискретные данные. К ним, например, относятся булевские и строковые данные.
    Провод, передающий одномерный массив, изображается одной линией, двумерный – состоит из двух линий, трехмерный – тоже из двух линий, но находящихся на большем расстоянии друг от друга, и т.д. Цвет провода соответствует типу элементов массива.
    Провода для передачи целочисленных данных имеют светло-синий цвет:
    – передается целая величина;
    – передается одномерный целочисленный массив;
    – передается двумерный целочисленный массив.
    Провода для передачи булевских данных имеют зеленый цвет:
    – передается булевская величина;
    – передается одномерный булевский массив;
    – передается двумерный булевский массив
    Провода для передачи строковых данных имеют малиновый цвет:
    – передается строковая величина;
    – передается одномерный массив строк;
    – передается двумерный массив строк.
    На провода для передачи массивов очень похожи провода, через которые передаются динамические данные или кластеры данных, но их не следует путать:
    передаются динамические данные, цвет провода темно-синий;
    – передается кластер данных, цвет провода коричневый.
    Динамические данные – сигналы, возникающие через заданные промежутки времени (например, с выхода генератора Simulate Signal).
    Кластеры данных в LabView являются аналогами записей языка PASCAL или структур языка C и предназначены для группировки в единое целое данных разных типов.

    47
    В отличие от проводов для передачи массивов провода для передачи динамических типов данных имеют темно-синий цвет и внутри заполнены пунктиром из белых точек, а для кластеров данных – коричневый цвет и внутри также заполнены пунктиром из белых точек.
    Все элементы массива различаются только значениями, все свойства элементов массива (размер, точность, представление, цвет проводника на блок-схеме) одинаковы. Если изменить свойства у одного из элементов массива, то аналогично изменяются свойства у всех остальных элементов.
    Для работы с массивами в LabView служат различные функции, которые находятся на панели Functions/Programming/Array/( Рис.2.1).
    Рис.2.1. Функциираздела Functions/Programming/Array/.
    Многие компоненты LabView используют массивы. Например, на вход компонента Table для показа текстовой таблицы подается двумерный массив строк.
    Поскольку тип данных выхода одного компонента должен совпадать с допустимым типом данных для входа другого, необходимо, чтобы массивы имели одинаковую размерность и содержали элементы одного типа. Для

    48
    согласования типов требуется использовать компоненты преобразования типа.
    При использовании массивов для преобразования элементов массива в число и наоборот можно воспользоваться двумя взаимно-обратными функциями:
    - Number to Boolean Array и
    - Boolean Array to
    Number, расположенными во вкладке Functions/Programming/Numeric/
    Conversion/. Функция Number to Boolean Array преобразует целое число в двоичный код, состоящий из ноликов и единиц, рассматриваемый как массив логических переменных. Функция Boolean Array to Number осуществляет обратное преобразование.
    1.1.2. Компонент Formula
    Компонент
    Express/Arithmetic&Comparison/Formula используется для преобразования двух или более сигналов по заданной формуле, в которую входят эти сигналы.
    Рис.2.2. Использование компонента Formula для сложной математической обработки сигналов от нескольких источников.

    49
    В поле ввода формулы (рис.2.2) задаётся выражение, в котором переменной
    Result (ей соответствует выход Result) присваивается выражение, зависящее от переменных X1,X2,…,X8, соответствующих сигналам на входах
    X1,X2,…,X8.
    Использование компонента Formula заметно упрощает вычисление сложных математических выражений.
    1.1.3. Структура Formula Node
    С помощью узла Formula Node (Functions/ Programming/Structures/ Formula
    Node – рис.2.3) можно не только ввести в окно компонента одну или несколько формул, но и написать программный код с использованием операторов языка C – например, осуществить выбор данных по условию внутри узла. Однако, в отличие от компонента Formula, компонент Node
    Formula не может использоваться для обработки динамического потока данных – например, с генератора сигналов Simulate Signal.
    Рис.2.3. Вид раздела Functions/Programming/Structures с узлом Formula
    Node.
    Рамку узла необходимо растянуть до нужного размера и в нее вписываются формулы и программный код (рис.2.4).

    50
    Рис.2.4 Пример вычислений с помощью узла Formula Node.
    Можно использовать встроенные функции (см. в Help раздел “Formula
    Node and Expression Node Functions” – различные варианты округления, abs, exp, прямые и обратные тригонометрические, прямые и обратные гиперболические, логарифмические). Для извлечения квадратного корня из x можно использовать функцию sqrt(x), для возведения x в степень y - функцию pow(x,y), и т.д.
    Необходимо обратить внимание на то, что при записи значений чисел в тексте программы в качестве десятичного разделителя всегда используется точка, хотя в арифметических константах используется национальный разделитель, в нашем случае запятая (рис.2.4).
    Входные и выходные терминалы узла Formula Node можно создать, щелкнув правой кнопкой мыши по границе узла и выбрав опцию Add Input
    (Добавить ввод) или Add Output (Добавить вывод) в контекстном меню. Эти терминалы являются аналогами переменных в списке параметров подпрограмм, написанных на процедурных языках программирования
    (PASCAL, C и т.п.), а сама структура Formula Node является аналогом подпрограммы.
    Для ускорения процесса создания алгоритма можно копировать и вставлять имеющиеся фрагменты текстов программ на языке C.

    51
    Неизвестные пишутся в левой части формул. При наличии нескольких формул каждая формула пишется с новой строки и заканчивается точкой с запятой.
    На рис.2.4 показан пример кода для вычисления значений y1 и y2.
    1.1.4. Особенности программирования виртуальных приборов, связанные с
    наличием частоты дискретизации
    В отличие от аналоговых устройств, в которых значения величин меняются со временем непрерывно, цифровые устройства проводят изменение или измерение сигналов дискретно, с некоторой частотой, называемой частотой
    дискретизации.
    Цифровой генератор Simulate Signal проводит установку новых значений на выходе с частотой дискретизации, задаваемой в его свойстве Samplers per
    second (Hz) – точек в секунду (Гц).
    Цифровые осциллографы на основе компонентов Waveform Graph и XY
    Graph показывают точки графика с частотой дискретизации, соответствующей входному сигналу. У компонента Waveform Graph только один вход, поэтому на него сигналы с разной частотой дискретизации подать невозможно. А вот в случае подачи на входы компонента XY Graph двух сигналов с разной частотой дискретизации LabView выдает сообщение об ошибке, так как в этом случае невозможно построить график Y(X), т.е. Y[i] от X[i] (где i – номер точки). Ведь точки Y[i] и X[i] будут соответствовать разным моментам времени.
    1   2   3   4   5   6   7   8   9


    написать администратору сайта