Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lesson 4.doc
Скачиваний:
17
Добавлен:
11.07.2019
Размер:
650.75 Кб
Скачать

Блок-схема буферизированного сбора данных

На следующей блок-схеме отображены основные моменты буферизированного сбора данных. Он требует задания определенного количества точек для получения с определенной частотой. Для настройки временных параметров и буфера устройства используйте ВП DAQmx Timing. Для запуска сбора данных применяйте ВП DAQmx Start Task. Далее, ВП DAQmx Read ждет, пока все выборки каждого из каналов не будут получены, затем возвращает данные и продвигает задачу дальше. ВП DAQmx Stop Task останавливает задачу и высвобождает ресурсы, выделенные устройству. Обработчик ошибок Error Handler показывает все ошибки, возникшие при выполнении.

Пример буферизированного сбора данных

Следующий пример демонстрирует создание ВП для буферизированного сбора данных. ВП DAQmx Timing задает задачу/канал, тактирование и количество выборок на канал (размер буфера). Затем, ВП DAQmx Start Task запускает сбор данных. После этого программа ждет на этапе ВП DAQmx Read, пока не заполнится весь буфер. Когда это произойдет, ВП DAQmx Read возвращает данные из буфера, ВП DAQmx Stop Task останавливает сбор данных, и ВП Simple Error Handler показывает возникшие ошибки.

Поскольку ввод числа выборок на канал (number of samples per channel) ВП DAQmx Read остался неподключенным, NI-DAQmx автоматически определяет количество выборок для чтения, основываясь на конфигурации ВП DAQmx Timing. NI-DAQmx автоматически определяет это значение и устанавливает ввод number of

samples per channel в значение –1. ВП DAQmx Read возвращает 2D массив, который можно непосредственно подать на график. В отличие от типа данных «осциллограмма», массив не содержит никакой временной информации.

Всегда соединяйте входные и выходные терминалы кластеров ошибок ВП между собой. Если на вход error in какого либо из ВП DAQmx Start Task, DAQmx Read или DAQmx Stop Task поступит ошибка, то ВП возвратит информацию об ошибке на свой выходной терминал error out и не будет продолжать выполняться. Например, предположим, что возникла в ВП DAQmx Start Timing. Этот ВП прекратит выполнение и передаст информацию об ошибке в ВП DAQmx Start Task. Последний выполняться не будет – он просто передаст ошибку в следующий ВП. Таким образом, информация об ошибке проходит через каждый ВП и поступает в Error Handler для отображения.

Что происходит на самом деле?

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

Вы уже знаете, что при получении аналогового сигнала, он проходит через инструментальный усилитель в АЦП. Однако вы можете не знать, что происходит с сигналом дальше. Он поступает в FIFO (от First In First Out – первым поступил – первым выводится) буфер, расположенный в устройстве, который хранит данные до тех пор, пока они не будут переданы из устройства в компьютер. После этого данные поступают из устройства в буфер ПК по каналу прямого доступа к памяти (Direct Memory Access – DMA) или с использованием запроса прерывания (Interrupt Request – IRQ).

Буфер персонального компьютера представляет собой область памяти, в которой хранятся данные после получения их из устройства. Ввод number of samples per channel ВП DAQmx Timing (или buffer size в ВП DAQmx Configure Input Buffer) задает буфер ПК, который хранит данные, пока ВП DAQmx Read не будет готов считать их. После этого ВП DAQmx Read передает данные в буфер LabVIEW, которые затем могут быть отображены на лицевой панели. Буфер LabVIEW может передать данные на график осциллограмм, в массив или в виде типа данных «осциллограмма» в зависимости от настройки конфигуратора ВП DAQmx Read и способа подключения выходных терминалов ВП DAQmx Read.

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