Переполнение буфера

Простейшие вопросы в области инженерной разработки
Ответить
Exortus
beginner
beginner
Сообщения: 11
Зарегистрирован: 23 фев 2010, 17:57
Версия LabVIEW: 2009
Контактная информация:

Переполнение буфера

Сообщение Exortus »

Добрый Всем День,
Написал ВИ, для NI-USB-6211,который симулирует дельта-модуляцию (принимаем реальный сигнал с устройства и затем програмно его обрабатываем). Полученный ВИ прекрасно работает без цикла while loop. Используя же цикл у меня вылетает ошибка о переполнении буфера : Изображение
Я уже менял и частоту дискретизации и кол-во выборок-ничего не помогает.
Что с этим можно поделать?
С Уважением, Юрий
Вложения
delta_modulation(lightl)_8.2.vi
(526.12 КБ) 108 скачиваний
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Переполнение буфера

Сообщение FireFly »

Во-первых желательно перенести математическую обработку в параллельный цикл. Как это сделать написанно Тут
Во-вторых если DAQmx Read читает данные быстрее чем проходит математическая обработка необходимо:
а) Уменьшить скорость чтения
б) Изменить размер обрабатываемых массивов. (возможно, если уменьшить значение Samples, массив будет обрабатываться быстрее, хотя, возможно, напротив, если увеличить это значение, также, возможно, поможет усреднение и пр.)
в) Улучшить алгоритм математической обработки. Например, можно попробовать обработку сделать стандартными LabVIEW блоками, они, как мне кажется, будут работать быстрее.
г) ещё что-нибудь
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Переполнение буфера

Сообщение mzu2006 »

по пунтку г). - отказаться от использования DAQ Assistant в пользу обычных DAQmx VI
Сделать profiling и выяснить кто потребляет время. может быть перенести обработку в отдельный поток
Exortus
beginner
beginner
Сообщения: 11
Зарегистрирован: 23 фев 2010, 17:57
Версия LabVIEW: 2009
Контактная информация:

Re: Переполнение буфера

Сообщение Exortus »

FireFly и mzu2006 СПАСИБО ВАМ ЗА ОПЕРАТИВНОСТЬ :thank:
И сразу в догонку два глупый вопроса :
1) У меня сначала сигнал принимается а затем данные посылаются в MathScript, значит надо в цикле с MathScript ставить задержку?
2) А как можно посмотреть сколько времени (машинного или реального) занимает тот или иной процесс?
Последний раз редактировалось Exortus 01 мар 2010, 22:08, всего редактировалось 1 раз.
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Переполнение буфера

Сообщение Konstantin Sumenko »

Profile или стандартные две Tick Count.
Ответить

Вернуться в «Для чайников»