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


Проблема с L 783

Вы не вошли.

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

trader
10.06.2006 15:36:32
#1

Гость

Проблема с L 783

Даннные с каналов АЦП записываются в большой буфер ПЭВМ, однако от туда невозможно выделить данные по определенному каналу АЦП, как же это сделать....?

12.06.2006 20:05:23
#2

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

Re: Проблема с L 783

там покадрово они лежат...

trader
14.06.2006 19:59:44
#3

Гость

Re: Проблема с L 783

То есть один кадр - одна запись с определенного канала.....?

killich
15.06.2006 21:20:46
#4

Гость

Re: Проблема с L 783

Вот смотри, есть у тебя 4 активных канала. Ну припаял ты к этому разъему 4 кабеля и с каждого идет сигнал. За один опрос берется 4 этих канала и получается для каждого одно число - итого 4 числа. они записываются в буфер 1,2,3,4 - 1,2,3,4 - 1,2,3,4 - 1,2,3,4 - 1,2,3,4 и т.д.
Эти 4 числа и есть тот самый кадр. если нужны данные только из одного канала, то берешь 1 число и далее с шагом в 4. Т.о. получишь цифры для каждого отдельного канала.
Я сегодня первый день только программировал для L-card - у меня получилось. Думаю у тебя тоже получиться. Вроде я все верно понял.

killich
15.06.2006 21:59:48
#5

Гость

Re: Проблема с L 783

// после подключения библиотек
// создаешь поток с именем out в файл data.txt
// если файла нет, то он будет создан
   
ofstream out( "data.txt" );
int Z; // счетчик цикла

.
.
.
.
   
//.... тут main и прочее ....

// Установка параметров
//====================================
   ADC_PAR ap; // создание структуры с параметрами

....

   ap.t1.SynchroType = 3;  // тип синхронизации
   ap.t1.SynchroSensitivity = 0; // вид синхронизации
   ap.t1.SynchroMode = 0; // режим синхронизации

   ap.t1.AdChannel = 0; // канал, по которому выполняется синхронизация
   ap.t1.AdPorog = 0; // уровень синхронизации

   ap.t1.NCh = 4; // количество опрашиваемых каналов
   ap.t1.Chn[0] = 0x0; // массив с номерами каналов
   ap.t1.Chn[1] = 0x1; // описывает порядок опроса каналов
   ap.t1.Chn[2] = 0x2;
   ap.t1.Chn[3] = 0x3;
//====================================

.....

// кое что получишь если после этого...
   while(!complete)
   {
      cout << *sync; // *sync - разыменованный указатель, фактически число
      Sleep(20);
   }
//напишешь это...
// Z - смещение относительно начало указателя data
// плюс каждый раз добавки к смещению 0,1,2,3

for ( Z = 0; Z < sizeOfBuffer ; Z+=4 )
    {
    out << *(data+Z) << "/t"
    << *(data+(Z+1)) << "/t"
    << *(data+(Z+2)) << "/t"
    << *(data+(Z+3)) << "/n";
    }
// ... завершение проги
   
// в файле data.txt, в каждой строке, через табуляцию будет по четыре числа
// получившиеся столбики можно пихнуть в MS EXEL и построить графики!!!
КОД НЕ ОТЛАЖЕН! МОЖ ГДЕ И НЕ ВЕРНО! Тока что сам от балды написал.
но у меня примерно так и работает.