KnigaRead.com/
KnigaRead.com » Научные и научно-популярные книги » Радиотехника » Патрик Гёлль - Как превратить персональный компьютер в измерительный комплекс

Патрик Гёлль - Как превратить персональный компьютер в измерительный комплекс

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Патрик Гёлль, "Как превратить персональный компьютер в измерительный комплекс" бесплатно, без регистрации.
Перейти на страницу:

Верхняя часть таблицы («Параметры сбора данных» и «Параметры канала») соответствует тем настройкам, которые необходимо провести до начала работы. Все остальные этапы относятся к обработке результатов, а значит, их установка может быть проведена по окончании процесса измерений. Можно задать вид отчетов и в самом начале, если заранее известно, какой результат надо получить. Естественно, это необходимо сделать и при выводе отчета непосредственно в процессе измерений.

Надо четко представлять, что на этапе сбора информации в файл записываются «сырые» данные, не имеющие размерности. Это просто двоичные числа, например, в интервале от 0 до 255 при использовании 8-разрядного АЦП ADC 10. Этот поток данных называется «каналом», и ему должно быть присвоено имя. В приведенных примерах выбрано имя «ADC10». Разумеется, несколько каналов могут существовать одновременно — например, при работе с многоканальным АЦП, таким как ADC 11.

Среди всех видов отчетов, которые программа PICOLOG может извлекать из «сырых» данных, записанных в файле, самым употребимым будет, без сомнения, кривая изменения параметра в зависимости от времени (т. е. то, что выдает обычный ленточный регистратор). Именно такой отчет приведен в табл. 5.1.

Хотя вертикальную ось шкалы можно градуировать в двоичных кодах АЦП, гораздо более интересно провести их преобразование в единицы, соответствующие реальным величинам (например, напряжение от 0 до +5 В). Значит, надо определить имя параметра (здесь: «Напряжение») и указать программе математическую зависимость, связывающую информационные данные в «канале» и сам параметр. В данном случае это очень просто: зависимость линейная, смещение отсутствует (нулевой код на выходе АЦП соответствует О В на входе), а коэффициент преобразования составляет 5 В на 255 МЗР, или 0,01961 В/МЗР. После этого надо определить представление кривой «Y = F(t)» (рис. 5.5), но можно также запросить и табличное представление, образец которого приведен на рис. 5.6.



Рис 5.5. Пример графического отчета



Рис. 5.6. Пример отчета в виде таблицы


Сначала можно присвоить графику имя, которое будет отражено на бумаге в виде заголовка; впрочем, это необязательно. Затем надо градуировать оси, соблюдая размерности и единицы, выбранные на предыдущих этапах. По оси X, например, следует обеспечить максимальное значение 60000, если требуется произвести запись в течение одной минуты, с временной шкалой, проградуированной в миллисекундах (неважно, с каким интервалом проводились измерения — каждые десять или сто миллисекунд). По оси Y градуирование провести проще — достаточно объявить максимальное значение параметра, соответствующее полной шкале АЦП.

Позволительно также выводить в отчете информацию лишь о части измеряемого интервала, указав параметры «X мин.» и «X макс.», ограничивающие интересующий участок. Теоретически возможно сделать то же самое и для величин, откладываемых по оси Y, но тогда ухудшается разрешение. Поэтому лучше предварительно масштабировать сигнал, если его уровень не достигает величины +5 В. После вывода на экран и, возможно, после коррекции того или иного параметра вывода можно произвести распечатку полученных отчетов. Несколько примеров, приведенных здесь, дают представление о точности и четкости, которые достигаются даже на простом принтере с девятью иголками и с 8-разрядным АЦП.

Рис. 5.7 представляет пример распечатки в режиме низкого разрешения и альбомной ориентации, а рис. 5.8 — пример распечатки в режиме высокого разрешения и книжной ориентации.



Рис. 5.7. Распечатка с низким разрешением



Рис. 5.8. Распечатка с высоким разрешением


Приведенная на графиках экспонента отображает процесс разряда конденсатора емкостью 10 мкФ, заряженного до напряжения 5 В, через резистор сопротивлением 1 МОм.

Другой интересный случай — обработка файла, содержащего числовые значения, специализированными программами для получения высококачественной графики. Это могут быть как распространенные пакеты деловой графики, так и пакеты, предназначенные для научных исследований. Так, график, изображенный на рис. 5.9, был построен при помощи программы SigmaPlot, разработанной компанией SPSS Science, с использованием короткой записи сигнала, полученного от функционального генератора.



Рис. 5.9. Результат обработки данных специализированной программой


ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЧАСТНОГО ПРИМЕНЕНИЯ

Этот раздел можно назвать главным во всей книге: именно в нем рассказывается, как решать практически любые задачи, связанные со сбором данных при низких частотах дискретизации. Модульная структура нижеприведенных программ на языке BASIC или языке TurboPASCAL позволяет адаптировать их к новым задачам, изменяя лишь несколько строк.

На рис. 5.10 представлена структура, по которой будут строиться готовые к работе приложения.



Рис. 5.10. Общая структура прикладных программ, рассматриваемых в книге


В начале программы находится драйвер, соответствующий выбранному АЦП — либо готовому, либо собранному самостоятельно по описанию, которое приведено в этой книге. Каждый драйвер был написан в соответствии со спецификациями, представленными изготовителями используемых компонентов, причем особое внимание уделялось временным диаграммам протоколов связи. Драйверы можно рассматривать как ПО, поставляемое «под ключ», но допустимо также модифицировать в самых разных целях.

Первый блок каждого драйвера (строки 10–90) проводит инициализацию последовательного или параллельного порта, используемого для связи, и обеспечивает подачу напряжения питания на подключенный к нему АЦП. Блок заканчивается командой GOTO 200, передающей управление собственно прикладной программе (строки 200–290). Эта программа универсальна, она зависит только от выполняемой задачи, но ни в коей мере — от применяемого АЦП. Поэтому заменить драйвер при смене АЦП (например, при переходе от 8-разрядного к 12-разрядному) очень просто.

Прикладная программа может сама обращаться ко второму блоку драйвера (строки 100–190) настолько часто, насколько требуется. Эта часть драйвера отвечает за выполнение одного — и только одного — аналого-цифрового преобразования и за размещение результата (величины напряжения в диапазоне от 0 до 5 В) в переменной D. Только прикладная программа определяет, с какой скоростью будут проводиться преобразования, надо ли комбинировать полученные значения перед выводом результата и каков будет способ обработки результата (цифровое табло, построение кривой, запись на диск, включение сигнала и т. п.).

Если не хватит места между строками 200 и 290 программы, можно поместить оператор GOTO в строке 290, что позволит продолжать работу, например, со строки 2000. Еще одна зарезервированная область, начиная со строки 300, предназначена для операторов вывода графики. Блок между строками 300 и 490 отведен для операторов инициализации экрана (выбор графического режима, построение координатной сетки, определение цветов и т. п.) Процедура вывода результатов на экран начинается со строки 500. Именно прикладная программа (строки 200–290) будет в нужный момент вызывать графическую подпрограмму командой GOSUB 500.

Очевидно, что понадобится использовать графические процедуры, предназначенные для каждого из экранных режимов (CGA, VGA и т. п.), хотя режим CGA, например, без проблем (и даже с некоторыми преимуществами) поддерживается всеми современными графическими платами.


Драйверы для 8-разрядных АЦП

На сервере www.dmk.ru содержатся драйверы для четырех 8-разрядных АЦП:

• АЦП АDС 10 компании PICO Technology;

• версия АЦП на базе TLC 549 (рис. 4.1, 4.3);

• версия АЦП на базе МАХ 1243 (рис. 4.6);

• версия АЦП на базе TLC 549 (рис. 4.13, 4.14).

Заметим, что хотя АЦП ADC 10 и собран на базе TLC 549, он требует особого драйвера, так как подключается к параллельному порту. Вполне логично, что версия драйвера для ADC 10 на языке BASIC называется ADC10.BAS.


10 REM — ADC 10 —

20 KEY OFF: CLS

30 B=&H378: REM LPT1:

40 N=8: REM число разрядов

50 OUT В, 2

60 FOR T=0 TO 100: NEXT T

70 OUT B,254

80 FOR T=0 TO 500: NEXT T

90 GOTO 200

100 OUT B,252: D=0: REM получение данных

110 FOR F=0 TO N-1

120 OUT B,253

130 E=INP(B+1) AND 128

140 OUT B,252

150 IF E=0 THEN D=D+2^(N-1-F)

160 NEXT F

170 D=5*D/(2^N-1)

180 OUT B,2: RETURN

190 REM (c) 1997 Patrick GUEULLE


Шестнадцатеричная величина 378 в строке 30 предполагает, что ADC 10 подключен к параллельному порту LPT1. Чтобы подключить ADC 10 к порту LPT2 (если таковой имеется), надо заменить эту величину на 278 или на любую другую величину, соответствующую установкам BIOS используемого компьютера.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*