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


L-783 (снять напряжение)

Вы не вошли.

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

Вадим
06.07.2009 09:18:03
#1

Гость

L-783 (снять напряжение)

Доброе время суток уважаемые модераторы сайта lcard. У меня такой вопрос: могу ли я снять напряжение с ацп используя функцию GetWord_DM, и если да, то что в ней задавать в качестве адреса переменной. Карта L-783. Заранее спасибо за ответ.

06.07.2009 09:55:13
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: L-783 (снять напряжение)

чтобы снять значение АЦП после загрузки надо выполнить последовательность команд типа такой:
(см plx.cpp в исходниках lcomp)

   if(PutWord_DM(L_ADC_CHANNEL_PLX, (USHORT)ap->Chn[0])) return L_ERROR;
   if(SendCommand(cmADC_SAMPLE_PLX)) return L_ERROR;
   if(GetWord_DM(L_ADC_SAMPLE_PLX, &data)) return L_ERROR;

Вадим
06.07.2009 12:55:50
#3

Гость

Re: L-783 (снять напряжение)

Правильно ли я понимаю, что для снятия напряжения (подаваемого с источника питания) мне понадобиться в структуре ASYNC_PAR указать s_Type=L_ASYNC_ADC_INP. а чтобы указать, что я подаю его с 2 канала прописать Cnh[1].
Просто эти вопросы возникают из-за того что в data функции GetWord_DM() при подаче напряжения от 0 до 5В значение одно и тоже 65250 (логическая единица), а при подаче выше 5В оно становится 102, в чём может быть корень проблемы?

06.07.2009 14:08:11
#4

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: L-783 (снять напряжение)

Есле говорить в терминах IoAsync
в Chn[0] указать логический канал.
в Data[0] - будет значение, которое надо  привести к типу short, тк оно знаковое...
те sample = (SHORT)Data[0];

Вадим
06.07.2009 15:11:22
#5

Гость

Re: L-783 (снять напряжение)

т.е. конечный код будет таким:

    cout << "Get IUnknown pointer" << endl;
      CallCreateInstance("lcomp.dll");
       LUnknown* pIUnknown = CreateInstance(slot);
       if(pIUnknown == NULL)
    {
        cout << "CallCreateInstance failed" << endl;
        return 1;
    }
    IDaqLDevice* pI;
    HRESULT hr = pIUnknown->QueryInterface(IID_ILDEV,(void**)&pI);
    if(!SUCCEEDED(hr))
    {
        cout << "Get IDaqLDevice failed" << endl;
        return 1;
    }
   
    pIUnknown->Release();
   
    pI->OpenLDevice();
   
    pI->LoadBios("l783");

    pI->PlataTest();

    pI->GetSlotParam(&sl);

    pI->ReadPlataDescr(&pd);


    ASYNC_PAR pp;
    pp.s_Type = L_ASYNC_ADC_INP;
    pp.Chn[0]=0x0;
    pI->IoAsync(&pp);
    short sample;
    sample =short(pp.Data[0]);

Вадим
06.07.2009 15:12:35
#6

Гость

Re: L-783 (снять напряжение)

?

06.07.2009 16:05:30
#7

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: L-783 (снять напряжение)

да.