Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Работа с Е20-10 в Labview

Вы не вошли.

 Поиск | Регистрация | Вход 

Алекскей
04.02.2013 15:20:32
#1

Гость

Работа с Е20-10 в Labview

Здравствуйте!

Нужна помощь специалиста. Имеем модуль Е20-10 рев В с прошивкой от 18.04.08. Работаем в режиме синхронного сбора с АЦП.

Идея:
написать программу, которая из анализа данных с АЦП устанавливает то или иное напряжение на ЦАП. Причем нужно, чтобы данные с АЦП приходили поэлементно, а не массивом. Мы решили сделать это путем нахождения среднего значения элементов массива. Тогда, работая только со средними, можно считать, что значения приходят поэлементно.

Проблема:
Данные АЦП забираются из буфера массивом задаваемого размера. Однако его размер слишком большой для нас, т.е. усреднение происходит по большому числу точек. Если пытаться уменьшить размер массива, то растет число rest samples qnt. Значит мы теряем данные.


Вопрос:
Каким образом правильно сделать так, чтобы, работая с поэлементными значениями, мы не теряли данных?

Заранее благодарен за помощь! Могу прикрепить написанную программу если требуется.

04.02.2013 19:42:55
#2

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Работа с Е20-10 в Labview

Двойную буферизацию используете?

http://www.lcard.ru/forumthreads/10195

04.02.2013 20:32:14
#3

Инженер-электронщик
Откуда: "Л Кард"
Здесь с 21.04.2014
Сообщений: 4,597

Re: Работа с Е20-10 в Labview

Алексей, а почему не хотите настроить на медленный периодичный сбор данных путём задания большой межкадровой задержки, и забирать данные READ_DATA можно будет тогда маленькими порциями? Или для Вас принципиально важно усреднять с высокой частотой дискретизации, а потом уже прореживать данные? Может подойдёт асинхронный старт с остановкой после 1-го кадра?
Кстати, в руководстве http://www.lcard.ru/download/e20_10_users_guide.pdf, п. 3.3.4 ведётся история версий прошивок,  и файл прошивки от 18.04.08 - это, скорее всего, самая первая прошивка 2.00.03, а с тех пор исправлено несколько багов и добавлен новый функционал...

Алексей
05.02.2013 18:45:24
#4

Гость

Re: Работа с Е20-10 в Labview

Александр Е, двойную буферизацию не использую. Делаю так как показано в примере "Осцилограф".

Гарманов Александр, для нас необходимо чтобы задержка была не меньше 1мс. Поэтому возникла идея получать данные с высокой частотой дискретизации (10^6 например), усреднять их по 100 точкам и на выходе иметь частоту 10^4.

05.02.2013 19:37:25
#5

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Работа с Е20-10 в Labview

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

Обрабатывать кучу мелких блоков в секунду на верхнем уровне может быть неэффективно из-за накладных расходов на каждый блок.

Можно попробовать поэкспериментировать с очередями асинхронных запросов (overlapped).

Но вообще я бы не решился заряжать в компьютер, да еще по USB, 10000 событий в секунду.
Вот, скажем, 10 мс - это более перспективный период следования блоков.

05.02.2013 19:45:05
#6

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Работа с Е20-10 в Labview

Кстати, команда однократного вывода на ЦАП E20-10 занимает порядка единиц-десятков мс, так что в любом случае короткие блоки не имеют смысла.

e2010_programmers_guide.pdf параграф 4.6.2:
"можно достичь частоты вывода на ЦАП порядка нескольких сотен Гц"