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

Работа с модулем LTR34-8.

Вы не вошли.

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

16.06.2016 09:31:27
#1

Участник
Здесь с 24.05.2016
Сообщений: 10

Работа с модулем LTR34-8.

Добрый день.
При работе с Вашим модулем LTR34-8 возник следующий вопрос. В среде лабвью, я генерирую синусоиду, значения амплитуды которой, записываю в массив  source на передачу. Снимая выходной сигнал на осциллографе, я вижу, что при изменении значения амплитуды на входе, на выходе получается задержка в изменении формы сигнала. Вопрос, могу ли я добиться плавного изменения формы сигнала? Какой режим для этого нужно использовать?
С Уважением, инженер Казанского авиационного завода.

16.06.2016 11:02:14
#2

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

Re: Работа с модулем LTR34-8.

Здравствуйте. По существу Вашего вопроса наш программист ответит. Если занимаетесь активной виброметрией (или схожей тематикой), то будем крайне признательны, если подробно сформулируете технические требования на необходимый Вам функционал подобного многоканального генератора. Эта информация необходима нам для понимания направления дальнейшего развития ПО и аппаратуры подобных генераторов. Требования можно выслать на support@lcard.ru . Спасибо.

16.06.2016 15:22:40
#3

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,287

Re: Работа с модулем LTR34-8.

Не до конца понятно, необходимо добиться все же "плавного изменения формы сигнала" по определенному закону, или вопрос в том, чтобы минимизировать время реакции от изменения сигнала сверху по вводу пользователем/другому событию до изменения этого сигнала на выходе ЦАП?

Если первое, то в потоковом режиме Вы загружаете все отсчеты (а не только значение амплитуды), которые будут выводится на ЦАП по одному с установленной частотой вывода ЦАП, поэтому Вы можете на ПК сформировать не просто синусоиду, а сигнал, который будет изменяться по нужному закону и загрузить его в ЦАП, а он уже с нужной частотой будет его выдавать.

Во втором случае, если речь идет не про постоянный сигнал, то это более сложная задача. Для вывода непрерывного сигнала необходимо всегда подкачивать данные, т.е. чтобы в модуле всегда были данные, готовые к выдаче, при этом от ПК до модуля они проходят длинный путь со своими задержками. В связи с чем в LTR используется глубогая буферезация данных (есть буфер в модуле, крейте, в ltrd/LtrServer)  Если Вы постоянно записываете сигнал с максимальной скоростью, которая больше скорости выдачи, то эти буфера будут заполнены и после изменения новые данные встанут в конец и будут выведены только после вывода всех отсчетов, что лежали во всех буферах до этого. Для уменьшения этого размера можно включить режим с подтверждением каждого слова и посылать передавать в модуль данные так, чтобы разница между кол-вом посланных слов и принятых ответов была не более некого N (как раз максимального кол-во отсчетов в буферах, на которое может произойти задержка), но это N должно быть достаточно, чтобы не допустить опустошения буфера в LTR34 с учетом возможных задержек данных. При этом этом задержки в ОС общего назначения, как Windows, в общем-то не нормированы...

29.06.2016 15:18:51
#4

Участник
Здесь с 24.05.2016
Сообщений: 10

Re: Работа с модулем LTR34-8.

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

29.06.2016 17:07:08
#5

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,287

Re: Работа с модулем LTR34-8.

zigazaga пишет:

режиме автогенерации

Если речь идет о режиме автогенерации, то получается Вы один раз заливаете сигнал, который уже по кругу периодически выдается, я правильно понимаю?

zigazaga пишет:

изменять амплитуды сигнала по заданной функции

Эта функция заранее задана и Вы сразу загружаете сигнал с учетом изменения амплитуды или что имеется ввиду?

zigazaga пишет:

При изменении амплитуды мы видим изменение амплитуды сигнала с задержкой

Тогда что имеется ввиду тут под первым "изменением амплитуды"? Как Вы изменяете амплитуду в режиме автогенерации? Если подразумевается ручное изменение каким-то действием в программе, то что при этом делается с точки зрения вызова функций и как это выполняется вообще в режиме автогенерации?

Можете описать, что Вы делаете с точки зрения вызова функций и когда и чего хотите все же в результате получить, максимально конкретно.

30.06.2016 09:00:22
#6

Участник
Здесь с 24.05.2016
Сообщений: 10

Re: Работа с модулем LTR34-8.

1.    Мы загружаем один период синусоидальной функции.
2.    Функция заранее не задана. Задание на изменение амплитуды поступает от внешней системы.
3.    В данном случае у нас есть орган управления амплитудой сигнала- ручка которую вращает оператор.(в среде лабвью).
4.    При изменении задания  амплитуды оператором мы записываем буфер Фифо. Получается что функции ProcessData, Send, Dacstart  а также ручку оператора мы используем в цикле, что позволяет при изменении значения амплитуды перезаписывать буфер фифо.
5.    Мы хотим чтобы амплитуда выходного сигнала, которую мы наблюдаем на осциллографе менялась синхронно с вращением ручки (т.е. изменении амплитуды в программе).

30.06.2016 11:27:26
#7

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,287

Re: Работа с модулем LTR34-8.

Понятно. А режим точно автогенерации, а не потоковый (RingMode чему равным устанавливается?).

Насколько я понимаю в режиме автогенерации для смены сигнала нужно останавливать генерацию перед тем как загрузить сигнал. Т.е. там еще Stop есть?

По поводу внешней синхронизации, как Вы ее используете? Это одиночный сигнал при старте работы или какой-то периодический сигнал?

30.06.2016 13:46:33
#8

Участник
Здесь с 24.05.2016
Сообщений: 10

Re: Работа с модулем LTR34-8.

1. В значение true
2. Dac stop вынесена за цикл. Получается что в цикле while только ProcessData, Send, Dacstart.
3. Периодический сигнал с частотой равной частоте генерируемого нами сигнала,это делается для синхронизации с внешним сигналом.
4. Нельзя ли вам прислать образец программы?

30.06.2016 14:30:59
#9

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,287

Re: Работа с модулем LTR34-8.

Можете прислать на мою почту

30.06.2016 14:51:13
#10

Участник
Здесь с 24.05.2016
Сообщений: 10

Re: Работа с модулем LTR34-8.

@Алексей L Card, напишите ее пожалуйста

30.06.2016 15:03:26
#11

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,287

Re: Работа с модулем LTR34-8.

Точнее лучше пошлите на support@lcard.ru с указанием, что письмо Борисову Алексею

30.06.2016 15:14:33
#12

Участник
Здесь с 24.05.2016
Сообщений: 10

Re: Работа с модулем LTR34-8.

Алексей L Card пишет:

Точнее лучше пошлите на support@lcard.ru с указанием, что письмо Борисову Алексею

отправил

01.07.2016 11:51:52
#13

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,287

Re: Работа с модулем LTR34-8.

Вообще в режиме автогенерации нельзя загружать новый сигнал, не остановив генерацию старого. В LTR34 один буфер, так получается Вы менеяете выводимый буфер налету. В любом случае при запуске у Вас будет останов генерации... я запустил Ваш пример и снял сигнал, и вот что получилось: ltr34_sig.png

Эти паузы - это нормально или Вы все же хотели сделать непрерывный сигнал?

Про внешнюю частоту синхронизации все же не понял до конца, что Вы хотите сделать и подразумеваете под "синхронизация с внешним сигналом"? Чтобы по фронту этой частоты он вывел один период нужного сигнала? а дальше до следующего фронта что должен делать LTR34, остановить генерацию? И какой порядок этой внешней частоты?
Можете описать все же, что именно хотите получить на выходе с учетом внешнего сигнала, даже безотносительно LTR34. Или диаграмму нарисовать, если так будет проще.

04.07.2016 10:06:45
#14

Участник
Здесь с 24.05.2016
Сообщений: 10

Re: Работа с модулем LTR34-8.

1. паузы это ненормально и нужно сделать непрерывный сигнал или хотя бы уменьшить их.

2. порядок внешнего сигнала 400 Гц,на выходе я хочу получить сигнал который задаю ручкой с программы, с изменяющейся без задержки амплитудой,если я меняю амплитуду в программе. Чтобы по фронту этой частоты он начал генерацию нашего сигнала в течение времени до поступления задания изменение амплитуды
3. под  "синхронизация с внешним сигналом" я понимаю запуск по внешнему старту, и получение на выходе 400 гц сигнала,от которого и началась генерация.

04.07.2016 13:00:35
#15

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,287

Re: Работа с модулем LTR34-8.

1. Так как в режиме автобуфера нет двойной буферизации, то этот режим не подходит, если нужно изменять сигнал без остановки генерации.

Соответственно, если рассматривать штатный вариант LTR34, то единственный для изменяемой постоянной генерации придется использовать потоковый режим.

2. Моментально в любом случае не может быть, какая то задержка будет. Тем более т.к. работа идет с ПК с ОС Windows, которая не является ОС реального времени, то она строго не определена. Кроме того в потоковом режиме LTR34 Вам необходимо всегда поддерживать непустую очередь, чтобы не возникало разрывов, если не успеем подкачать данные, что также приведет к задержке. В режиме ручного отслеживания заполненности очереди (по эхо-ответам) можно достичь времени реакции в районе секунды, если нужно более быстрая реакция, то не факт что получится обеспечить стабильную работу.

3. LTR34 поддерживает только синхронизацию запуска от внешнего сигнала. Генерация же идет всегда с настроенной частотой ЦАП (которая основана на внутреннем генераторе крейта). Если Вам нужна явная подстройка частоты генерации ЦАП на основе внешней частоты (а не генерация сигнала с заданной частотой, которая берется от внутреннего генератора), то такого режима в LTR34 к сожалению не предусмотрено. Если только косвенно измерять эту частоту другим модулем и и использовать измеренное значение для корректировки частоты записываемого в буфер синуса.

Если описанные ограничения приемлемы, то пример как в потоковом режиме это сделать я неверное смогу написать.

04.07.2016 13:46:18
#16

Участник
Здесь с 24.05.2016
Сообщений: 10

Re: Работа с модулем LTR34-8.

3. Так и нужно,чтобы генерация всегда шла с настроенной частотой ЦАП. Она всегда постоянна и равняется 400 Гц. Единственное что мы меняем в программе это амплитуда.

06.07.2016 18:27:45
#17

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,287

Re: Работа с модулем LTR34-8.

Выложил пример с потоковым выводом сюда в архив с примерами http://www.lcard.ru/download/examples/l … abview.zip под именем ltr34_stream_fifo_ctl. Уменьшение времени блока приводит к уменьшению времени реакции на изменение, но и уменьшается время реакции, за которое программа должна успеть загрузить новый блок данных, чтобы не было разрывов.

21.07.2016 08:53:18
#18

Участник
Здесь с 24.05.2016
Сообщений: 10

Re: Работа с модулем LTR34-8.

Алексей,а нет ли у вас примера для работы с несколькими каналами одновременно. При чем у каждого канала своя изменяющаяся амплитуда,а частота одинакова.
Или хоть какие-то примеры для работы с несколькими каналами и несколькими разными модулями одновременно.

27.07.2016 20:21:56
#19

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,287

Re: Работа с модулем LTR34-8.

В том примере вывод может идти на несколько каналов (в зависимости от того, сколько их разрешить), но с одной амплитудой.
Для разных амплитуд достаточно будет просто в ltr34_out_vals_sub завести не одну амплитуду а массив от элементов управления и там уже во внутреннем цикле (который по каналам) использовать нужный элемент из массива амплитуд.
Также в премере ltr34_autobuf_pulse выводятся сигналы разных амплитуд на разные каналы.
По поводу же разных модулей, то с каждым модулем работа идет абсолютно независимо, поэтому по сути просто вся логика просто дублируется один в один нужное кол-во раз, только номер слота соответственно должен изменяться (т.е. весь пример можно оформить как SubVI ).

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск