Патрик Гёлль - Как превратить персональный компьютер в измерительный комплекс
- Название:Как превратить персональный компьютер в измерительный комплекс
- Автор:
- Жанр:
- Издательство:ДМК
- Год:1999
- Город:Москва
- ISBN:5-89818-026-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Патрик Гёлль - Как превратить персональный компьютер в измерительный комплекс краткое содержание
Книга Патрика Гёлля «Как превратить персональный компьютер в измерительный комплекс» позволяет создать на базе IBM PC-совместимого персонального компьютера систему сбора и обработки информации о различных физических процессах. Тем самым ПК превращается в мощный измерительный прибор. Область применения виртуального измерительного комплекса шире, чем у обычного измерительного прибора, поскольку виртуальный комплекс можно перепрограммировать и оптимизировать для конкретных задач.
В книге рассказывается о создании системы сбора и обработки данных, состоящей из датчиков физических величин (тока, давления, температуры и т. д.), интерфейсного устройства (как правило, аналого-цифрового преобразователя) и программных средств, позволяющих обрабатывать и интерпретировать собранную информацию. Схемы и рекомендации, приведенные в книге, позволяют собрать все рассмотренные устройства самостоятельно. Программное обеспечение и драйверы устройств, находящиеся на сервере www.dmk.ru, позволяют сразу перейти к разработке информационной системы, даже если у вас нет практических навыков в области радиоэлектроники. Современные технические и программные решения, предлагаемые автором книги, надежны и проверены на практике. Они, без сомнения, будут полезны всем, кто разрабатывает дешевые и экономичные системы сбора и обработки информации.
Книга предназначена для специалистов в различных областях (радиоэлектроника, акустика, геофизика, термодинамика и т. д.) и радиолюбителей, а также для преподавателей физики и информатики школ и высших учебных заведений.
Как превратить персональный компьютер в измерительный комплекс - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Для использования программы VOLTS.BAS совместно с АЦП ADC 10, например, на языке GWBASIC или эквивалентном надо написать следующие строки:
load "ADC10" (загрузка драйвера);
затем
MERGE "VOLTS"(добавление прикладной программы).
По команде RUN запускается полученная программа, которую можно сохранить целиком по команде:
SAVE "ИМЯ", А(если желательно сохранить файл в текстовом формате);
или просто:
SAVE "ИМЯ"(если желательно сохранить его в наиболее компактном виде).
Будет целесообразно произвести полную компиляцию составленной программы, а также и программы на языке TurboPASCAL, в файл ИМЯ.EXE, исполняемый непосредственно под DOS или Windows. Для этого надо иметь в распоряжении какой-нибудь компилятор, например, Turbo BASIC или Quick BASIC.
Цифровой вольтметр
Очень короткая программа VOLTS.BAS прекрасно подходит для первых шагов в изучении только что собранного или купленного АЦП, но она также пригодна и для более общих задач.
200 REM VOLTS
210 GOSUB 100
220 D=INT(100*D)/100
230 LOCATE 1,1
240 PRINT USING "##.##"; D
250 GOTO 210
260 REM (c) 1997 Patrick GUEULLE
Программа выводит в верхнем левом углу экрана величину напряжения (в вольтах), поданного на вход модуля преобразователя. Эта величина подвергается простейшей обработке, поэтому данная программа — одна из самых быстродействующих в «библиотеке», даже при использовании очень медленных ПК.
Применение команды LOCATE, каждый раз возвращающей курсор в верхний левый угол экрана, приводит к замещению старого значения новым. При этом индикация постоянно обновляется со скоростью, равной частоте взятия выборок, т. е. совершенно так же, как в классическом цифровом вольтметре.
Надо обратить внимание на способ, посредством которого измеренная величина округляется до двух знаков после запятой (строка 220), а потом выводится в жестком формате, наиболее соответствующем выбранной точности (строка 240). Подобное решение будет часто использоваться и в дальнейшем.
Эта программа рассчитана на работу совместно с 8- или 10-разрядным АЦП (точность 1 %), но ее можно оптимизировать и для работы с 12-раз рядным АЦП, исправив строки 220 и 240 следующим образом и обеспечив при этом три индицируемых знака после запятой (т. е. точность 0,1 %):
220 D=INT(1000*D)/1000
240 PRINT USING "##.###"; D
Не стоит также упускать из виду, что драйвер не выполняет никаких округлений, полностью соблюдая точность преобразователя. Только прикладная программа в соответствии с поставленной задачей должна так или иначе использовать получаемую точность, и не более того. Вывод трех знаков после запятой для 8-разрядного АЦП будет излишним, так как третий знак при этом не несет никакого смысла.
200 REM — BARRE —
210 LOCATE 6,1
220 FOR H=1 TO 5
230 PRINT "I….!..";
240 NEXT H
250 PRINT " I "
260 LOCATE 7,1
270 PRINT "0___1___2___"
280 PRINT "3___4___5"
290 GOSUB 100
300 D=INT(10*D)
310 LOCATE 5,1
320 PRINT SPC (D);" I";
330 PRINT SPC (50-D)
340 GOTO 290
350 REM (c) 1997 Patrick GUEULLE
Программа BARRE.BAS, в свою очередь, показывает, как легко можно организовать вывод аналоговой штриховой шкалы.

Эта форма представления результата, менее точная, чем цифровая индикация, гораздо более удобна, когда требуется лишь оценить направление и скорость изменений или отклонений измеряемой величины, например, при ручной регулировке или настройке. В приведенном примере шкала построена на базе ASCII символов, но такая же шкала может быть выполнена и в графическом режиме экрана.
Усредняющий фильтр
Наиболее распространенный способ подавления быстрых флуктуаций (часто паразитных) в медленно изменяющемся сигнале состоит в вычислении среднего значения нескольких выборок, относящихся к одному интервалу дискретизации. Конечно, этот способ может замедлить работу системы, и поэтому он применен в двух программах, выводящих результат один раз в секунду (SECONDE.BAS) и один раз в минуту (MINUTE.BAS).
200 REM — SECONDE —
210 Q=0: S=0: GOSUB 100
220 LOCATE 5,1
230 PRINT "Идет измерение…"
240 H$=TIME$
250 IF H$<>TIME$ THEN BEEP: GOTO 290
260 GOSUB 100
270 S=S+D: Q=Q+1
280 GOTO 250
290 D=INT(100*S/Q)/100
300 LOCATE 1,1
310 PRINT USING "##.##";D;
320 PRINT "(среднее за"; Q; " измерений)"
330 GOTO 210
340 REM (c) 1997 Patrick GUEULLE
Кроме вычисления результата измерений, каждая из этих программ выводит и количество измерений, которое было использовано при его вычислении. Это позволяет точно оценить реальное быстродействие сиcтемы в зависимости от применяемого ПК Так, можно получить 3–4 измерения в секунду на «антикварном» ПК 8088/4,77 МГц, 60–70 измерений в секунду на 386SX25 и 700-1000 измерений в секунду на 486 DX/133 МГц, что все же достаточно далеко от современных скоростей, но весьма почетно для BASIC-интерпретатора.
Стоит обратить внимание на то, как использована зарезервированная цикловая переменная TIМЕ$. Она позволяет при любой частоте процессора получить достаточно точную шкалу секунд, минут и даже часов. А если понадобится осуществлять, например, одно измерение за несколько дней, то можно использовать переменную DATES.
200 REM — MINUTE —
210 Q=0: S=0: GOSUB 100
220 LOCATE 5,1
230 PRINT "Идет измерение…"
240 H$=LEFT$(TIME$,5)
250 IF H$<>LEFT$ (TIME$, 5) THEN BEEP: GOTO 290
260 GOSUB 100
270 S=S+D: Q=Q+1
280 GOTO 250
290 D=INT(100*S/Q) /100
300 LOCATE 1,1
310 PRINT USING "##.##";D;
320 PRINT "(среднее за";Q; " измерений)"
330 GOTO 210
340 REM (c) 1997 Patrick GUEULLE
Пиковый регистратор минимумов и максимумов
Достаточно добавить несколько строк на языке BASIC, чтобы получить режим запоминания минимумов и максимумов измеряемого напряжения, с возможностью обнуления результатов путем нажатия на клавишу пробела на клавиатуре ПК.
200 REM — MINMAX —
210 PRINT "нажать клавишу пробела для перезапуска"
220 I=5: А=0: Q=0: GOSUB 100
230 FOR G=1 TO 100
240 GOSUB 100: Q=Q+D
250 NEXT G
260 Q=Q/100
270 IF Q<=I THEN I=Q: S$=TIME$
280 IF Q>=A THEN A=Q: T$=TIME$
290 LOCATE 3,5: PRINT "Mes: ";
300 PRINT USING"##.##"; INT(100*Q)/100;
310 PRINT " "+TIME$
320 LOCATE 5,5: PRINT "Макс: ";
330 PRINT USING "##.##"; INT(100*A) /100
340 PRINT " " + T$
350 LOCATE 7,5: PRINT "Мин: ";
360 PRINT USING "##.##“; INT(100*1)/100
370 PRINT " " + S$
380 IF INKEY$=CHR$(32) THEN 220
390 Q=0: GOTO 230
400 REM (c) 1997 Patrick GUEULLE
Это добавление было сделано в программе MINMAX.BAS; также в нее были включены операторы вывода трех значений времени (в часах, минутах и секундах):
• время текущего измерения;
• время регистрации максимума;
• время регистрации минимума.
Надо отметить, что мультиметр редко дает подобные возможности, столь легко реализованные в виртуальном приборе.
Регистратор длительных процессов
В этом разделе будет рассказано о том, как за несколько десятков долларов достичь результатов, обычно возможных только при использовании ленточных или магнитных регистраторов — приборов, стоящих в сотни раз дороже! Вместо того чтобы чертить на бумаге кривую в реальном масштабе времени, что технически трудновыполнимо, гораздо проще накапливать данные в файле на диске, а уже потом обрабатывать их.
Читать дальшеИнтервал:
Закладка: