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

Частота дискретизации LTR212

Вы не вошли.

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

Makcim
01.03.2018 15:14:13
#1

Гость

Частота дискретизации LTR212

Подскажите, пожалуйста, как изменить частоту выдачи данных модуля LTR212?
Независимо от значений полей структуры TLTR212 частота остается 150 Гц, и это подтверждается скоростью работы функции LTR212_Recv.
В частности, поле TLTR212.Fs ни на что не влияет, а других подходящих полей в структуре нет.

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

Скрытый текст
		local code=lib212.LTR212_Init(h())
		
		h().AcqMode = 0;		--режим 4 канала средней точности
		h().UseClb = 0;			--пользовательская калибровка не используется
		h().UseFabricClb = 1;	--использовать заводскую калибровку

		h().LChQnt = 4;			--4 логических канала, диапазоны -10..+10 мВ, полный мост
		h().LChTbl0 = lib212.LTR212_CreateLChannel2(1, 0, 0);
		h().LChTbl1 = lib212.LTR212_CreateLChannel2(2, 0, 0);
		h().LChTbl2 = lib212.LTR212_CreateLChannel2(3, 0, 0);
		h().LChTbl3 = lib212.LTR212_CreateLChannel2(4, 0, 0);

		h().filter_IIR = 0;			-- Программные фильтры отключены 
		h().filter_FIR = 0;
		h().filter_Decimation = 0;	--по умолчанию коэффициент децимации КИХ-фильтра – 0
		h().filter_TAP=0;			-- Порядок фильтра – 0

		h().REF = 1;				--опорное напряжение 5 В
		h().AC = 0;					--постоянное опорное напряжение
		h().Fs = 0;					--частота, Гц (150.15);
		
		local c=dev.config
		local code=lib212.LTR212_Open(h(), c.ltrd_ip, c.ltrd_port, c.ltrd_serial, c.ltrd_slot, dev.config.bios)
		
		local code=lib212.LTR212_SetADC(h())

		local code=lib212.LTR212_Start(h())
01.03.2018 17:54:53
#2

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

Re: Частота дискретизации LTR212

Частота выдачи данных зависит только от выбранного режима сбора данных и от применяемых программных фильтров. Подробнее смотри  руководство программиста на модуль LTR212. Например, п.3.1 "Структура описания модуля" и п.3.3 "Описание функций библиотеки Ltr212api" (функция LTR212_CalcFS()).
Так для указанных Вами параметров (4-канальный режим средней точности, программные фильтры отключены) частота сбора составит 7680.0 Гц.

Makcim
02.03.2018 06:38:05
#3

Гость

Re: Частота дискретизации LTR212

Тихомиров Сергей пишет:

Так для указанных Вами параметров (4-канальный режим средней точности, программные фильтры отключены) частота сбора составит 7680.0 Гц.

Проблема в том, что несмотря на это, LTR212_Recv работает ровно на частоте 150 Гц, то есть, например, на получение 1000 точек тратится 6.5 секунд вместо 130 миллисекунд.

02.03.2018 10:00:44
#4

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

Re: Частота дискретизации LTR212

Из кода не очень понятно, как реализован метод h() и что за класс lib212. У Вас точно h() возвращает описатель модуля по ссылке, а не копию значения, и присвоение меняет значение в оригинальном описателе? Т.е. если вывести h().AcqMode после присвоения, то он действительно станет равным 0?

150 Гц - это частота в режиме высокой точности (который выставляется по умолчанию) и такое впечатление, что настройки у Вас реально не применяются.

Makcim
02.03.2018 12:23:11
#5

Гость

Re: Частота дискретизации LTR212

Разобрался. Дело в калибровке.
LTR212_SetADC() возвращает ошибку "нельзя использовать заводскую калибровку", отключение заводской калибровки помогло.

Скрытый текст

Хотя непонятно, почему пользовательскую калибровку на средней точности и на 7680 Гц можно применять, а заводскую в принципе нельзя.
Неужели заводская калибровка состоит из полиномов 10-й степени, а пользовательская - линейная?

07.03.2018 17:02:45
#6

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

Re: Частота дискретизации LTR212

Четырехканальный режим средней точности модуля LTR212(M) предназначен для проведения измерений с максимальной частотой сбора данных и не предъявляет высоких требований по напряжению смещения нуля. Насколько я понял, непосредственно перед началом работы в таком режиме следует провести внутреннюю калибровку диапазона для всех выбранных каналов, используя функцию LTR212_Calibrate(). А в Вашей конфигурации режима средней точности следует дополнительно установить флажок UseClb (), а флажок  UseFabricClb сбросить.
Последовательность вызова функций смотри, например, п.2.2.2 "Типичная последовательность написания программы" в руководстве программиста на модуль LTR212.

Контакты

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

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

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

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