|
|
проблема с АЦП Е14-440
при потоковом сборе данных с одного канала (при различных частотах дискретизации АЦП) и записи в файл. Иногда случайно (не периодически) в файле записываются значение кода вначале два отчета по –19000 далее нули. Я правильно понимаю макс код (8000 до –8000) АЦП работает вместе с ЦАП может цап влиять на работу ацп.
|
|
- Инженер-электронщик
- Откуда: "Л Кард"
- Здесь с 21.04.2014
- Сообщений: 4,597
|
Re: проблема с АЦП Е14-440
1. Сообщите серийный номер изделия.
2. При сборе данных только с АЦП подобные сбои проявляются?
|
|
|
Re: проблема с АЦП Е14-440
1.серийный номер 7С730696 Ревизия Е
2.При работе только с АЦП подобные глюки незамечены
|
|
- Инженер-электронщик
- Откуда: "Л Кард"
- Здесь с 26.05.2014
- Сообщений: 58
|
Re: проблема с АЦП Е14-440
1. Пожалуйста, подробно опишите параметры работы АЦП и ЦАП (для того, чтобы мы могли у себя воспроизвести ситуацию).
2. Сбойные отсчёты равны именно -19000 всегда, или на эту тему есть "вариации".
3. Как много нулевых отсчётов идет после сбоя и восстанавливается ли затем нормальный режим сбора, без перезагрузки модуля.
|
|
|
Re: проблема с АЦП Е14-440
1) Параметры АЦП
am.AdcFifoLength=12096;
am.InputMode = TTL_START_SYNC_E440;
am.ControlTable[0] = (WORD)(2 | (0x0 << 0));
am.AdcRate = 175.18 ;
am.InterKadrDelay =0.000 ;
Параметры ЦАП
dm.DacRate = 125.00 ;
dm.DacFifoLength = 4032;
2)от -18500 до -19000
3) далее только нулевые отчеты
мы проводим серию измерений (по 1 с длительностью)промежуток между измерениями разный. При каждом измерении мы заново запускаем модуль сбой происходит в начале измерения два отчета по -19000(оба значения одинаковы) и далее одни нули до конца измерения. Сбои происходят случайно.
|
|
|
Re: проблема с АЦП Е14-440
Уважаемый дмитрий это еще что. Я долгое время переписывался с разработчиками, но все бестолку. Дело в том, что у меня то же Е14-440, и там проявляються вообще серьезные глюки.
Например при увеличении значения параметра в функции ReadDATA происходит следующее, первые 64 отсчета как будто бы с прошлого сбора, то есть это данные но 64 и 65 отсчет отличаються в корне, ступенькой. Если дальше продолжить увеличения этого параметра, то происходили зануления данных в произвольных местах буффера. Причем все было сделанно по правелом, то есть все всему четно, и все не превышает предела и не меньше меньшего. В добавок эта ситуация четко завистит от компьютера, то есть чем компьютер мощнее тем больший значения параметра можно указать. Под параметром еметься ввиду количество читаемых отсчетов. Что сомг то рассказал. Вот такие бывают глюки. До сих пор не исправил. Причем даже поверграф бывает глючить, что уж говорить о моей программе.
|
|
- Сотрудник "Л Кард"
- Здесь с 24.04.2014
- Сообщений: 1,494
|
Re: проблема с АЦП Е14-440
Дмитрий:
1. Означают ли Ваши слова "заново запускаем модуль" полную перезагрузку модуля (т.е. загрузку LBIOS)?
2. ЦАП также перезапускается при каждом новом измерении (как и АЦП)?
Chip:
Я же Вам в своё время писал, что "можно сделать почти однозначный вывод - Ваш модуль неисправен". Такого не бывает, чтобы у Вас модуль не жил ни на одном компьютере, а у нас ситуация с точностью до наоборот - модуль живёт на всех доступных нам компьютерах (как молодых, так и старых). Т.ч. присылайте его к нам (можно через «Сектор-Т») - будем лечить.
|
|
|
Re: проблема с АЦП Е14-440
1.да 2. да Привожу начало программы
// проверим версию используемой DLL библиотеки
if(GetDllVersion() != LC_CURRENT_VERSION) { printf(" Dll Version Error!!!"); }
// получим указательна интерфейс модуля
pE440 = static_cast<ILE440 *>(CreateInstance("e440"));
if(pE440 == NULL) { printf(" Module Interface --> Bad"); }
// попробуем обнаружить какой-нибудь модуль в нулевом виртуальном слоте
if(!pE440->InitLDevice(0)) { printf(" InitLDevice() --> Bad"); }
// прочитаем название модуля в нулевом виртуальном слоте
if(!pE440->GetModuleName(ModuleName)) { printf(" GetModuleName() --> Bad"); }
// проверим, что это 'E-440'
if(strcmp(ModuleName, "E440")) { printf(" The module is not 'E-440'"); }
// код LBIOS'а возьмём из соответствующего ресурса штатной DLL библиотеки
if(!pE440->LOAD_LBIOS(/*"E440.bio"*/)) { printf(" LOAD_LBIOS() --> Bad"); }
// проверим загрузку модуля
if(!pE440->MODULE_TEST()) { printf(" MODULE_TEST() --> Bad"); }
// получим версию загруженного LBIOS
if(!pE440->GET_LBIOS_VERSION(&LbiosVersion)) { printf(" GET_LBIOS_VERSION() --> Bad"); }
// теперь проверим версию загруженного LBIOS
if(LbiosVersion != LC_CURRENT_VERSION) { printf(" LBIOS Version --> Error!!!"); }
// обязательно проинициализируем поле size структуры MODULE_DESCR_E440
md.size = sizeof(MODULE_DESCR_E440);
// получим информацию из ППЗУ модуля
if(!pE440->GET_MODULE_DESCR(&md)) { printf(" GET_MODULE_DESCR() --> Bad"); }
// проверим есть ли на модуле ЦАП
if(md.IsDacPresented == false) { printf(" DAC is absent on this module E-440!"); }
// обязательно проинициализируем поле size структуры ADC_PARS_E440
am.size = sizeof(ADC_PARS_E440);
// прочитаем текущие параметры работы АЦП
if(!pE440->GET_CUR_ADC_PARS(&am)) { pE440->ReleaseLDevice(); printf(" GET_CUR_ADC_PARS() --> Bad"); }
// обязательно проинициализируем поле size структуры DAC_PARS_E440
dm.size = sizeof(DAC_PARS_E440);
// получим параметры работы ЦАП
if(!pE440->GET_CUR_DAC_PARS(&dm)) { printf(" GET_CUR_DAC_PARS --> Bad"); }
|
|
- Инженер-электронщик
- Откуда: "Л Кард"
- Здесь с 26.05.2014
- Сообщений: 58
|
Re: проблема с АЦП Е14-440
Уважаемый Дмитрий. Мы воспроизвели, описанную Вами ситуацию у себя. Модуль работал совершенно стабильно, никаких сбойных или не имеющих права существования данных мы не зафиксировали. Могу предположить только неисправность вашего модуля - привозите в ремонт. Для полной уверенности пришлите Вашу программу с исходным текстом, запустим у себя, попробуем зафиксировать эффект.
|