Система сбора данных от низкоуровневых датчиков напряжения MD155

Ред. 1.3

26.07.05

1. Введение.

В данном документе приводятся основные характеристики, прин­ципы функционирования и программирования системы сбора данных MD155, называемой в дальнейшем устройством.

 

2. Назначение, состав и принцип действия устройства

Устройство предназначено для преобразования в цифровой код сигналов от низкоуровневых датчиков напряжения (термопары, термометры сопротивления, тензометрические мосты и т.п.) по 8 коммутируемым каналам, а также для ввода и вывода дискретных сигналов с уровнями 5В КМОП логики.

Блок-схема устройства приведена на рис.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис.1 Блок-схема устройства

 

Основным элементом устройства, определяющим его метрологические характеристики, является микросхема сигма-дельта АЦП AD7731 (Analog Devices).  Для уменьшения влияния помех на точность аналого-цифрового преобразования в устройстве применена полная гальваническая развязка аналоговой и цифровой частей, а также приемопередатчиков интерфейсных

сигналов RS-232.. Максимальное напряжение между гальванически развязанными блоками не должно превосходить 1000В.

В устройстве имеется возможность ввода- вывода дискретных сигналов с уровнями 5В КМОП логики. Общее количество таких сигналов равно 4. При помощи перемычек на плате устройства можно любой из этих сигналов назначить как входным, так и выходным.

Связь устройства с ПЭВМ может осуществляться по одному из двух интерфейсов – RS-232 или USB (USB-1 или USB-2) . Тип интерфейса определяется положением перемычки на печатной плате устройства на момент включения питания. Установленная перемычка обеспечивает работу через интерфейс RS-232, снятая – через интерфейс USB.

Питание устройства может осуществляться либо от шины USB либо от внешнего стабилизированного источника питания с выходным напряжением 5В±5%. При подключении внешнего источника питания цепь питания от шины USB автоматически разрывается.

 

*******************************************************

Внимание!

Устройство не имеет защиты от изменения полярности питающего напряжения!

*******************************************************

 

 

 

3.Основные технические характеристики устройства

 

Количество каналов для подключения сигналов дифференциальных датчиков напряжения...................... ...................8

Разрядность кода результата преобразования...............16/24

Количество входов-выходов дискретных сигналов................4

Диапазон измеряемых напряжений..............от ±20мВ до ±1,28В

Частота выдачи кодов..........................от 50 до 6400 Гц

Входной ток......................................не более 5 нА

Питание устройства (от USB или внешнего источника)....+5В/0,2А

 

 

Более подробную информацию о технических характеристиках устройства можно получить из прилагаемого файла AD7731.pdf.

 

 

 

 

 

 

 

 

 

 

 

4. Подключение к устройству датчиков сигналов, управляющих сигналов и питания.

 

Датчики аналоговых сигналов подключаются к устройству через 62-контактный разъем DBH-62 (розетка в устройстве). Назначение контактов этого разъема приведено в табл.1.

                                                                                                                                                        Таблица 1

Канал

контакт

Цепь

 

 

 

0

1

Дифференциальный вход (+)

23

Дифференциальный вход (-)

44

Опорное напряжение +2.5В

22

+5В питания мостового датчика

43

Обратная связь +5В питания мостового датчика

24

питания мостового датчика

2

Обратная связь 0В питания мостового датчика

45

общий

 

 

 

1

 

4

Дифференциальный вход (+)

26

Дифференциальный вход (-)

46

Опорное напряжение +2.5В

25

+5В питания мостового датчика

3

Обратная связь +5В питания мостового датчика

27

питания мостового датчика

5

Обратная связь 0В питания мостового датчика

47

общий

 

 

 

 

2

6

Дифференциальный вход (+)

8

Дифференциальный вход (-)

48

Опорное напряжение +2.5В

28

+5В питания мостового датчика

49

Обратная связь +5В питания мостового датчика

29

питания мостового датчика

7

Обратная связь 0В питания мостового датчика

50

общий

 

 

 

3

 

9

Дифференциальный вход (+)

31

Дифференциальный вход (-)

52

Опорное напряжение +2.5В

30

+5В питания мостового датчика

51

Обратная связь +5В питания мостового датчика

32

питания мостового датчика

10

Обратная связь 0В питания мостового датчика

53

общий

 

 

 

4

12

Дифференциальный вход (+)

34

Дифференциальный вход (-)

54

Опорное напряжение +2.5В

33

+5В питания мостового датчика

11

Обратная связь +5В питания мостового датчика

35

питания мостового датчика

13

Обратная связь 0В питания мостового датчика

55

общий

 

 

 

5

14

Дифференциальный вход (+)

16

Дифференциальный вход (-)

56

Опорное напряжение +2.5В

36

+5В питания мостового датчика

57

Обратная связь +5В питания мостового датчика

37

питания мостового датчика

15

Обратная связь 0В питания мостового датчика

58

общий

 

 

 

6

17

Дифференциальный вход (+)

39

Дифференциальный вход (-)

60

Опорное напряжение +2.5В

38

+5В питания мостового датчика

59

Обратная связь +5В питания мостового датчика

40

питания мостового датчика

18

Обратная связь 0В питания мостового датчика

 

 

 

7

19

Дифференциальный вход (+)

21

Дифференциальный вход (-)

61

Опорное напряжение +2.5В

41

+5В питания мостового датчика

62

Обратная связь +5В питания мостового датчика

42

питания мостового датчика

20

Обратная связь 0В питания мостового датчика

 

 

Все входы устройства являются дифференциальными. Уровень синфазного сигнала на входах (+) и (-) может изменяться относительно потенциала 0 питания мостового датчика в пределах от 1.2В до 4.05В, однако следует помнить, что АЦП измеряет разность напряжений между входами (+) и (-).

 

Если выход датчика не является дифференциальным (пример такого датчика - термопара), то схема его подключения может быть такой, какая представлена на рис.2. В этой схеме максимально допустимый диапазон изменения сигнала датчика составляет ±1.28В.

 

 


Дифференциальный вход (+)

Дифференциальный вход (-)

Опорное напряжение +2.5В

 

Рис.2 Схема подключения недифференциальных датчиков к устройству

Если выход датчика дифференциальный (пример такого датчика – тензометрический мост), то схема его подключения может быть такой, какая представлена на рис.3. На этом рисунке для питания мостового датчика используется 4х-проводная схема. Максимально допустимый ток питания датчика не должен превышать 12.5 мА

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис.3 Схема подключения к устройству тензометрического      моста.

 

На рис.4 Приведена схема подключения к устройству датчика температуры AD22100 (Analog Devices). Этот датчик не имеет дифференциального выхода и требует для работы питающего напряжения +5В. Так как вход (-) устройства подключен к опорному напряжению +2.5В, диапазон измеряемых напряжений для входа (+) устройства составляет ±1.28В относительно входа (-) или (1.22-3.78)В относительно 0 питания. Такой диапазон измеряемых напряжений для данного типа датчика соответствует измеряемой температуре от -6°С до +106°С.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис.4 Схема подключения к устройству датчика температуры AD22100.

 

Аналогично предыдущей схеме к устройству может быть подключен датчик влажности типа HIH-3610 (HONEYWELL).

 

С датчиками и приемниками  дискретных сигналов 5В КМОП логики устройство соединяется через малогабаритный разъем типа BM10S-SRSS-TB (розетка в устройстве).  Назначение контактов этого разъема приведено в табл. 2.

                                           

                                            Таблица 2

контакт

цепь

1

Сигнал ввода/вывода (0 канал)

2

Общий

3

Сигнал ввода/вывода (1 канал)

4

Общий

5

Сигнал ввода/вывода (2 канал)

6

Общий

7

Сигнал ввода/вывода (3 канал)

8

Общий

9

Питание +5В

10

Общий

В исходном состоянии устройства каналы 0 и 2 настроены на выход, каналы 1 и 3 – на вход.

 

 

 

С COM портом PC устройство соединяется кабелем, схема которого приведена на рис.5.

 

 

Контакт разъема DBS-9F

Цепь

 

 

--------------------

--------------------

--------------------

Контакт разъема DBS-9M

Цепь

2

TxD

2

RxD

3

RxD

3

TxD

5

общий

5

общий

 

Рис.5 Схема соединительного кабеля между устройством и COM портом PC.

 

Для питания устройства необходимо напряжение +5В±5% при потребляемом токе не более 200мА. Это напряжение может поступать либо от прилагаемого к устройству сетевого источника питания, либо от компьютера через стандартный USB-кабель.

 

 

 

 

5.Управление работой устройства

 

Управление работой устройства может осуществляться как через интерфейс RS232C, так и через интерфейс USB (USB1.1 или USB2.0). Тип интерфейса определяется положением перемычки на печатной плате устройства на момент включения питания. Установленная перемычка обеспечивает работу через интерфейс RS-232, снятая – через интерфейс USB.

 

5.1 Управление работой устройства через интерфейс USB

 

Управление устройством через интерфейс USB реализовано путем использования библиотек функций  VCdll_md155n.dll и BBdll_md155n.dll, поставляемых вместе с устройством.  Библиотека VCdll_md155n.dll предназначена для использования в среде Visual C++ и LabView; библиотека BBdll_md155n.dll для среды Borland Builder  C++, Delphi и др.

В состав библиотек входят функции верхнего и нижнего уровня. 

 

 

5.1.1 Функции верхнего уровня

 

int  readDMD155Ezpl (unsigned long* code, double* data , char* flag ,int channel,int freq,int chop,int skip,int diapazon,int bit24,int calibr);

 

 

int readmMD155Ezpl(double* buf_code,double* buff,long buff_size,long* number_read_bytes,char* flag,int channel,int freq,int chop,int skip,int diapazon,int bit24,int calibr,int fifo_over);

 

init init_md155Ez(int channel,int diapason,int bit24,int calibr,int chop,int skip,char* flag);

 

 

   Для использования функций верхнего уровня не требуется специальных знаний о структуре и принципе работы устройства. Достаточно только задавать необходимые параметры измерений. Результат работы функций  - напряжения в мВ.

 

5.1.1.1 Параметры функций верхнего уровня

 

Перед непосредственным рассмотрением функций  целесообразно рассмотреть повторяющиеся параметры, для исключения дублирования в описании.

 

 

int channel – номер канала по которому производится измерение. Этот аргумент может принимать значение от 0 до 7.

 

int freq – частота выдачи кодов результатов измерений. В зависимости от значений аргументов chop и skip. Этот аргумент может принимать значения, приведенные в табл.3.

 

 

 

                                              Таблица 3

Значение CHP

Значение SKIP

Диапазон частоты выдачи кодов результатов измерений,

Гц

0

0

152,58   ...   2083,33

1

0

50,86   ...   1388,88

0

1

152,58   ...   7812,5

1

1

50,86    ...   5208,33

 

При выборе частоты дискретизации необходимо учитывать особенности взаимодействия устройства  с компьютером через интерфейс USB. В табл.4 приведены ориентировочные данные о максимально возможном количестве измерений в секунду для получения результатов в реальном масштабе времени (для 24-х разрядного преобразования) при использовании функции одиночного считывания результата – readDMD155EZpl и функции считывания массива результатов измерений –readmMD155Ezpl в зависимости от варианта интерфейса USB.

 

                                                  Таблица 4

Вариант USB

ReadDMD155

ReadmMD155

USB1

100

2000

USB2

1000

20000

 

 

int chop -аргумент, определяющий параметры цифрового фильтра устройства и, соответственно, вид и параметры его частотной характеристики .

           

int skip - аргумент, определяющий параметры цифрового фильтра устройства и, соответственно, вид и параметры его частотной характеристики .

Ниже приведены таблицы из описания AD7731.PDF. По этим таблицам можно определить параметры  chop, skip, freq.

Значения параметров chop, skip и freq полностью определяют вид и параметры частотной характеристики измерительного тракта, а также значение шума (Output Noise), приведенного ко входу и, соответственно, эффективное число двоичных разрядов результата измерения (Peak-to-Peak). Для правильного выбора этих параметров следует внимательно ознакомиться с приведенными ниже таблицами из описания микросхемы AD7731(файл AD7731).

 

 

 

 

 

 

int diapazon - допустимый диапазон изменения дифференциального входного сигнала. Этот аргумент может принимать значения от 1 до 7. В табл.5 приведено соответствие значения аргумента и допустимого диапазона изменения дифференциального входного сигнала.

                                              Таблица 5

Значение аргумента diapazon

Мин. входное напряжение в mV

Макс. входное напряжение в mV.

1

-20

+20

2

-40

+40

3

-80

+80

4

-160

+160

5

-320

+320

6

-640

+640

7

-1280

+1280

 

 

int bit24 - разрядность результата преобразования. Если

bit24=1 – результат преобразования представлен 24-х разрядным двоичным кодом, если bit24=0 – 16-разрядным.

 

int calibr - тип калибровки канала. Если calibr=1 – перед началом цикла измерений в устройстве выполняется  системная автокалибровка нуля, если calibr=0 – перед началом цикла измерений в устройстве выполняется  внутренняя автокалибровка.

         !!!!!!!!ВНИМАНИЕ!!!!!!!!!!

При выполнении системной автокалибровки нуля, значение сигнала на входе принимается за нулевой уровень. Это напряжение не должно превышать ±5% от установленного на момент автокалибровки диапазона измерения. Сигнал на входе устройства в данном случае не должен изменяться в течение всего времени автокалибровки!

char* flag - код ошибки таймаута. Ошибка таймаута может возникать, например, в случае, когда нет готовности АЦП в следствие неправильно заданной частоты дискретизации, а также в некоторых других случаях,  и сигнализирует о нарушениях в работе устройства.  Код 0 – соответствует отсутствию ошибки таймаута, не  нулевое значение определяет код ошибки.

 

 

 Функции возвращают значение 1, если взаимодействие с устройством произошло корректно(устройство подключено), и 0, если устройство не найдено.

  Таким образом, взаимодействие с устройством произошло корректно, если функция возвращает 1 и флаг таймаута равен 0.

 

Следует также отметить, что при обращении к функции readDMD155EZpl(считывание единичного измерения) или readmMD155Ezpl(считывание массива измерений) непосредственно перед измерением происходит калибровка канала,  если калибровка для данного канала не производилась или изменился один из аргументов: (diapazon, chop, skip, calibr, bit24). Калибровка – это длительный процесс (около 2с.), который включает “калибровку нуля”,”калибровку масштаба” и “системную калибровку нуля”, если параметр calibr=1. Поэтому результат первого измерения по неоткалиброванному каналу получается с задержкой на время калибровки. Последующие измерения по откалиброванному каналу с неизменными аргументами: (diapazon,chop,skip,calibr,bit24) происходят с заданной частотой дискретизации.

 

     5.1.1.2 ФУНКЦИЯ int readDMD155Ezpl

 

Обращение к функции readDMD155Ezpl имеет вид:

 

int  readDMD155Ezpl(unsigned long* code, double* data , char* flag ,

               int channel,int freq,int chop,int skip,int diapazon,int bit24,int calibr);

 

Эта функция предназначена для проведения измерения  по заданному каналу, с заданной частотой дискретизации,  указанием  параметров chop и skip, в указанном диапазоне входных напряжений с обозначенной разрядностью преобразования и типом калибровки. При выполнении этой функции результат каждого измерения передается отдельной посылкой.

Ниже приведено описание аргументов функции.

 unsigned long* code – код результата измерения. Для 16-разрядного преобразования принимает значения от 0 до 65536, где код 0 соответствует максимальному по модулю отрицательному напряжению выбранного диапазона, код 65536 - максимальному положительному напряжению выбранного диапазона, код 32768 - нулевому значению напряжения. Для 24-разрядного преобразования код результата измерения принимает значения от 0 до 65536*256, где код 0 соответствует максимальному по модулю отрицательному напряжению выбранного диапазона, код 65536*256 - максимальному положительному напряжению выбранного диапазона, код 32768*256 - нулевому значению напряжения.

 

double* data- результат измерения в виде напряжения в мВ. Принимает значения от минимального до  максимального значения напряжения диапазона. Например, для диапазона 7 значения могут быть от -1.280 до +1.280mV.

Описание других  параметров функции приведено в 5.1.1.1

 Взаимодействие с устройством произошло корректно, если функция возвращает 1 и флаг таймаута равен 0.

 

 

 

 

Пример использования функции readDMD155Ezpl

 

   Пусть нужно циклически производить измерения по трем каналам - 0,1 и 2. При этом для 0 канала, диапазон измерения сигнала должен составлять от –20 mV до +20mV, для  1 канала - от –320 mV до +320 mV, для 2 канала – от –1280 mV до 1280 mV. Преобразование по всем каналам производится с использованием chop =1, skip=0 с частотой преобразования 500Hz, разрядность кода результата преобразования - 24. Используется внутренняя автокалибровка нуля(calibr=0). Программа на языке С для этого случая может иметь следующий вид:

 

 

 

unsigned long code,chan0_code[1000],chan1_code[1000],chah2_code[1000];

double value,chan0_value[1000],chan1_value[1000],chan2_value[1000];

 

for(int i=0; i<1000; i++)

{

            if(!(readDMD155Ezpl(&code,&value,&flag,0,500,1,0,1,1,0))

 

                                    AfxMessageBox( “        md155 not found          ” );

            else  if(flag)    AfxMessageBox(“             time out error             ”);

                   else

                      { chan0_code[i]=code; chan0_value[i]=value; }

            if(!(readDMD155Ezpl(&code,&value,&flag,1,500,1,0,5,1,0))

 

                                   AfxMessageBox(“         md155 not found           ”);

            else  if(flag)   AfxMessageBox(“             time out error             ”);

                    else

                       {  chan1_code[i]=code; chan1_value[i]=value; }

            if(!(readDMD155Ezpl(&code,&value,&flag,2,500,1,0,7,1,0))

 

                                   AfxMessageBox( “        md155 not found           ”);

            else  if(flag)   AfxMessageBox( “        time out error                ”);

        else {  chan2_code[i]=code; chan2_value[i]=value; }

}

 

    5.1.1.3 ФУНКЦИЯ int readmMD155Ezpl

 

Обращение к функции readmMD155Ezpl имеет вид:

 

 

int readmMD155Ezpl(double* buff, long buff_size , long* number_conv_words ,char* flag,int channel,int freq,int chop,int skip,int diapazon,int bit24,int calibr);

 

Эта функция предназначена для получения массива результатов измерений  по заданному каналу, с заданной частотой дискретизации,  указанием  параметров chop и skip, в указанном диапазоне входных напряжений с обозначенной разрядностью преобразования и типом калибровки.

Ниже приведено описание аргументов функции.

 

double* buff – указатель на массив результатов  измерений в виде чисел с плавающей точкой. Значения элементов массива находятся в пределах заданного диапазона измерений. Например, для диапазона 1 от –20.0 до +20.0.

 

long buff_size - размер массива результатов измерений.

 

long* number_conv_words - число фактических результатов измерений. Принимает значения от buff_size-60 до buff_size. Это связано с тем, что значение buff_size может быть не кратно размеру внутреннего промежуточного буфера устройства.

 

Описание других  параметров функции приведено в 5.1.1.1

Взаимодействие с устройством произошло корректно, если функция возвращает 1 и флаг таймаута равен 0.

 

 

 

Пример использования функции readmMD155Ezpl

 

   Пусть нужно циклически производить измерения по трем каналам - 0,1 и 2. После подключения каждого канала необходимо произвести 100 измерений и среднее значение результатов этих измерений записать в массив. При этом для 0 канала, диапазон измерения сигнала должен составлять от –20 mV до +20mV, для  1 канала - от –320 mV до +320 mV, для 2 канала – от –1280 mV до 1280 mV. Преобразование по всем каналам производится с использованием chop=1, skip=0 с частотой преобразования 500Hz, разрядность кода результата преобразования - 24. Используется внутренняя автокалибровка нуля(calibr=0). Программа на языке С для этого случая может иметь следующий вид:

 

 

 

double value,chan0_value[1000],chan1_value[1000],chan2_value[1000];

for(int i=0; i<1000; i++)

{

double temp[100];

long number_conv_words;

            if((readm,MD155Ezpl(temp0,100,&number_conv_words,&flag,0,500,1,0,1,1,0))

                                   MessageBox(“    md155 not found   ”);

            else  if(flag)   MessageBox(“    time out error         ”);

  else

      {

            for(int j=0,double k=0; j<number_conv_words; j++ )  k+=temp[i];        

            chan0_value[i]=k/number_conv_words; }

      }

if(!(readm,MD155Ezpl(temp0,100,&number_conv_words,&flag,1,500,1,0,5,1,0))

                                                AfxMessageBox( “   md155 not found    ”);

            else  if(flag)                AfxMessageBox(“       time out error       ”);

  else

     {

        for(int j=0,double k=0; j<number_conv_words; j++ ) k+=temp[i];

        chan1_value[i]=k/number_conv_words;

     }

if(!(readm,MD155Ezpl(temp2,100,&number_conv_words,&flag,2,500,1,0,7,1,0))

                                                AfxMessageBox( “    md155 not found     ”);

            else  if(flag)                AfxMessageBox( “         time out error      ”);

  else

      {

         for(int j=0,double k=0; j<number_conv_words; j++ ) k+=temp[i];               

         chan0_value[i]=k/number_conv_words;

     }

 

 }

 

 

 

 

 

 

 

        5.1.1.4 ФУНКЦИЯ int init_md155Ez

 

Обращение к функции init_md155Ez имеет вид:

 

 

 

int init_md155Ez (int chanel,int diapason,int bit24,int calibr,int chop,int skip,char* flag);

 

Эта функция вызывается из функций readDMD155Ezpl и  readmMD155Ezpl при необходимости  калибровки канала. Это происходит в случае, если канал не откалиброван или изменился один из параметров, влияющих на калибровку (diapazon,chop,skip,calibr,bit24). Eсли возникла необходимость перекалибровки канала при неизменных условиях (diapazon,chop,skip,calibr,bit24), то это также можно сделать   с помощью функции init_md155Ez.

 

Описание других  параметров функции приведено в 5.1.1.1

 

  Взаимодействие с устройством произошло корректно, если функция возвращает 1 и флаг таймаута равен 0.

 

5.1.2 Библиотека функций нижнего уровня для управления устройством.

 

В состав библиотеки функций нижнего уровня, предназначенных для управления устройством, входят следующие функции:

Функция общий сброс устройства - resetMD155Ez(void);

Функции для управления блоком ввода/вывода дискретных сигналов:

int in_port_MD155Ezp(BYTE* dat,char* flag);

int out_port_MD155Ez(BYTE out_date,char *flag);

int set_dir_portMD155Ez(char dir,char *flag);

     

          Функция для управления аналоговым коммутатором

int setchanelMD155Ez (char channel,char *flag);

 

          Функции для записи/чтения регистров AD7731.

На основе этих   функций построены функции  верхнего уровня. Программирование с использованием этих функций осуществляется на регистровом уровне. Для этого нужно хорошо ознакомиться с описанием AD7731.PDF

 

int writebMD155Ezp (char address,BYTE MMSB_b,BYTE MSB_b,BYTE LSB_b,char* flag);

int readbMD155Ezp (char address,BYTE* MMSB_b,BYTE* MSB_b,BYTE* LSB_b, char* flag);

  Функция для чтения заданного количества измерений по установленным в регистрах AD7731 параметрам

 

readmMD155Ez(BYTE* buff,long buff_size,long* number_read_bytes,char* flag);

 

 

 

 

5.1.2.1 ФУНКЦИЯ int resetMD155Ez(void)

 

Обращение к функции resetMD155Ez(void) имеет вид:

 

int resetMD155Ez(void);

 

Вызов этой функции приводит к сбросу устройства MD155 в исходное состояние.

После выполнения этой функции микроконтроллер устройства переходит в режим ожидания новой команды независимо от предыдущего состояния. Функция «Сброс» позволяет вывести устройство из состояния ожидания готовности данных от АЦП в случае неправильного задания режима его работы.

 

 

5.1.2.2 ФУНКЦИЯ int in_port_MD155Ezp(BYTE* dat,char* flag);

BYTE* dat - байт, в котором значимыми являются только те разряды, которым соответствуют нули в коде конфигурации входов/выходов дискретных сигналов. Все остальные разряды в передаваемом устройством байте содержат нули.

!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!

Следует иметь в виду, что устройство не анализирует правильность задания конфигурации, так как положение перемычек на печатной плате им не считывается.

 

Функция возвращает значение 1, если взаимодействие с устройством произошло корректно (устройство подключено), и 0. если устройство не найдено. Таким образом, взаимодействие с устройством произошло корректно, если функция возвращает 1, и флаг таймаута равен 0.

 

 

5.1.2.3 ФУНКЦИЯ int out_port_MD155Ez(BYTE out_date,char *flag);

 

BYTE out_date – код, который определяет состояние дискретных каналов, настроенных на вывод (в коде конфигурации этим каналам соответствуют единицы). Значения всех остальных разрядов второго байта устройством игнорируются.

!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!

Следует иметь в виду, что устройство не анализирует правильность задания конфигурации, так как положение перемычек на печатной плате им не считывается.

Функция возвращает значение 1, если взаимодействие с устройством произошло корректно (устройство подключено), и 0, если устройство не найдено. Таким образом, взаимодействие с устройством произошло корректно, если функция возвращает 1, и флаг таймаута равен 0.

 

 

 

5.1.2.4 ФУНКЦИЯ int set_dir_portMD155Ez(char dir,char *flag);

 

BYTE dir– код, который определяет предварительно установленную перемычками на плате устройства конфигурацию входов/выходов дискретных сигналов. Во втором байте значимыми являются только 4 младших разряда, значения остальных разрядов этого байта устройством игнорируются. Единица в каком-либо из 4-х младших разрядов означает, что соответствующий дискретный канал настроен на вывод из устройства, ноль – что соответствующий дискретный канал настроен на ввод в устройство.

!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!

Следует иметь в виду, что устройство не анализирует правильность задания конфигурации, так как положение перемычек на печатной плате им не считывается.

Функция возвращает значение 1, если взаимодействие с устройством произошло корректно (устройство подключено), и 0, если устройство не найдено. Таким образом, взаимодействие с устройством произошло корректно, если функция возвращает 1, и флаг таймаута равен 0.

 

 

 

5.4.2 ФУНКЦИЯ int setchanelMD155Ez

 

Обращение к функции int resetMD155Ez(void) имеет вид:

 

        int setchanelMD155Ez (char channel,char *flag);

 

При вызове этой функции происходит подключение на вход АЦП одного из восьми каналов.

Ниже приведено описание аргументов функции.

char channel – номер канала, по которому производится измерение. Этот аргумент может принимать значение от 0 до 7.

 

 

Функция возвращает значение 1, если взаимодействие с устройством произошло корректно,(устройство подключено), и 0 если устройство не найдено. Таким образом, взаимодействие с устройством произошло корректно, если функция возвращает 1, и флаг таймаута равен 0.

 

 

5.4.3 ФУНКЦИЯ int writebMD155Ezp

 

 

Обращение к функции int writebMD155Ezp имеет вид:

 

 

int writebMD155Ezp (char address, BYTE MMSB_b , BYTE MSB_b , BYTE LSB_b , char* flag);

 

Функция позволяет осуществить запись информации в один из регистров микросхемы AD7731 (см. описание в файле AD7731.PDF).

Ниже приведено описание аргументов функции.

 

char address - адрес регистра, в который осуществляется запись.

 

BYTE MMSB_b - старший байт 24-разрядного регистра. Если регистр 16-битный, данный аргумент игнорируется.

 

BYTE MSB_b - средний байт 24-разрядного регистра или старший байт 16-разрядного.

 

BYTE LSB_b младший байт регистра.

 

взаимодействие с устройством произошло корректно, если функция возвращает 1, и флаг таймаута равен 0.

 

5.4.4 ФУНКЦИЯ int readbMD155Ezp

 

 

Обращение к функции int int readbMD155Ezp имеет вид:

 

int readbMD155Ezp (char address,BYTE* MMSB_b,BYTE* MSB_b,BYTE* LSB_b, char* flag);

 

Функция позволяет осуществить чтение информации  из регистров микросхемы AD7731(см. описание в файле AD7731.PDF).

Ниже приведено описание аргументов функции.

 

char address - адрес регистра, из которого осуществляется чтение.

 

BYTE* MMSB_b - адрес переменной, в которую будет записан старший байт 24-разрядного  регистра. Если регистр 16-разрядный, данный аргумент игнорируется.

 

BYTE* MSB_b- адрес переменной, в которую будет записан средний байт 24-разрядного регистра или старший байт 16-разрядного.

 

BYTE* LSB_b адрес переменной, в которую будет записан младший байт регистра.

 

 взаимодействие с устройством произошло корректно, если функция возвращает 1, и флаг таймаута равен 0.

 

 

 

5.4.5 ФУНКЦИЯ readmMD155Ez

 

 

Обращение к функции int readmMD155Ez имеет вид:

 

readmMD155Ez(BYTE* buff, long buff_size , long* number_read_bytes ,char* flag);

 

Функция позволяет прочитать регистр данных микросхемы AD7731 заданное количество раз и поместить эти данные в маcсив.

Ниже приведено описание аргументов функции.

 

BYTE* buff – указатель на массив результатов измерений.

 

long buff_size - размер массива результатов измерений в байтах.

 

long* number_read_bytes- фактическое число полученных байтов. Может принимать значения  от buff_size-60 до buff_size. Это связано с тем, что значение buff_size может быть не кратным размеру внутреннего буфера. Размер внутреннего буфера зависит от разрядности результата преобразования.  

 

взаимодействие с устройством произошло корректно, если функция возвращает 1 и флаг таймаута равен 0.

 

 

5.5.Использование функций в среде Visual C++

 

 

Для использования функций в среде Visual C++ необходимо файлы wdll_md155n.dll, VCdll_md155.lib ,VCdll_md155.h разместить в директории рабочего проекта.

 

 

 

 

 

 В *.cpp файлах, в которых используются функции, добавить строку #include VCdll_md155.h”.

                                     

 

 

Файл VCdll_md155.lib  добавить к файлам проекта.

 

 

 

 

 

5.6.Использование функций в среде Borland Builder C++,Delphi .

 

Для использования функций в среде Borland Builder C++, Delphi, необходимо файл BBdll_md155n.dll разместить в директории рабочего проекта.

Рассмотрим  использование функций в среде Delphi(метод статической загрузки).

 

 

Implementation

 

function resetMD155Ez(): integer; cdecl; external 'BBdll_md155n.dll';

function setchanelMD155Ez(a:BYTE;b:Pchar): integer; cdecl; external 'BBdll_md155n.dll';

 

procedure TForm1.Button1Click(Sender: TObject);

var value:char;

begin

 

resetMD155Ez();

setchanelMD155Ez(1,@value);

 

end;

 

end.

 

 

5.2 Управление работой устройства через интерфейс  RS232C

 

 

Обмен управляющей информацией и данными между устройством и РС через интерфейс RS-232 выполняется посылками, имеющими следующий формат:

-         38400 бит/сек;

-         8 бит данных;

-         1 стоп-бит;

-         без контрольного бита.

Управление работой устройства осуществляется путем прямой записи данных во внутренние регистры АЦП AD7731.  Для правильного программирования работы этого АЦП необходимо ознакомиться с подробными правилами его программирования, изложенными в файле AD7731.pdf. При этом программист должен иметь в виду, что в разряды CH2..CH0 регистра режима работы (mode register) всегда должен записываться код 100. Это связано с тем, что в устройстве используется внешний по отношению к микросхеме АЦП коммутатор каналов, выход которого постоянно подключен к 0 внутреннему дифференциальному каналу этой микросхемы. В разряды MR11..MR9 и MR7 этого же регистра всегда должен записываться код 0, так как функции, определяемые этими разрядами, не могут быть использованы устройством.

Команда, передаваемая устройству, может состоять из одного или двух байтов. Первый байт содержит код команды, второй байт (если он необходим)- код аргумента.

Ниже приведены все команды, на которые реагирует устройство.

 

Команда «СБРОС». Эта команда состоит из одного байта с кодом 0. По этой команде микроконтроллер устройства переходит в режим ожидания новой команды независимо от предыдущего состояния. Команда «Сброс» позволяет вывести устройство из состояния ожидания готовности данных от АЦП в случае неправильного задания режима его работы.

Команда имеет следующий формат:

 

 

 

 

 

 


Команда «УСТАНОВИТЬ КАНАЛ». Команда состоит из двух байтов. Первый байт содержит код 1, второй – код канала, подключающего измеряемый сигнал. Допустимыми значениями для второго байта являются 0..7. Все остальные коды передаются по модулю 8.

Команда имеет следующий формат:

 

 

 

 

 

 

 

 

 

 

 

 

 


Команда «ЗАПИСАТЬ БАЙТ». Команда состоит из двух байтов. Первый байт содержит код 2, второй – байт, который необходимо передать в один из внутренних регистров АЦП AD7731. Номер этого регистра должен быть подготовлен предыдущими командами.

Команда имеет следующий формат:

 

 

 

 

 

 

 

 

 

 

 

 


Команда «ПРОЧИТАТЬ БАЙТ». Команда состоит из одного байта с кодом 3. В ответ на эту команду устройство передает 1 байт из подготовленного предыдущими командами внутреннего регистра АЦП AD7731.

Команда имеет следующий формат:

 

 

 

 

 


В ответ на эту команду устройство передает 1 байт из подготовленного предыдущими действиями регистра АЦП AD7731.

 

Команда «ПРОЧИТАТЬ СЛОВО С ОЖИДАНИЕМ ГОТОВНОСТИ ДАННЫХ». Команда состоит из одного байта с кодом 4. В ответ на эту команду устройство ожидает низкого уровня сигнала готовности данных в АЦП AD7731 и затем передает 2 байта из внутреннего регистра данных АЦП AD7731.

Программисту следует иметь в виду, что предшествующими командами устройство должно быть настроено на считывание из регистра данных 16-разрядных слов.

Команда имеет следующий формат:

 

 

 

 

 

 


В ответ на эту команду устройство передает 2 байта из внутреннего регистра данных АЦП AD7731.

 

Команда «ПРОЧИТАТЬ ДЛИННОЕ СЛОВО С ОЖИДАНИЕМ ГОТОВНОСТИ ДАННЫХ». Команда состоит из одного байта с кодом 24(HEX). В ответ на эту команду устройство ожидает низкого уровня сигнала готовности данных в АЦП AD7731 и затем передает 3 байта из внутреннего регистра данных АЦП AD7731.

Программисту следует иметь в виду, что предшествующими командами устройство должно быть настроено на считывание из регистра данных 24х-разрядных слов.

 

Команда имеет следующий формат:

 

 

 

 

 


В ответ на эту команду устройство передает 3 байта из внутреннего регистра данных АЦП AD7731.

 

Команда «УСТАНОВИТЬ КОНФИГУРАЦИЮ ВХОДОВ/ВЫХОДОВ ДИСКРЕТНЫХ СИГНАЛОВ». Команда состоит из двух байтов. Первый байт содержит код 6, второй – код, который определяет предварительно установленную перемычками на плате устройства конфигурацию входов/выходов дискретных сигналов. Во втором байте значимыми являются только 4 младших разряда, значения остальных разрядов этого байта устройством игнорируются. Единица в каком-либо из 4-х младших разрядов означает, что соответствующий дискретный канал настроен на вывод из устройства, ноль – что соответствующий дискретный канал настроен на ввод в устройство.

!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!

Следует иметь в виду, что устройство не анализирует правильность задания конфигурации, так как положение перемычек на печатной плате им не считывается.

 

 

 

 

 

 

 

Команда имеет следующий формат:

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Команда «ПРОЧИТАТЬ СОСТОЯНИЕ ДИСКРЕТНЫХ ВХОДОВ». Команда состоит из одного байта с кодом 7. В ответ на эту команду устройство передает один байт, в котором значимыми являются только те разряды, которым соответствуют нули в коде конфигурации входов/выходов дискретных сигналов. Все остальные разряды в передаваемом устройством байте содержат нули.

!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!

Следует иметь в виду, что устройство не анализирует правильность задания конфигурации, так как положение перемычек на печатной плате им не считывается.

 

Команда имеет следующий формат:

 

 

 

 

 


В ответ на эту команду устройство высылает байт, имеющий следующий формат:

 

 

 

 

 

 

 

 

 

 


Команда «УСТАНОВИТЬ ВЫХОДЫ ДИСКРЕТНЫХ СИГНАЛОВ». Команда состоит из двух байтов. Первый байт содержит код 8, второй – код, который определяет состояние дискретных каналов настроенных на вывод (в коде конфигурации этим каналам соответствуют единицы). Значения всех остальных разрядов второго байта устройством игнорируются.

!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!

Следует иметь в виду, что устройство не анализирует правильность задания конфигурации, так как положение перемычек на печатной плате им не считывается.

 

Команда имеет следующий формат:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Полный список команд, на которые реагирует устройство при управлении через интерфейс RS232C представлен в табл.6.

 

                                             

                                               Таблица 6

Название команды

Код команды (hex)

Кол-во байтов, передаваемых в устр-во

Кол-во байтов, принимаемых из устр-ва

СБРОС

0

1

0

УСТАНОВИТЬ КАНАЛ

1

2

0

ЗАПИСАТЬ БАЙТ

2

2

0

ПРОЧИТАТЬ БАЙТ

3

1

1

ПРОЧИТАТЬ СЛОВО С ОЖИДАНИЕМ ГОТОВНОСТИ ДАННЫХ

4

1

2

ПРОЧИТАТЬ ДЛИННОЕ СЛОВО С ОЖИДАНИЕМ ГОТОВНОСТИ ДАННЫХ

24

1

3

УСТАНОВИТЬ КОНФИГУРАЦИЮ ВХОДОВ/ВЫХОДОВ ДИСКРЕТНЫХ СИГНАЛОВ

6

2

0

ПРОЧИТАТЬ СОСТОЯНИЕ ДИСКРЕТНЫХ ВХОДОВ

7

1

1

УСТАНОВИТЬ ВЫХОДЫ ДИСКРЕТНЫХ СИГНАЛОВ

8

2

0

 

Все команды с другими кодами устройство игнорирует.

 

 

 

6.Пример программы для работы с устройством на языке PASCAL с управлением через COM-port

 

 

 

program MD155T1;

{ тест системы сбора данных MD155 в режиме обмена

через COMport}

USES Crt, dos, GRAPH;

const

base=$2F8;                              {адрес COM порта 2}

{base=$3F8;                             {адрес COM порта 1}

label 1,2,3,4,5,6;

var

ch,rn,t,t1,t2,tmp:     byte;

f,sf,ttt,tt:           word;

r:                  integer;

q:                     real;

{---------------------------------------------------------} Procedure COMPUT(i:byte);{запись байта через COMport}

begin

  Port[base]:=i;

  while(Port[base+5] and $20)=0 do ;

end;

{---------------------------------------------------------}

 Function COMGET:byte;{чтение байта через COMport}

var

  i: word;

begin

  i:=0;

  while (Port[base+5] and $1)=0 do

  begin

    i:=i+1;

    if i=000 then

    begin

      GotoXY(60,23);

      {Writeln(' Time_Out ComGet ');}

      exit;

    end;

  end;

  COMGET:=Port[base];

end;

{---------------------------------------------------------} Procedure Init_COM;

{инициализация  COMport}

var

  i,j: byte;

Begin

  Port[base+3]:=$83;{8bit, 1stop, no check}

{Port[base]:=6; {19200 bit/s}

{Port[base]:=2; {57600 bit/s} Port[base]:=1; {115200 bit/s} Port[base+1]:=0; Port[base+3]:=$1B; Port[base+1]:=$0; {no interrupt} for j:=1 to 16 do

  begin

   i:=port[base];

   delay(1);

  end;

end;

{---------------------------------------------------------} Procedure MD155wr_ch(i:byte);

{запись номера подключаемого канала устройства MD155}

begin

COMPUT(1);

COMPUT(i);

end;

{---------------------------------------------------------} Procedure MD155wr_byte(i:byte);

{запись байта i в АЦП AD7731 устройства MD155}

begin

COMPUT(2);

COMPUT(i);

end;

{---------------------------------------------------------} Function MD155rd_byte: byte;

{чтение байта из АЦП AD7731 устройства MD155 без ожидания

признака готовности}

begin

COMPUT(3);

MD155rd_byte:=COMGET;

end;

 

{---------------------------------------------------------} Function MD155rd_byte_rdy: byte;

{чтение байта из АЦП AD7731 устройства MD155 с ожиданием

признака готовности данных}

begin

COMPUT(4);

MD155rd_byte_rdy:=COMGET;

end;

{---------------------------------------------------------} Procedure MD155rst;

{принудительный перевод устройства MD155 в режим ожидания новой команды через COMport без завершения ожидания окончания предыдущей команды} begin

COMPUT(0);

end;

{---------------------------------------------------------} Procedure MD155rst_adc;

{принудительный сброс интерфейсного блока АЦП AD7731 устройства MD155} var

i: byte;

begin

for i:=1 to 4 do MD155wr_byte($FF);

end;

{---------------------------------------------------------}

begin

clrscr;{очистка экрана}

Init_COM;{инициализация COM порта}

MD155rst;{принудительный перевод устройства MD155 в режим ожидания новой команды}

MD155rst_adc;{принудительный сброс интерфейсного блока АЦП AD7731 устройства MD155}

Write('номер канала для ввода данных (0..7): ');

read(ch);

ch:=ch and $7;

Writeln('код диапазона входных сигналов (1..7)');

Writeln('1 - +-20мВ');

Writeln('2 - +-40мВ'); Writeln('3 - +-80мВ'); Writeln('4 - +-160мВ'); Writeln('5 - +-320мВ'); Writeln('6 - +-640мВ'); Writeln('7 - +-1280мВ');

Write('код диапазона входных сигналов (1..7): ');

read(rn);

rn:=rn and $7;

{вычисление кванта результата измерения q в мВ для 16-разрЦП}tmp:=$1;

tmp:=tmp shl (7-rn); q:=1280/32768/(tmp);

Write('частота вывода данных (SKIP=0, CHP=1)(47..1280)[Гц]: '); read(f);

{вычисление константы sf для записи в АЦП MD7731} sf:=round(96000/f);

sf:=sf and $1FFF;

 

GoToXY(28,14);

Write('результат измерения');

GoToXY(20,24);

Write('для выхода из программы нажмите любую клавишу');

{---------------------------------------------------------}

{установка номера измерительного канала}

MD155wr_ch(ch);

{---------------------------------------------------------}

{запись информации в filter register AD7731}

MD155wr_byte($3);{запись в communication register}

tt:=(sf shl 4)+$4;{SKIP=0, CHP=1}

MD155wr_byte(Hi(tt));{запись старшего байта в filter

    register AD7731}

MD155wr_byte(Lo(tt));{запись младшего байта в filter

                                    register AD7731}

{---------------------------------------------------------}

{---------------------------------------------------------}

{запись информации в mode register AD7731} MD155wr_byte($2);{запись в communication register}

tt:=(rn shl 4)+$8004;

MD155wr_byte(Hi(tt));{запись старшего байта в mode

                               register AD7731} 

{запуск внутренней автокалибровки нуля}

MD155wr_byte(Lo(tt));{запись младшего байта в mode

                               register AD7731} delay(8000);{ожидание окончания автокалибровки}

{---------------------------------------------------------} {запуск внутренней автокалибровки масштаба}

{---------------------------------------------------------}

{запись информации в mode register AD7731} MD155wr_byte($2);{запись в communication register}

tt:=(rn shl 4)+$A004;

MD155wr_byte(Hi(tt));{запись старшего байта в mode

                               register AD7731} MD155wr_byte(Lo(tt));{запись младшего байта в mode

                               register AD7731} delay(8000);{ожидание окончания автокалибровки}

{---------------------------------------------------------} {запуск системной автокалибровки нуля}

{---------------------------------------------------------}

{запись информации в mode register AD7731} MD155wr_byte($2);{запись в communication register}

tt:=(rn shl 4)+$C004;

MD155wr_byte(Hi(tt));{запись старшего байта в mode

                               register AD7731} MD155wr_byte(Lo(tt));{запись младшего байта в mode

                               register AD7731} delay(4000);{ожидание окончания автокалибровки}

*)

{---------------------------------------------------------} {запуск основного режима работы АЦП}

{---------------------------------------------------------} {запись информации в mode register AD7731} MD155wr_byte($2);{запись в communication register}

tt:=(rn shl 4)+$2004;

MD155wr_byte(Hi(tt));{запись старшего байта в mode Register

                                                AD7731}

MD155wr_byte(Lo(tt));{запись младшего байта в mode

                               register AD7731}

{---------------------------------------------------------}

{ожидание флага готовности и чтение результата преобразования}

{---------------------------------------------------------}

{запись информации в mode register AD7731} 2:MD155wr_byte($11);{запись в communication register} t1:=MD155rd_byte_rdy;{чтение старшего байта из data register AD7731 по низкому уровню сигнала RDY в АЦП AD7731} t2:=MD155rd_byte;{чтение младшего байта из data register AD7731} r:=(t1 shl 8)+t2-32767;

GoToXY(33,15);

Write('        мВ');

GoToXY(33,15);

Write(r*q:8:4);

if not KeyPressed then goto 2;

end.

 

 

 

 

 

 

   6. Использование демонстрационных мониторов

   6.1 Монитор с использованием функций верхнего уровня

 

Этот демонстрационный монитор создан в среде Visual C++ с использованием библиотечных функций:

 

int readmMD155Ezpl(double* buf_code,double* buff,long

buff_size,long* number_read_bytes,char* flag,int channel,int freq,int chop,int skip,int diapazon,int bit24,int calibr,int fifo_over);

 

int init_md155Ez (int c

hannel,int diapason,int bit24,int calibr,int chop,int skip,char* flag);

 

 Монитор позволяет проводить измерения по одному из каналов в заданном диапазоне измерений с указанной частотой дискретизации. Можно указывать параметры цифрового фильтра chop и skip, разрядность преобразования bit24 и необходимость проведения системной калибровки нуля.

Пример:  измерения по нулевому  каналу  в диапазоне +/- 1280мВ с частотой дискретизации 1000 Hz, разрядность преобразования -24. Параметры chop=1, skip=0, без системной калибровки нуля. Отображение результатов измерений производится на графе монитора в режиме автомасштабирования после нажатия кнопки Read Date . Кроме того, данные будут автоматически записываться в файл, если нажата кнопка Save .

 

 

 

 

6.1 Монитор с использованием функций нижнего уровня

Этот демонстрационный монитор создан в среде Visual C++ с использованием библиотечных функций:

resetMD155Ez(void);

int in_port_MD155Ezp(BYTE* dat,char* flag);

int out_port_MD155Ez(BYTE out_date,char *flag);

int set_dir_portMD155Ez(char dir,char *flag);

 

int setchanelMD155Ez (char channel,char *flag);

int writebMD155Ezp (char address,BYTE MMSB_b,BYTE MSB_b,BYTE LSB_b,char* flag);

int readbMD155Ezp (char address,BYTE* MMSB_b,BYTE* MSB_b,BYTE* LSB_b, char* flag);

 

   Программирование устройства с использованием этих функций предполагает детальное знание прибора AD7731. Для этого нужно  ознакомиться с описанием AD7731.PDF. Данный монитор позволяет управлять устройством на регистровом уровне, что позволяет наиболее полно и гибко использовать все имеющиеся возможности прибора AD7731.

  Следует отметить, что управление регистром коммуникаций (communication register), через который  осуществляется адресация к  регистрам AD7731, скрыт от пользователя. Содержимое этого регистра автоматически формируется в процессе работы  функций readbMD155Ezp , writebMD155Ezp.

 

6.1.2 Руководство по использованию монитора

 

  Для записи информации в устройство нужно:

1.     Установить необходимые значения регистра/регистров;

2.     Отметить регистр/регистры, в которые посылаются данные.

3.1.Нажать кнопку Send .

3.      

Для чтения информации из устройства надо  отметить регистр/регистры - источники приема, нажать кнопку Read Reg .

 Для непрерывного чтения регистра данных с отображением данных на графике монитора, надо нажать кнопку Read Date .  При этом, если нажата кнопка Save , данные будут записываться в файл.

 

6.3 Монитор с использованием функций верхнего уровня

в среде LabView.

 

 

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

 

int  readDMD155Ezpl (unsigned long* code, double* data , char* flag ,int channel,int freq,int chop,int skip,int diapazon,int bit24,int calibr);

 

 

 

Монитор позволяет проводить измерения по трем каналам в заданном диапазоне измерений с указанной частотой дискретизации. Можно указывать параметры цифрового фильтра chop и skip, разрядность преобразования bit24 и необходимость проведения системной калибровки нуля.