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

Форум

Вы не вошли.

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

#1 Техническая поддержка » Как проверить доступность E14-440? » 20.09.2024 20:34:49

asve79
Ответов: 0

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

Подскажите пожалуйста: как корректно определять доступность АЦП?
Проблема:
- Включаем АЦП: запускаем приложение: АЦП нашлось, запустился сбор данных путем перебора значений выводов:
==

   for (int i=0; i<(toChannel-fromChannel+1); i++){
      ansyncPar.Chn[0] = (i+fromChannel) | (gain << 6) | 0x20; 
      status = pI->IoAsync(&ansyncPar);
      if (status!= L_SUCCESS){
         this->logger->AddLog("e14440::GetState ADC error %lu\n", status);
         this->Close();
      }
      *(arr+i) = (short)ansyncPar.Data[0];
   }

==
Если в этот момент я выдерну USB, то сбор данных "продолжится", ошибка не определяется.

#2 Re: Техническая поддержка » Помогите разобраться с логикой программирования частоты сбора данных » 04.12.2022 23:57:20

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

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

#3 Техническая поддержка » Помогите разобраться с логикой программирования частоты сбора данных » 03.12.2022 22:52:39

asve79
Ответов: 4

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

Помогите пожалуйста разобраться с логикой программирования параметров частоты сбора данных.
Имею: 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с, вижу что ловится всего несколько импульсов, часть пропускается.

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

#4 Re: Техническая поддержка » Помогите пожалуйста разобраться с установкой уровня выходов ЦАП » 09.11.2022 09:58:27

И так, для тех кто столкнется с тем, на что наступил я.
В E14-400 ЦАП 12 бит. т е 0x0000 - 0x0FFF
Диапазон -5 - +5 В
Первые 11 бит это диапазон 0-5В
12-й бит это признак отрицательного значения (0x0800)
В явном виде в документации этого не нашел (с теми, кто уверен что этого писать не надо т к "само-собой разумеется" я не согласен. Документация к коммерческому продукту должна быть очевидна и включать все мелочи, это экономит время разработки). Оставляю свой опыт здесь.

#5 Re: Техническая поддержка » Сборка под gcc в windows » 07.11.2022 23:32:29

И так, оставлю комментарий для тех, кто пойдет по моим стопам.
С проблемой разобрался, gcc тут непричем.
Основные положения:
- Стоит обратить внимание что в примерах SDK АЦП работает в дифференциальном режиме. На это стоит обратить внимание при отладке, особенно если вы подключаете сигнал к общей земле и используете однополюсной режим; Я долго не мог понять что происходит, почему одни сигнал нормальные а другие хрен знает какие, пока в сотый раз не перечитал структуру настройки каналов в инструкции и не обратил внимание в 'L-Graph I' на галочку в верхнем углу, переключающую режим.
- Установка задержки между кадрами. В инструкции ничего не нашел по этому поводу. Наверное для разработчиков которые "в теме" это само-собой разумеющийся параметр. Для мена он таковым не является. Вот ссылка где доходчиво про это написано: https://studfile.net/preview/420362/
- Лучше все-таки заземлять неиспользуемые выводы. Если этого не сделать, незадействованные выводы будут фонить, если заходите выводить графики на один экран могут быть сюрпризы.
- Если получили отрицательные числа X, то перевести их в отчеты нужно по по формуле 0xFFFF-X. - Установлено методом научного тыка.

Пожалуй это ключевые моменты, не понимая которые меня затормозили.

Из не решенного вопроса на текущий момент вижу вопрос с переводом отсчетов в Вольты.
Также почему-то вылетает по сегментации ф-ция из примера:
==
         if(pI) pI->CloseLDevice();
         if(pI) pI->Release(); <- Вот тут вылетает. Странно, буду с этим разбираться.
==

В общем есть над сем работать.
Спасибо за внимание.

#6 Техническая поддержка » Сборка под gcc в windows » 27.10.2022 00:25:28

asve79
Ответов: 1

Все доброго времени суток!

Подскажите, не сталкивался ли кто-нибудь с подобной проблемой:

Есть сигнал поданный на вход АЦП (14-440).
screen1.png

Если открыть lcomp для windows (l7xx.osc) то в окне это выглядит вот так
screen2.png

Но как бы ладно, тут еще есть варианты пофильтровать разобраться

Далее я пересобрал на gcc пример lcomp (l7xx.tst) под консоль, получил файл data.dat, загрузил его в тотже lgraph и получил такую картинку:
screen3.png

Примерно такую же картину я получаю в своем приложении.
Тут явно что-то не то. Герцовку менял, все остальные параметры зашитые в примере не трогал. Собираю под 32-х битную версию...

Из технических деталей даже не знаю что еще приложить.

Подскажите пожалуйста, может кто сталкивался или у вас будут мысли хоть в какое направление копать?

#7 Техническая поддержка » Помогите пожалуйста разобраться с установкой уровня выходов ЦАП » 16.10.2022 17:53:47

asve79
Ответов: 1

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

Помогите пожалуйста разобраться с записью в ЦАП.
Использую пример:

==
   ASYNC_PAR pp;
   pp.s_Type = L_ASYNC_DAC_OUT;
   pp.Mode = port; //0 или 1, зависит от номера порта
   pp.Data[0] = value; //Значение
   pI->IoAsync(&pp);
==

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

Контакты

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

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

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

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