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

ASVT Материалы / основы_labview_1

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

Лекция 8. Методы проектирования и шаблоны

Рисунок 9-19. Функциональная глобальная переменная исключает возможность возникновения состязаний

Семафоры

Семафоры – механизмы синхронизации, специально разработанные для защиты ресурсов и критических фрагментов кода. Вы можете запретить критическим фрагментам кода прерывать друг друга, поместив каждый из них между Acquire Semaphore и Release Semaphore VI. По умолчанию семафор в каждый момент времени позволяет выполняться только одной задаче. Таким образом, после того как одна из задач начнет выполнять критический фрагмент кода, другая задача не сможет начать выполнения своего критического фрагмента, пока не завершится первая задача. При правильной реализации это исключает возможность возникновения состязаний.

Вы можете использовать семафоры для защиты критических фрагментов VI, показанных на рисунках 9-15 и 9-16. Именованный семафор позволяет вам разделять семафоры между VI. Вы должны открыть семафор в каждом VI, затем захватить его до начала критического фрагмента кода и освободить после критического фрагмента. На рисунках 9-20 и 9-21 показано, как избежать возникновения состязаний при помощи семафоров.

Основы LabVIEW 1. Учебное пособие

231

ni.com

Лекция 8. Методы проектирования и шаблоны

Рисунок 9-20. Защита критического фрагмента кода семафором в цикле 1

Рисунок 9-21. Защита критического фрагмента кода семафором в цикле 2

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

Код с ненадлежащим использованием потока данных для управления порядком выполнения может привести к возникновению состязаний. Когда не установлена зависимость данных, LabVIEW может выполнять задачи в любом порядке, что может привести к возникновению состязаний, если задачи зависят друг от друга. Рассмотрим пример на рисунке 9-22.

Рисунок 9-22. Простой пример возникновения состязаний

Код в этом примере может привести к четырем возможным результатам в зависимости от порядка выполнения операций.

© National Instruments Corporation

232

Основы LabVIEW 1. Учебное пособие

Лекция 8. Методы проектирования и шаблоны

Результат 1: Value = (Value Ч 5) + 2

1.Терминал считывает значение Value.

2.Value × 5 записывается в Value.

3.Локальная переменная считывает значение Value × 5.

4.(Value × 5) + 2 записывается в Value.

Результат 2: Value = (Value + 2) х 5

1.Локальная переменная считывает значение Value.

2.Value + 2 is записывается в Value.

3.Терминал считывает значение Value+2.

4.(Value + 2) × 5 записывается в Value.

Результат 3: Value = Value х 5

1.Терминал считывает значение Value.

2.Локальная переменная считывает значение Value.

3.Value + 2 записывается в Value.

4.Value × 5 записывается в Value.

Результат 4: Value = Value + 2

1.Терминал считывает значение Value.

2.Локальная переменная считывает значение Value.

3.Value × 5 записывается в Value.

4.Value + 2 записывается в Value.

Хотя в этом коде присутствует состязание, как правило, он ведет себя более предсказуемо, чем первый пример с состязаниями, поскольку обычно LabVIEW назначает последовательный порядок операций. Однако вы должны избегать ситуаций, подобных этой, потому что порядок выполнения и поведение VI может изменяться. Например, порядок может измениться при запуске VI при других условиях или при переходе на новую версию LabVIEW. К счастью, состязания подобной природы легко устраняются управлением потоком данных.

Основы LabVIEW 1. Учебное пособие

233

ni.com

Лекция 8. Методы проектирования и шаблоны

Самопроверка: короткий тест

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

a.Да

b.Нет

2.Какие из объектов не могут передавать данные?

a.Семафоры

b.Функциональные глобальные переменные

c.Локальные переменные

d.Переменные общего доступа типа Single Process

3.Какие из объектов нужно использовать в проекте?

a.Локальные переменные

b.Глобальные переменные

c.Функциональные глобальные переменные

d.Переменные общего доступа типа Single Process

4.Какие из объектов не могут быть использованы для обмена данными между несколькими VI?

a.Локальные переменные

b.Глобальные переменные

c.Функциональные глобальные переменные

d.Переменные общего доступа типа Single Process

© National Instruments Corporation

234

Основы LabVIEW 1. Учебное пособие

Лекция 8. Методы проектирования и шаблоны

Самопроверка: ответы

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

a.Да

b.Нет

2.Какие из объектов не могут передавать данные?

a.Семафоры

b.Функциональные глобальные переменные

c.Локальные переменные

d.Переменные общего доступа типа Single Process

3.Какие из объектов нужно использовать в проекте?

a.Локальные переменные

b.Глобальные переменные

c.Функциональные глобальные переменные

d.Переменные общего доступа типа Single Process

4.Какие из объектов не могут быть использованы для обмена данными между несколькими VI?

a.Локальные переменные

b.Глобальные переменные

c.Функциональные глобальные переменные

d.Переменные общего доступа типа Single Process

Основы LabVIEW 1. Учебное пособие

235

ni.com

Лекция 8. Методы проектирования и шаблоны

Заметки

© National Instruments Corporation

236

Основы LabVIEW 1. Учебное пособие

А

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

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

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

План занятия

A.Выбор правильного метода анализа

B.Категории анализа

© National Instruments Corporation

237

Основы LabVIEW 1. Учебное пособие

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

A. Выбор правильного метода анализа

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

Сравнение оперативного анализа и автономного анализа

Оперативный анализ (inline analysis) подразумевает, что данные анализируются в том же приложении, где и собираются. Как правило, он относится к приложениям, в которых необходимо принимать решения в процессе выполнения, а результаты оказывают непосредственное воздействие на процесс через изменение параметров или выполнения действий. Это типичный случай управляющих приложений. При выполнении оперативного анализа важно учитывать объем собранных данных и конкретные программы анализа данных. Необходимо найти подходящий баланс между ними, поскольку вычислительная сложность программ может стать настолько большой, что неблагоприятно скажется на производительности приложения.

Другие примеры применения оперативного анализа – приложения, где параметры измерений должны подстраиваться под характеристики измеряемого сигнала. Например, когда необходимо записывать один или несколько сигналов, которые изменяются очень медленно, за исключением неожиданных вспышек высокочастотной активности. Чтобы уменьшить объем записываемых данных, приложение должно быстро определить, когда требуется увеличить частоту и когда ее уменьшить по завершении вспышки. Измеряя и анализируя определенные аспекты сигналов, приложение может адаптироваться к условиям измерений и выбрать подходящие параметры выполнения. Хотя это лишь один пример, существуют тысячи приложений, где требуется определенная степень интеллектуальности – способности принимать решения на основании различных состояний - и адаптивности, что можно обеспечить, только реализуя в приложении алгоритмы анализа.

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

LabVIEW предлагает программы анализа и математические программы, естественно взамодействующие с функциями сбора данных и отображения, которые легко встроить в любое приложение. Кроме того, LabVIEW предлагает программы для поточечной обработки данных (point-by-point

Основы LabVIEW 1. Учебное пособие

238

ni.com

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

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

Автономные приложения (offline applications) обычно не требуют получения результатов в реальном времени для принятия решений о процессе. Подобным приложениям анализом нужны только достаточные вычислительные ресурсы. Главной целью таких приложений является определение причины и следствия влияния переменных на процесс, путем оценки корреляции между несколькими наборами данных. Как правило, эти приложения импортируют данных из пользовательских двоичных или ASCII-файлов и коммерческих баз данных наподобие Oracle, Access и других, поддерживающих стандарт SQL/ODBC. Как только данные импортированы в LabVIEW, пользователи могут выполнять множество доступных программ анализа, управлять данными и выводить их в заданном формате для отчетов.

LabVIEW предоставляет функции для доступа к любому формату файлов и баз данных, естественного подключения к мощным инструментам создания отчетов наподобие NI DIAdem и Report Generation Toolkit for Microsoft Office, и реализации современных технологий совместного использования данных наподобие XML, презентаций данных в Web и ActiveX.

Сравнение программного и интерактивного анализа

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

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

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

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

© National Instruments Corporation

239

Основы LabVIEW 1. Учебное пособие

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

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

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

В. Категории анализа

LabVIEW предлагает сотни встроенных функций анализа, покрывающих различные области и методы извлечения информации из собранных данных. Вы можете использовать эти функции без изменений или модифицировать их и настраивать под конкретные нужды. Эти функции объединены в следующие группы: Measurement, Signal Processing, Mathematics, Image Processing, Control, Simulation и Application Areas.

Measurement

-Amplitude and Level

-Frequency (Spectral) Analysis

-Noise and Distortion

-Pulse and Transition

-Signal and Waveform Generation

-Time Domain Analysis

-Tone Measurements

Signal Processing

-Digital Filters

-Convolution and Correlation

-Frequency Domain

-Joint Time-Frequency Analysis (Signal Processing Toolset)

-Sampling/Resampling

-Signal Generation

-Super-Resolution Spectral Analysis (Signal Processing Toolset)

-Transforms

-Time Domain

-Wavelet and Filter Bank Design (Signal Processing Toolset)

-Windowing

Основы LabVIEW 1. Учебное пособие

240

ni.com