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

Получение данных с каналов

Вы не вошли.

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

19.05.2021 11:23:24
#1

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

Получение данных с каналов

Добрый день, хочу получить данные с каналов попробовали эти программы: AdcKadr, почему то не считывает и во все, числа со всех каналов, просто уходят в отрицательное значение и все, а вот  AdcSample работает, но правда считывается только один канал, на второй он не реагирует хотя LGraph все видит и нормально анализирует, подключаем прям в соседний, предполагаю что ошибка кроется где то здесь, но не как могу понять:

while(!kbhit())
    {
        if(!pModule->ADC_SAMPLE(&AdcSample1, (WORD)(0x00 | (0x0 << 4) | (InputRangeIndex << 6)))) { printf("\n\n  ADC_SAMPLE(, 0) --> Bad\n");    break; }
        else if(!pModule->ADC_SAMPLE(&AdcSample2, (WORD)(0x01 | (0x1 << 4) | (InputRangeIndex << 6)))) { printf("\n\n  ADC_SAMPLE(, 1) --> Bad\n");    break; }

        printf(" AdcSample Data (ADC code):     %5d     %5d\r", AdcSample1, AdcSample2);
    }

Модуль E14-140M.

19.05.2021 12:46:58
#2

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

Re: Получение данных с каналов

1. В штатном примере AdcKadr  сбор данных идёт с первых 4-х каналов АЦП. Все каналы  сконфигурированы по дифференциальной схеме подключения входных сигналов.
2. В штатном примере AdcSample  сбор данных идёт с первых 2-х каналов АЦП. Причём 1-ый канал использует  дифференциальное подключение входных сигналов, а 2-ой канал - просто аппаратно заземлён.
3. Чтобы более тщательно проанализировать Вашу ситуацию, нам необходимо получить от Вас как можно более полную информацию о схеме подключения сигналов к внешнему разъёму модуля E14-140M. Опишите, как можно подробнее, какой именно сигнал приходит на каждую из задействованных ножек внешнего разъёма.

19.05.2021 16:52:29
#3

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

Re: Получение данных с каналов

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

1. В штатном примере AdcKadr  сбор данных идёт с первых 4-х каналов АЦП. Все каналы  сконфигурированы по дифференциальной схеме подключения входных сигналов.
2. В штатном примере AdcSample  сбор данных идёт с первых 2-х каналов АЦП. Причём 1-ый канал использует  дифференциальное подключение входных сигналов, а 2-ой канал - просто аппаратно заземлён.
3. Чтобы более тщательно проанализировать Вашу ситуацию, нам необходимо получить от Вас как можно более полную информацию о схеме подключения сигналов к внешнему разъёму модуля E14-140M. Опишите, как можно подробнее, какой именно сигнал приходит на каждую из задействованных ножек внешнего разъёма.

Переговорил с инженером, в общем основываясь на этом документе: https://www.lcard.ru/download/e14-140_conn_examples.pdf страница 2 "Подключение к входу АЦП однофазного источника напряжения" в таблице пункт 1.1. Просто нужен метод чтобы отдельно значение с каждого входа в режиме 1.1 получить. Не инвертирующие входы х1 х2 х3..........

19.05.2021 18:36:46
#4

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

Re: Получение данных с каналов

1. Попробуйте задействовать немного переделанный штатный консольный пример  AdcKadr, в котором используется подключение с общей землей для первых 4-х каналов.
2. Не забудьте объединить ножки AGND(3) и GND32(21) на  внешнем аналоговом разъёме модуля. Тогда на ножки X1(37), X2(36), X3(35) и X4(34) можно подавать постоянные сигналы в диапазоне ±2.5 В.

20.05.2021 16:42:13
#5

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

Re: Получение данных с каналов

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

1. Попробуйте задействовать немного переделанный штатный консольный пример  AdcKadr, в котором используется подключение с общей землей для первых 4-х каналов.
2. Не забудьте объединить ножки AGND(3) и GND32(21) на  внешнем аналоговом разъёме модуля. Тогда на ножки X1(37), X2(36), X3(35) и X4(34) можно подавать постоянные сигналы в диапазоне ±2.5 В.

Да все заработало, спасибо вам огромное, я так понимаю что бы задействовать остальные порты нужно всего лишь менять данный показатель в коде:

#define CHANNELS_QUANTITY			(0x4)
20.05.2021 19:16:11
#6

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

Re: Получение данных с каналов

В данном примере AdcKadr   константа CHANNELS_QUANTITY задаёт  количество активных логических каналов в управляющей таблице ControlTable. Т.е. именно первые CHANNELS_QUANTITY каналов из управляющей таблицы будут последовательно задействованы модулем при сборе данных. В принципе в управляющей таблице можно сформировать произвольный набор логических каналов. Например, можно создать следующую управляющую таблицу:

ap.ControlTable[0] = (WORD)(5 | (1 << 0x5) | (InputRangeIndex << 0x6));
ap.ControlTable[1] = (WORD)(9 | (1 << 0x5) | (InputRangeIndex << 0x6));
ap.ControlTable[2] = (WORD)(7 | (1 << 0x5) | (InputRangeIndex << 0x6));
ap.ControlTable[3] = (WORD)(4 | (1 << 0x5) | (InputRangeIndex << 0x6));
ap.ControlTable[4] = (WORD)(1 | (1 << 0x5) | (InputRangeIndex << 0x6));
ap.ControlTable[5] = (WORD)(2 | (1 << 0x5) | (InputRangeIndex << 0x6));

Тогда при CHANNELS_QUANTITY равном 3 сбор будет последовательно осуществляться с первых трех логических  каналов, что соответствует опросу 6-ого, 10-ого и 8-ого каналов АЦП.
Если же CHANNELS_QUANTITY будет равен 6, то сбор будет последовательно осуществляться с первых шести логических  каналов, что соответствует опросу 6-ого, 10-ого, 8-ого, 5-ого, 2-ого и 3-его каналов АЦП.
Конечно в данном примере используется подключение с общей землей для всех каналов.
Подробнее про формат логического канала смотри п.3.2.3. "Логический номер канала АЦП" руководства программиста.
Подробнее про управляющую таблицу смотри п.3.4.Формат кадра отсчетов руководства программиста.

Контакты

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

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

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

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