Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
Формат данных из Буфера Е 14-440Делаю прогу под LabView с вашими подприборами, возникло два вопроса:
|
|||
|
||||
|
Re: Формат данных из Буфера Е 14-4401) gain 0, 1, 2, 3 = предел измерений 10 В, 2.5 В, 625 мВ, 156.25 мВ. Усиление соответственно x1, x4, x16, x64.
|
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440Большое спасибо!))) |
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440Добрый день!
|
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440Нужно указать sampleQnt равным 1. Если вам нужно читать однократные значения, то лучше и проще воспользоваться LV_DoSingleAdcSample(). |
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440Aleks622, не вполне уверен, что понимаю Ваш вопрос. Получив массив, Вы можете обработать его элементы по одному. Если же Вы имеете в виду обработку в реальном времени, то собирать один отсчет и "сразу" видеть его программой корректно не получится (и сам прибор, и шина USB, и особенно компьютер - все вносят случайные задержки). Если, конечно, период опроса очень большой (сотни миллисекунд, секунды), то можно использовать функции однократного ввода, пренебрегая джиттером ("дрожанием" моментов времени реального измерения относительно заданной сетки). Но я бы посоветовал использовать потоковый ввод (именно массивом), ведь никто не мешает выбирать из них хоть по одному отсчету (а можно вычислить среднее значение, максимум, минимум и т.д.) Преимущество потокового ввода в том, что данные привязаны к стабильной кварцованной частоте дискретизации прибора, т.е. отсчеты в массиве отстоят друг от друга на равные времена. При этом время t, соответствующее отсчету Un = U(t), нужно отсчитывать не по часам, а как порядковый номер отсчета, деленный на частоту дискретизации: t = n / Fs. Чтобы уменьшить задержку (в реальном времени) между сбором данных и их обработкой, можно уменьшить размер порции данных, т.е. читать массив сравнительно короткими блоками. При этом
Да, и Вы упомянули "синхронный опрос каналов". Если говорить строго, то это невозможно на E14-140, E14-440, LTR-11 и других подобных устройствах, содержащих один АЦП с коммутируемыми входами. Каналы всегда опрашиваются последовательно (12341234), и если фазовый сдвиг важен, то его надо либо учесть и программно скомпенсировать, либо при очень низкой частоте дискретизации и большой межкадровой задержке пренебречь (1234............1234............).
|
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440Большое спасибо за развернутый ответ! "Если же Вы имеете в виду обработку в реальном времени, то собирать один отсчет и "сразу" видеть его программой корректно " Именно это я и имею в виду. Работаю только с одним каналом АЦП. Период опроса составляет от 1 до 0,01 миллисекунд, при этом хотелось бы анализировать отсчеты поочередно. И, исходя из анализа, менять ЦАПом напряжение. Сейчас получается, что программа принимает решение не в тот момент, когда нужно. ” можно уменьшить размер порции данных” Подскажите, пожалуйста, как именно. “нет смысла делать их меньше 32 отсчетов” Т.е. массивы будут приходить по 32 отсчета? В принципе это нормально. При частоте АЦП 0,1мс реальная задержка будет 3,2 мс? ” чтобы не терять данные, крайне желательно использовать очередь их нескольких буферов” Где можно посмотреть, как это сделать? |
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440>Период опроса составляет от 1 до 0,01 миллисекунд, при этом хотелось бы анализировать отсчеты поочередно. И, исходя из анализа, менять ЦАПом напряжение. Через компьютер это сделать просто невозможно. Если алгоритм обработки простой, то можно попытаться пойти путем модификации прошивки прибора (т.е. программировать непосредственно его микроконтроллер). И данные будут при такой схеме обрабатываться внутри коробочки автономно, а не передаваться по USB.
>Т.е. массивы будут приходить по 32 отсчета? В принципе это нормально. При частоте АЦП 0,1мс реальная задержка будет 3,2 мс? Не уверен, насколько это удачно и реально сделать в labview, потому что она громоздкая. Но если говорить для начала о C/C++, тот тут на форуме неоднократно обсуждалась двойная буферизация, асинхронный ввод-вывод и прочее. >Где можно посмотреть, как это сделать? См. ответ и ссылки в теме
|
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440Только ЦАП-то тоже потоковый. Однократные команды использовать при таких скоростях нельзя, т.к. время исполнения асинхронной команды по USB может быть порядка десятков мс. Так что придется еще постоянно поддерживать поток ЦАП, не допуская опустошения буфера, данные тоже пишутся порциями, т.е. еще будет примерно такая же задержка реакции выхода. |
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440Большое спасибо за ответ! "Если алгоритм обработки простой, то можно попытаться пойти путем модификации прошивки прибора (т.е. программировать непосредственно его микроконтроллер). И данные будут при такой схеме обрабатываться внутри коробочки автономно, а не передаваться по USB." Алгоритм, действительно, простой: складываем отсчеты и сравниваем эту сумму с первым отсчетом. Если сумма больше чем первое значение, умноженное на const, то устанавливаем напряжение U1. Если меньше, то U2. "И это если речь идет о E14-140-M, а не старом E14-140" Модуль Е20-10D подойдет? Если да, то как модифицировать прошивку самому? Спасибо! |
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440"Модуль Е20-10D подойдет?"
|
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440Как я понял, для написания прошивки, которая обрабатывает обработки _каждого_ отсчета по мере сбора и выставляет напряжения на ЦАП. В E20-10, если я не ошибаюсь, микроконтроллер не несет на себе основной поток данных, это делает ПЛИС. Aleks622, все же я бы начал с вопроса, в какой мере Ваша задача допускает послабление требований по частоте опроса. Потому что все-таки штатными средствами работать гораздо проще. >как модифицировать прошивку самому?
В E14-140-M микроконтроллер работает с АЦП и ЦАП тоже через ПЛИС, но данные проходят через процессор (через быстрые последовательные порты). Можно попытаться выкинуть всю стандартную обработку (буферизацию и обмен с компьютером по USB), запустить потоковый ввод и вывод и дальше в прерываниях или в коротком цикле принимать читаемое и формировать писуемое. На высоких частотах дискретизации надо учитывать, что процессор на 48 МГц, 10 мкс = 480 тактов. Штатная прошивка работает по DMA и данные копирует блоками, а Вы хотите в идеале слово за словом. P.S. Если реально соберетесь покупать модуль под написание собственной прошивки, то имеет смысл сначала изучить документацию, задать вопросы и попробовать оценить, получится ли решить Вашу нестандартную задачу имеющимися силами за разумное время. |
|||
|
||||
|
Re: Формат данных из Буфера Е 14-440Александр Е, большое спасибо за подробные ответы на вопросы! Буду думать... |
Страницы 1
Тема закрыта