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

Ошибка наложения записей

Наиболее распространенная ошибка, с которой вы можете столкнуться при выполнении непрерывного буферизированного сбора данных, это ошибка наложения записей (overwrite error). Эта ошибка возникнет, когда метка конца выборок догонит текущее положение выборки, и данные будут накладываться друг на друга. Это происходит, если LabVIEW не достаточно быстро считывает данные из буфера ПК. Существует несколько способов, помогающих избежать этой ошибки, но не все из них можно применять в конкретной ситуации, так как некоторые срабатывают лучше, чем другие.

  • Увеличьте число выборок на канал (размер буфера) в ВП DAQmx Timing. Эта мера не снимет проблему, если вы не опустошаете буфер с достаточной скоростью. Запомните норму числа выборок на канал для считывания: от четверти до половины размера буфера. Если увеличение размера буфера приведет к выполнению указанного условия, то это исключит ошибку.

  • Опустошайте буфер быстрее, увеличивая число выборок на канал для считывания (number of samples per channel to read). Не устанавливайте этого числа слишком большим, поскольку при этом возникнет пауза в ВП DAQmx Read до тех пор, пока количество выборок в буфере не достигнет числа выборок для считывания. Время, затраченное на ожидание заполнения буфера выборками, могло быть потрачено на опустошение буфера.

  • Уменьшите частоту выборок на канал в ВП DAQmx Timing. Эта мера замедлит скорость, с которой данные будут отправляться в буфер. Однако это может быть неприемлемо, если вам необходима определенная частота дискретизации.

  • Избегайте замедления выполнения цикла из-за ненужного анализа данных внутри него.

Ошибка переполнения

Другая ошибка, которая может возникнуть при непрерывном буферизированном сборе данных, вызывается переполнением FIFO буфера DAQ устройства. Эта ошибка не настолько распространена, как ошибка наложения записи, но ее и не так легко исправить. Она появляется, когда FIFO буфер не опустошается достаточно быстро. При передаче данных в буфер компьютера состояние FIFO буфера зависит или от DMA или от IRQ, поэтому, когда FIFO буфер опустошается недостаточно быстро, есть всего лишь несколько способов предотвратить ошибку.

  • Убедитесь, что, если DMA доступен, вы используете канал DMA для передачи данных. Прямой доступ к памяти (DMA) работает быстрее, чем запрос прерывания (IRQ), и это может значительно увеличить быстродействие. За большей информацией об использовании DMA обращайтесь как справке NI-DAQmx Help и узлу свойств DAQmx канала (DAQmx Channel Property Node) (свойство Data Transfer Mechanism (Механизм передачи данных)).

  • Уменьшите частоту выборки на канал в ВП DAQmx Timing.

  • Приобретите устройство с большим FIFO буфером. Однако этот способ может только оттянуть появление проблемы вместо ее решения.

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

Упражнение 4-6. ВП непрерывного буферизированного сбора данных.

Задача: Непрерывно получать данные с помощью DAQ устройства и записывать их в файле.

Выполните следующие действия для создания ВП, который выполняет непрерывный сбор данных и отображает последние данные на развертке.

Лицевая панель

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