Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОЕКТИРОВАНИЕ ВИРТУАЛЬНЫХ ИЗМЕРИТЕЛЬНЫХ ПРИБОРОВ В СРЕДЕ LabVIEW.pdf
Скачиваний:
265
Добавлен:
26.03.2015
Размер:
2.01 Mб
Скачать

 

 

Варианты заданий

 

 

 

Время

Частота изме-

Формат

 

Формат строки с

Надпись на

Вариант

строки с

 

измере-

 

числом с пла-

рений, Гц

целым чис-

 

приборе

 

ния, с

 

вающей точкой

 

 

лом

 

 

1

 

 

 

 

 

30

2

дес. 2

 

науч. 2,6

A, B, C

2

40

3

шест. 4

 

дроб. 1,5

A, C, E

3

30

5

дес. 3

 

науч. 2,7

A, D, G

4

60

1

шест. 3

 

дроб. 2,5

A, G, E

5

30

3

дес. 5

 

науч. 3,7

A, C, F

6

40

4

шест. 2

 

дроб. 1,4

A, F, G

7

50

2

дес. 4

 

науч. 1,8

A, E, F, G

8

50

3

шест. 2

 

дроб. 2,2

A, C, D, G

9

60

4

дес. 4

 

науч. 3,8

A, D, F, G

10

40

2

шест. 2

 

дроб. 2,4

A, E, F, G

11

50

3

дес. 6

 

науч. 2,8

A, F, G

12

40

4

шест. 3

 

дроб. 1,9

A, E, F

13

60

1

дес. 4

 

науч. 1,5

A, B, C, D

14

50

5

шест. 3

 

дроб. 2,6

A, D, G

15

40

3

дес. 5

 

науч. 2,5

A, D, F, G

16

60

2

шест. 2

 

дроб. 2,7

A, G, E

17

50

1

дес. 6

 

науч. 2,4

A, C, E

18

40

3

шест. 3

 

дроб. 2,5

A, F, G

19

50

2

дес. 3

 

науч. 1,5

A, C, D, G

20

40

1

шест. 2

 

дроб. 1,4

A, E, F, G

Расшифровка надписей на приборе

A

Вольт-амперметр

B

<Полное название вуза>

C

<Сокращенное название вуза>

D

<Факультет>

E

<Кафедра>

F

<Номер группы>

G

<Инициалы студента>

Примечания: 1 . Для форматирующих строк введены следующие обозначения:

дес. – десятичное представление числа «%d», например 123;

шест. – шестнадцатеричное представление числа «%h», например f327d;

науч. – научный формат числа «%e», например, 0.234454Е1;

дроб. – дробный формат числа «%f», например, 2.34454.

2.Числа во второй строке указывают число знаков до запятой и после.

3.Имя файла формируется следующим образом: «var» + «номер варианта» + «.txt». Должен быть задан полный путь к файлу.

РАБОТА 4. ГЕНЕРАТОР ДЕТЕРМИНИРОВАННЫХ СИГНАЛОВ

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

35

Органы управления:

Text Ring – текстовый переключатель с кнопками «Предыдущий» и «Следующий».

Menu Ring – текстовый переключатель в виде кнопки с выпадающим меню.

Dialog Ring – текстовый переключатель в виде выпадающего меню.

Функции:

Sine Wave.vi – генератор сигнала синусоидальной формы.

Triangle Wave.vi – генератор сигнала треугольной формы.

Sawtooth Wave.vi – генератор сигнала пилообразной формы.

Square Wave.vi – генератор сигнала прямоугольной формы.

Case Structure – структура с программируемым выбором кадров. Для возможности использования в ВИ сигналов различной формы в

LabVIEW имеется ряд предопределенных функций, генерирующих сигналы заданной формы. Эти функции находятся во вкладке Signal generation (генерация сигналов) подменю Signal Processing (обработка сигналов) меню Functions, приведенной на рис. 4.1. Каждая функция из этой вкладки генерирует одномерный массив, отображающий определенную форму гар-

монического сигнала.

Аналоговый периодический сигнал характеризуется частотой F [Гц.] и соответствующим ей периодом повторения Т=1/F. Для моделирования сигналов в цифровых устройствах, например в ЭВМ, применяется его дискретизация: непрерывный аналоговый сигнал представляется в виде конечного числа отсчетов. При этом можно говорить о частоте дискретиза-

 

ции Fд и соответствующем ей интер-

 

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

 

ни Тд=1/Fд. Число отсчетов на период

 

повторения сигнала можно определить

 

как отношение:

 

Рис. 4.1. Функции генерации сигналов

N=T/Tд=F/Fд.

(4.1)

Во всех рассматриваемых функциях

 

36

генерации сигналов имеется вход нормированной частоты – f. Значение нормированной частоты Fн на этом входе – величина, обратная N , опре-

деляется следующим образом:

Fн=F/Fд,

(4.2)

где F – требуемая частота [Гц]; Fд – частота дискретизации [отсчетов/с]. Значение нормированной частоты должно располагаться в диапазоне [0…1], следовательно, Fн не может быть больше 1. Если значение Fн превышает 1, то оно приводится к этому диапазону, например, при подаче

значения 1,2 реальное значение Fн будет 0,2.

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

Для реализации возможности генерирования сигналов различной формы в одном ВИ и их переключения во время работы удобно воспользоваться структурой Case (выбор), которая располагается во вкладке Structures меню Functions. Эта структура позволяет создать несколько программных фрагментов (называемых кадрами), обычно с одинаковым интерфейсом, и в зависимости от значения на специальном входе (селекторе) включать в программу тот или иной программный фрагмент. Структура Case имеет один вход, называемый селектором, и список возможных значений селектора, располагаемый в верхней части структуры. Тип данных на входе селектора может быть любым (числовой, текстовый, строковый). По умолчанию, тип данных селектора – логический (Boolean), а структура содержит два кадра – для двух возможных значений логического типа. В LabVIEW структура Case имеет следующие настройки:

список значений селектора;

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

Для того чтобы задать тип данных селектора, достаточно присоединить

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

37

Рис. 4.2. Меню List & Ring

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

При реализации генератора каждый кадр создаваемой структуры будет соответствовать отдельной функции, генерирующей сигнал определенной формы. Для выбора требуемой формы сигнала удобно воспользоваться одним из органов управления Text Ring, Menu Ring или Dialog Ring из вкладки List & Ring меню Controls (рис. 4.2). Значение выбранного органа управления будет подключено к селектору, что обеспечит переключение формы сигнала на выходе генератора во время его работы.

Орган управления Ring представляет собой список строк, которые отображаются в виде выпадающего меню. При этом каждой строке назначается целочисленный идентификатор, который и является значением на выходе органа управления. Добавлять и удалять строки в списке можно с помощью команд контекстного меню Add item after (добавить пункт после текущего), Add item before (добавить пункт перед текущим) и Remove item (удалить пункт).

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

1.Создайте новый ВИ – команда New VI в начальном диалоге.

2.Согласно варианту задания разместите один из диалоговых органов управления Text Ring, Menu Ring или Dialog Ring из вкладки List & Ring

(списки) меню Controls, как показано на рис. 4.2. Этот орган управления будет использоваться для переключения формы сигнала на выходе генератора, поэтому задайте ему подходящее название, например «Форма сигнала» (воспользуйтесь инструментом Edit Text ).

3.Определите список строк, который будет раскрываться при обращении пользователя к объекту «Форма сигнала». Для разрабатываемого ВИ список должен состоять из четырех строк (Синусоидальная, Треугольная, Пилообразная, Прямоугольная). После размещения органа управления Ring в нем содержится одна пустая строка с индексом 0. Этой строке присвойте первое из требуемых значений – «Синусоидальная» (воспользуйтесь инструментом Edit Text ). Далее, используя команду контекстного меню Add Item After, добавьте дополнительные пункты и задайте их значения.

4.Из вкладки Graph меню Controls разместите графический индикатор Waveform Graph, который будет использоваться для визуального отображения сигнала на выходе генератора. Задайте подходящую надпись для этого индикатора, например «Сигнал на выходе» (воспользуйтесь инстру-

38

ментом Edit Text ). Снимите выделение (галочки) с пунктов контекстно-

го меню Y Scale/Auto Scale Y и X Scale/Auto Scale X. Установите диапазон возможных значений по оси Y от –10 до 10.

5. Разместите цифровой орган управления для регулировки амплитуды

сигнала. Для этой цели подойдет объект Knob из вкладки Numeric меню Controls. Задайте подходящую надпись для этого объекта, например «Амплитуда». Для предотвращения ошибочного ввода отрицательных значений амплитуды установите диапазон только положительных значений. Для этого воспользуйтесь командой контекстного меню Data Range… (диапазон значений) цифрового объекта (щелчок правой кнопки мыши при нахождении курсора в области элемента). При выборе этой команды появится диалоговое окно Data Range (рис. 4.3). В поле Minimum нужно вписать значение 0, а в списке If Value is Out of Range (поведение LabVIEW в случае, если значение будет вне указанного диапазона) выбрать значение Coerce (принудительно установить значение из разрешенного диапазона). Подтвердите ввод, нажав кнопку OK. По умолчанию, в органе управления Knob значение можно изменить от 0 до 10. Для изменения верхнего предела можно воспользоваться инструментом Edit Text и вписать требуемое значение вместо 10. При этом промежуточные значения на шкале будут пересчитаны автоматически. Однако для данного органа управления изменять верхний предел изменения значений нет необходимости, поэтому его следует оставить равным 10.

6. Воспользовавшись инструкциями п. 5, разместите два цифровых ор-

гана управления для регулировки частоты («Частота» – объект Knob ) и начальной фазы («Начальная фаза» – Horizontal Slide ). Установите для них диапазон только положительных значений. Для элемента регулировки начальной фазы установите диапазон [0…360], для установки верхнего предела используйте поле Maximum диалогового окна Data Range,

приведенного на рис. 4.3.

 

7.

Разместите

пере-

 

ключатель

начальной

 

фазы «Установка фазы».

 

Используйте логический

 

переключатель из вклад-

 

ки Boolean меню Con-

 

trols. На диаграмме этот

 

переключатель

служит

 

для

определения того,

 

будет ли функция гене-

 

рации использовать зна-

Рис. 4.3. Диалоговое окно Data range

39

чение начальной фазы из органа управления «Начальная фаза» или последнее значение фазы из предыдущего запуска ВИ.

8.Разместите один из цифровых органов управления из вкладки Numeric меню Controls для установки частоты дискретизации. Задайте этому элементу подходящую надпись, например «Частота дискретизации». Установите диапазон только положительных значений (воспользуйтесь инструкциями п. 5).

9.Как известно, периодический сигнал прямоугольной формы обладает, помимо амплитуды, частоты и начальной фазы, еще одним параметром – скважностью. Скважность – это отношение длительности импульса

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

мы. Для этого используйте орган управления Dial (вкладка Numeric меню Controls). Задайте надпись созданного органа управления, например «Скважность». Скважность может принимать любые значения в интервале от 0 до 1. Следовательно, для этого органа управления требуется задать диапазон [0…1] так же, как это было сделано в п. 5.

10.Разместите цифровой индикатор Digital Indicator из вкладки Numeric меню Controls для отображения числа отсчетов на период дискретного сигнала. Задайте этому индикатору соответствующее название – «Число отсчетов на период».

11.Для реализации возможности выключения прибора разместите логический переключатель (вкладка Boolean меню Controls). Задайте надписи «Вкл» и «Выкл» для двух его состояний, активизируя пункт контекстного меню Show/Boolean Text. После этого рядом с логическим переключателем помимо надписи «Boolean» появится надпись с содержимым «OFF». Удалите надпись «Boolean» и измените надпись «OFF» с помощью инструмента Edit Text на «Выкл». После этого, воспользовавшись инструментом Operate Value , переключите логический переключатель. При этом содержимое надписи «Выкл» изменится на «ON». Измените аналогичным образом эту надпись на «Вкл».

12.Разместите на лицевой панели подходящие декоративные элементы, а также элементы с указанием варианта, фамилии разработчика и группы. Примерный вид передней панели приведен на рис. 4.4.

13.Переключитесь в окно диаграммы командой Window/Show Diagram.

Создание диаграммы.

1. После переключения в окно диаграммы, в ней уже должны находиться десять элементов: шесть цифровых органов управления, один цифровой индикатор, два логических переключателя и графический индикатор.

40

Рис. 4.4. Примерный вид лицевой панели разрабатываемого виртуального инструмента

2.Разместите на диаграмме структуру для цикла While (вкладка Structures меню Functions). С помощью этой структуры можно запрограммировать действия для выключателя прибора. Все элементы диаграммы будут размещены внутри нее, поэтому размеры объекта должны быть достаточно большими. После размещения структуры внесите все имеющиеся элементы диаграммы внутрь цикла.

3.Подсоедините выключатель прибора к входу логического условия цикла While.

4.Для программирования возможности переключения функций генерации сигналов различной формы необходимо воспользоваться структурой Case (вкладка Structures меню Functions). После размещения структуры Case увеличьте размеры ее элемента (размер должен быть достаточным для размещения внутри еще одного элемента). Для этого воспользуйтесь инструментом Position/Size/Select (захватив им один из углов элемента структуры и удерживая нажатой левую кнопку, расширьте границы структуры). При этом следует следить за тем, чтобы в границы структуры не попали органы управления и индикаторы, размещенные ранее на передней

41

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

5.Для установки требуемого типа данных на селекторе структуры Case (по умолчанию тип данных селектора – логический) просто соедините выход органа управления «Форма сигнала» с селектором . При этом значения в верхней части элемента Case изменятся на 0 и 1 (для двух кадров).

6.Разместите в кадре структуры Case под индексом 0 функцию генерации синусоидального сигнала Sine Wave.vi (вкладка Signal Generation подменю Signal Processing). Переключитесь в кадр с индексом 1 (используйте инструмент Operate Value и стрелки рядом с индексом в верхней части элемента Case) и разместите в нем функцию Triangle Wave.vi. Для того чтобы добавить еще два кадра, используйте команду Add Case из контекстного меню структуры Case (контекстное меню следует вызывать, когда курсор мыши находится в верхней части элемента рядом со значением индекса). Разместите в добавленных кадрах соответствующие функции генерации и выполните подключения вновь размещенных функций.

7.Для того чтобы получить нормированную частоту, воспользуйтесь функцией деления Divide из вкладки Numeric меню Functions. К входу x присоедините орган управления «Частота», а к входу y – орган управления «Частота дискретизации». Выход функции Divide теперь можно использовать для подключения к входу нормированной частоты в функциях генерации.

8.Соедините соответствующие входы функций генерации с органами управления. Используемые функции генерации имеют следующие одинаковые входы и выходы (рис. 4.5):

reset phase – булева величина, опре-

деляющая начальную фазу. Если на этом

 

входе значение TRUE, то начальная фаза

Рис. 4.5. Входы и выходы функции

определяется значением на входе phase in;

если на этом входе FALSE, то значение

генерации Sine Wave.vi

 

начальной фазы определяется последним значением на выходе phase out при предыдущем запуске ВИ (по умолчанию на входе reset phase установ-

лено TRUE);

samples – число отсчетов сигнала в массиве на выходе функции (по умолчанию 128);

amplitude – амплитуда сигнала (по умолчанию 1);

f – нормированная частота;

phase in – начальная фаза, в градусах;

wave – выходной массив;

error – код ошибки (не обязателен для подключения);

42

phase out – значение фазы (в градусах) следующего отсчета сигнала (не обязателен для подключения).

Кроме этих входов и выходов в функции Square wave.vi имеется дополнительный вход для установки плотности заполнения периода (в процентах), на котором по умолчанию установлено значение 50. Этот вход является, по сути, входом скважности, измеряемой не в относительных единицах, а в процентах. Поэтому для подключения к этому входу органа управления«Скважность» необходимо умножить показания последнего на100.

9. Орган управления «Скважность» переместите внутрь кадра структуры Case для прямоугольного сигнала. В этот же кадр структуры Case поместите арифметическую функцию Multiply и константу, равную 100. Выход функции Multiply подключите к его входу duty cycle % функции генерации, а к входам функции Multiply подсоедините орган управления «Скважность» и константу, равную 100.

10.На вход индикатора «Число отсчетов на период» подайте значение, вычисляемое в соответствии с выражениями (4.1) и (4.2). Для этого воспользуйтесь арифметическими функциями из вкладки Numeric меню Functions. Примерный вид диаграммы разрабатываемого ВИ представлен на рис. 4.6.

Рис. 4.6. Примерный вид диаграммы разрабатываемого виртуального инструмента

11.Сохраните ВИ в файле на диске (команда File/Save As…). Файл с разработанным ВИ сохраните в личном каталоге, который был создан заранее.

12. Запустите разработанную программу на выполнение с помощью команды Run.

43