Форум: Техническая поддержка

Тема: Помогите разобраться с логикой программирования частоты сбора данных

Вы не вошли.

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

03.12.2022 22:52:39
#1

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

Помогите разобраться с логикой программирования частоты сбора данных

Добрый вечер!

Помогите пожалуйста разобраться с логикой программирования параметров частоты сбора данных.
Имею: E14-400
К ней подключено, допустим 25 каналов. Для отладки подключен генератор импульсов каждый 200мс пеняющий статус порта 0/5В/0/5В/...
Цель: собирать измерения со всех 25 каналов в течении 3-х секунд с частотой 100 герц на канал.

Моя логика:
в 1 секунду нужно каждый канал измерить 100 раз. Т е я должен получить на выходе массив слов размеров: 25*3*100 =  7500. или по 300 слов на канал.
Т е получается за 3 секунды я должен получить 300 кадров по 25 каналов в каждом.

Смотрю в описание (lcomp):
=
E14-440/E14-140/E154
• dRate - частота опроса каналов в кадре в килогерцах;
• dKadr - интервал между кадрами в миллисекундах, фактически определяет скорость сбора данных;
==
Значение буфера пока не меняю, оставляю как в примере:
==
        adcPar.t1.FIFO = 1536;
         adcPar.t1.IrqStep = 1536;
         adcPar.t1.Pages = 16;
         adcPar.t1.IrqEna = 1;
         adcPar.t1.AdcEna = 1;
==
Дальше магия.
Как я понимаю: частоту dRate я задаю для измерений внутри кадра, хоть 1кГц, количеством же полученных кадров я управляю через  dKadr.
Т е чтобы на 1 секунду получить 100 кадров, я задаю dKadr = 10.

Но при таких параметрах измерение идет оочень долго.

Для отладки сделал генератор импульсов, который каждые 200мс устанавливает/сбрасывает напряжение на портах в 5В. Когда добиваюсь того, чтобы измерение шло 3с, вижу что ловится всего несколько импульсов, часть пропускается.

Подскажите, в чем ошибка моего понимания?

04.12.2022 11:55:12
#2

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

Re: Помогите разобраться с логикой программирования частоты сбора данных

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

Во-первых dRate у Вас должно быть не совсем любое. Каналы АЦП опрашиваются последовательно и АЦП должно успеть опросить все 25 каналов за кадр. Если у Вас частота АЦП 1КГц, т.е. время одного измерения занимает 1 мс, то 25 каналов будут опрошены за 25 мс, т.е. максимальная допустимая частота кадра (при нулевой задержке между кадрами) будут всего 40 Гц, а не нужная Вам 100 Гц. Т.е. dRate должна быть больше требуемой Вам частоты сбора кадра хотя бы в количество раз, равное числу опрашиваемых каналов.

Допустим Вы выбрали частоту 10 КГц ( dRate  = 10), тогда dKadr это дополнительная задержка от последнего отсчета предыдущего кадра до начала следующего, а не общий интервал сбора кадров. Для AdcRate 10 КГц время опроса 25 каналов будет 2.5 мс, если Вам нужна частота кадра 100 Гц, то общее время кадра должно быть 10 мс, т.е. дополнительно нужна задержка на 10 - 2.5 = 7.5 мс, т.е. dKadr = 7.5.

P.S.: устройства E14-400 нет, есть либо E14-440, либо E14-140.

04.12.2022 23:57:20
#3

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

Re: Помогите разобраться с логикой программирования частоты сбора данных

Добрый вечер!

Спасибо огромное за ответ!
Поправил алгоритм, результат стал быть похожим на правду.
По типу АЦП: сообщение я писал уже в ночи, опечатался, извините. Речь идет о Е14-440.
Еще одни вопрос:
dKadr я устанавливаю в 0 (при dRate=2.5), после иниализации беру значение частоты и задержки и вижу, что АЦП dKadr устанавливает в 0.4
==
23:15:20: Rate:              2.500000
23:15:20: Kadr:              0.400000
==
По какому принципу происходит этот пересчет? Это время переключения на новый кадр с канала 0?

05.12.2022 15:34:14
#4

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

Re: Помогите разобраться с логикой программирования частоты сбора данных

Немного ошибся в предыдущем ответе, интервал между  кадрами считается от выдачи последнего измерения в кадре до выдачи первого измерения следующего кадра, т.е. до конца первого измерения, а не до его начала. Таким образом, в него входит еще время преобразования первого измерения в кадре. В этом смысле минимальное значение dKadr = 1/Rate (в этом случае измерения идут подряд и время между последним измерением  и первым следующего аналогично времени между измерениями внутри кадра и соответствует времени преобразования АЦП).

05.12.2022 18:19:36
#5

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

Re: Помогите разобраться с логикой программирования частоты сбора данных

asve79:
Более подробно о  расчёте временнЫх параметров сбора данных можно посмотреть в п.3.4. "Формат кадра отсчетов" руководства программиста для библиотеки Lusbapi.

Контакты

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

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

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

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