Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ASVT Материалы / основы_labview_1_упражнения_

.pdf
Скачиваний:
128
Добавлен:
29.03.2016
Размер:
3.28 Mб
Скачать

9. Использование переменных

Упражнение 9-3. Bank VI

Цель упражнения

Устранение состязаний в VI.

Описание

Вы должны найти и разрешить проблему с ПО банковского сервера. Банковский сервер должен быстро обрабатывать запросы от многих источников. Для увеличения эффективности сервер использует два параллельных цикла – один для обработки пополнений счета (Deposit Amount), а другой – снятия денег со счета (Withdrawal Amount). Проблема состоит в том, что некоторые запросы на пополнение или снятие денег теряются, поэтому баланс получается неправильным.

Определение условий возникновения состязаний

1.Откройте Bank.vi, находящийся в папке Exercises>\LabVIEW Core 1\Bank.

2.Запустите VI.

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

4.Установите Deposit Amount равным 20 и Withdrawal Amount равным

10.

5.Откройте блок-диаграмму выполняющегося Bank VI.

6.Разместите блок-диаграмму Bank VI так, чтобы вы могли ее видеть, работая при этом с интерфейсом пользователя.

7.Разрешите подсветку выполнения блок-диаграммы, щелкнув Highlight Execution.

8.Нажмите кнопку Simultaneous Transactions и наблюдайте за кодом во время выполнения. Баланс должен увеличиться на 10.

Обратите внимание, что или пополнение, или снятие теряются, отчего баланс или увеличится на 20, или уменьшится на 10.

9.Остановите VI.

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

Основы LabVIEW 1. Упражнения

161

ni.com

9. Использование переменных

Устранение условий возникновения состязаний

Устраните условия возникновения состязаний, защитив критические фрагменты кода с помощью семафора. В VI критические фрагменты кода – те, что находятся в структуре Sequence.

1.Сохраните Bank VI под именем Bank with Semaphores.vi в папке

<Exercises>\LabVIEW Core 1\Bank

2.Используйте семафоры для защиты критических фрагментов кода, как показано на рисунке 9-9.

Рисунок 9-9. Банк с семафором

Добавьте Obtain Semaphore Reference VI слева от циклов While.

Подключите Obtain Semaphore Reference VI в соответствии с рисунком 9-9.

Добавьте Acquire Semaphore VI для цикла Deposit Handler слева от структуры Sequence.

Добавьте второй Acquire Semaphore VI для цикла Withdrawal Handler

слева от структуры Sequence.

Подключите Acquire Semaphore VI, как показано на рисунке 9-9.

Добавьте Release Semaphore VI для цикла Deposit Handler справа от структуры Sequence.

Добавьте второй Release Semaphore VI для цикла Withdrawal Handler

справа от структуры Sequence.

© National Instruments Corporation

162

Основы LabVIEW 1. Упражнения

9.Использование переменных

Подключите Release Semaphore VI в соответствии с рисунком 9-9.

Добавьте Release Semaphore Reference VI справа от циклов While.

Подключите Release Semaphore Reference VI в соответствии с рисунком 9-9. Обратите внимание, что Release Semaphore Reference VI требует только ссылку на семафор.

3.Сохраните VI.

4.Повторите действия, описанные в разделе Определение условий возникновения состязаний, для проверки усовершенствованногоVI.

5.Когда закончите упражнение, закройте VI.

Конец упражнения 9-3

Основы LabVIEW 1. Упражнения

163

ni.com

9. Использование переменных

Заметки

© National Instruments Corporation

164

Основы LabVIEW 1. Упражнения

А

Приложение А. Анализ и обработка числовых данных

Упражнение A-1. Типы анализа

Цель

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

Описание

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

Задание 1

Интенсивность отказов вашей технологической линии непосредственно связана со скоростью производства. Вам необходимо с помощью программы наблюдать за интенсивностью отказов. Если интенсивность отказов превышает 3%, следует уменьшить скорость линии. Если интенсивность отказов меньше 2%, следует увеличить скорость линии.

Оперативный Автономный Программный Интерактивный

Задание 2

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

Оперативный Автономный Программный Интерактивный

© National Instruments Corporation

165

Основы LabVIEW 1. Упражнения

Приложение А. Анализ и обработка числовых данных

Задание 3

Вы записываете данные о температуре и давлении. Раз в неделю вы готовите отчет для вашего менеджера с сопоставлением трендов температуры и давления во время грозы.

Оперативный Автономный Программный Интерактивный

Задание 4

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

Количество проезжающих по мосту автомобилей регистрирует датчик.

Оперативный Автономный Программный Интерактивный

Ответы на эти задания приведены на следующей странице.

© National Instruments Corporation

166

Основы LabVIEW 1. Упражнения

Приложение А. Анализ и обработка числовых данных

Задание 1

Оперативный анализ Программный анализ

Оперативный анализ определяет скорость линии и интенсивность отказов.

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

Задание 2

Оперативный анализ Интерактивный анализ

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

Задание 3

Автономный анализ

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

Задание 4

Программный анализ

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

Конец упражнения A-1

Основы LabVIEW 1. Упражнения

167

ni.com

Приложение А. Анализ и обработка числовых данных

Заметки

© National Instruments Corporation

168

Основы LabVIEW 1. Упражнения

B

Приложение В. Основы измерений

Упражнение B-1. Основы измерений Цель упражнения

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

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

1.Откройте файл Resolution.vi из папки <Exercises>\LabVIEW Core 1\Measurement Fundamentals.

Этот VI симулирует формирование гармонического сигнала и его оцифровку с помощью аналого-цифрового преобразователя (АЦП). VI имеет следующие элементы управления и индикаторы:

Input Signal Voltage – элемент управления, с помощью которого задается диапазон измеряемого сигнала. Значение по умолчанию – ±1 В. Это означает, что разность между наибольшим и наименьшим значением сигнала – ширина диапазона составляет 2 В.

Resolution (ADC) – с помощью этого элемента управления задается разрешающая способность АЦП устройства сбора данных при измерении сигнала. Значение по умолчанию – 3 бита.

Device Input Range – этот элемент управления задает входной диапазон напряжений для АЦП, деленный на коэффициент усиления. Значение по умолчанию – ±1 В. Размах напряжения (пик-пик) равен 2 В. Поскольку входной диапазон напряжений АЦП равен ±10 В, из этого следует, что коэффициент усиления сигнала равен 10.

Code Width – на этот индикатор выводится результат вычисления веса младшего значащего разряда по значениям, заданных на элементах управления:

C D

1

2

1

0.25 В

 

 

2R

23

 

 

 

где C – вес младшего значащего разряда; D – входной диапазон устройства; R – разрешающая способность.

© National Instruments Corporation

169

Основы LabVIEW 1. Упражнения

Приложение В. Основы измерений

2. Запустите VI и поварьируйте значения элементов управления.

Рисунок B-1. Лицевая панель VI Resolution

Чтобы запустить VI, щелкните по кнопке Run.

Оставьте значения элементов управления по умолчанию.

График красного цвета показывает действительный входной синусоидальный сигнал. График белого цвета показывает сигнал на выходе АЦП. Обратите внимание на то, что белый график является грубым представлением входного сигнала. Очевидно, что заданный вес младшего разряда 0.25 В позволяет представить только 8 дискретных уровней сигнала.

Измените значение элемента управления Resolution (ADC).

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

Установите разрешающую способность 3 бита.

Измените значение элемента управления Device Input Range.

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

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

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

3.С помощью VI Resolution определите вес единицы младшего разряда для входного сигнала, который изменяется в диапазоне ±0.8 В при использовании DAQ-устройства с разрешающей способностью 16 бит. Примите допущение, что подобран такой коэффициент усиления, при котором диапазон допустимых напряжений на входе устройства используется эффективно.

Вес единицы младшего разряда:

© National Instruments Corporation

170

Основы LabVIEW 1. Упражнения