методичка по созданию приборов. 1_создание_виртуальных_приборов. Программирование устройства сбора
Скачать 3.99 Mb.
|
4.7.3. Создание одномерного массива псевдослучайных чисел Обрабатывать нажатие на кнопку можно и по изменению булевского значения на выходе кнопки: когда кнопка не нажата, на ее выходе значение False, а при нажатой кнопке на ее выходе True. Используйте копию полученной в Задании 4.7.2 программы для создания по нажатию кнопки одномерного массива случайных чисел и сохранения его в таблице (Table). Для этого переключитесь во вкладку “OK Button”: Value Change (рис.2.28). Выделите мышью прямоугольник с элементами генератора и перетащите их вне основного цикла программы. После чего удалите рамку Event Structure, перетащите элементы генератора обратно в основной цикл программы, и удалите все лишние элементы так, чтобы получилась блок-схема, показанная на рис.2.30. Рис.2.30. Вид блок‐схемы после удаления лишних компонентов. Измените надпись на кнопке на “Сгенерировать массив случайных чисел”. Затем добавьте в предыдущую программу на лицевую панель таблицу Express/Text Indicators/Table. Ограничимся одномерным массивом из десяти чисел – правой кнопкой мыши вызовите установку свойств таблицы и задайте число строк (Rows) равным 10, а число столбцов равным 1. При этом лицевая панель приобретет вид, схожий с показанным на рис.2.31. 84 Рис.2.31. Добавление таблицы на лицевую панель. На блок-схеме появятся два новых компонента, соединенные друг с другом – Build Table (“построить таблицу”) и Table ( рис.2.32.) Рис.2.32. Блок‐схема программы после добавления на лицевую панель таблицы. Сигнал с выхода построенного ранее генератора псевдослучайных чисел необходимо подать на вход Signals компонента Build Table (рис.2.33). 85 Рис.2.33. Вид блок‐схемы после добавления на лицевую панель таблицы. Для получения массива надо десять раз выполнить генерацию чисел – воспользоваться циклом For Loop (Functions/ Programming/ Structures/ For Loop). Обведите рамкой структуры ту часть схемы, которая должна работать в цикле – получится схема, аналогичная показанной на рис.2.34. Можно обводить не целый компонент, а только его часть, если рядом находится элемент, который не должен попасть в рамку – все равно компонент окажется выделенным и попадет внутрь рамки. Рис.2.34. Добавление цикла For Loop в программу. В отличие от использовавшегося ранее цикла While Loop цикл For Loop выполняется заданное число раз, устанавливаемое через вход числа операций 86 N (показывается в левом верхнем углу рамки). Как и для цикла While Loop блок i в левом нижнем углу – это счетчик числа операций (счетчик цикла). В нашем примере число операций задается как число элементов массива на выходе цикла. Для управления количеством повторений подключите числовую константу 10 к блоку числа операций N в левом верхнем углу компонента цикла For Loop. Далее для проверки того, нажата ли кнопка, следует добавить компонент Case Structure (Functions/Programming/Structures/Case Structure) – поместить рамку цикла For Loop внутрь вкладки True компонента Case Structure. После чего выход кнопки необходимо подключить к входу Case Structure (рис.2.35).Сохраните проект. Рис.2.35. Схема запуска цикла нажатием на кнопку. Работа программы представлена на рис.2.36. 87 Рис.2.36.Пример работы программы. Для того чтобы в таблице показывались целые числа, без нулей после десятичного разделителя, необходимо зайти на блок-схеме в параметры компонента Build Table и установить в качестве типа показываемой в таблице величины десятичное целое с 12 десятичными разрядами Decimal Integer (12) – рис.2.37. Рис.2.37.Установка типа показываемой в таблице величины. Полученная программа имеет особенность – при повторных нажатиях кнопки в таблице добавляются новые строки после старых. Но иногда требуется заменить выведенные ранее данные. У компонента Build Table 88 имеется вход Reset (“переустановить”) для сброса таблицы в начальное состояние – как это сделать показано на рис. 2.38. Рис.2.38. Схема запуска цикла и сброса таблицы нажатием на кнопку. III. Лабораторная работа № 3-NI. Программирование в среде LabView цифровых портов ввода-вывода устройства сбора данных NI myDAQ 1. Теоретическая часть 1.1. Позиционные системы счисления Позиционная система счисления - это такой способ записи числа, при котором вес цифры зависит от занимаемой позиции и пропорционален степени некоторого числа. Основание степени называется основанием системы счисления. Наиболее распространены десятичная (основание десять), шестнадцатеричная (основание шестнадцать), восьмеричная (основание восемь) и двоичная (основание два) системы. Число различных знаков - цифр, используемых для записи чисел – в каждой системе равно основанию данной системы счисления. 0,1 - цифры двоичной системы 0,1,2,3,4,5,6,7 - цифры восьмеричной системы 89 0,1,2,3,4,5,6,7,8,9 - цифры десятичной системы 0,1,2,3,4,5,6,7,8,9,A,B,B,C,D,E,F - цифры шестнадцатеричной системы В шестнадцатеричной системе арабских десятичных цифр недостаточно, и для обозначения цифр больших девяти, используются заглавные латинские буквы A,B,C,D,E,F. В дальнейшем везде, где это необходимо, мы будем указывать основание системы счисления индексом рядом с числом: 126 10 - в десятичной системе, 7E 16 – в шестнадцатеричной системе, 176 8 - в восьмеричной системе, 1111110 2 – в двоичной системе. Применительно к компьютерной обработке данных под информацией понимают некоторую последовательность символических обозначений (букв, цифр, закодированных графических образов и т.д.), несущую смысловую нагрузку и представленную в виде, который может быть обработан какой- либо компьютерной программой. Двоичная система является естественным способом кодирования информации в компьютере, когда сообщение представляется набором нулей (0 - нет сигнала на линии) и единиц (1 - есть сигнал на линии). Процессор компьютера обрабатывает информацию, представленную именно в таком виде. Для обозначения двоичных цифр применяется термин “бит”, являющийся сокращением английского словосочетания “двоичная цифра” (BInary digiT). Архитектура компьютера накладывает существенное ограничение на количество информации, обрабатываемой устройством за одну операцию. Оно измеряется числом двоичных разрядов и называется разрядностью этого устройства. С помощью восьми двоичных разрядов можно представить 2 8 = 256 целых чисел. Порция информации размером 8 бит (восьмибитовое число) служит основной единицей измерения компьютерной информации и называется байтом (byte). Как правило, передача информации внутри компьютера и между компьютерами идет порциями, кратными целому числу байт. Машинным словом называют порцию данных, которую процессор компьютера может обработать за одну операцию (микрокоманду). Первые 90 персональные компьютеры (PC - personal computer) были 16-разрядными, т.е. работали с 16-битными (двухбайтными) словами. Поэтому операционные системы первых поколений для этих компьютеров также были 16- разрядными. Например, MS DOS. В дальнейшем операционные системы стали 32-разрядными, так как были ориентированы на использование 32- разрядных процессоров. В настоящее время чаще всего используются 64- разрядные версии Windows, Mac OS и Linux для 64-разрядных процессоров. Шестнадцатью битами можно представить числа от 0000000000000000 2 до 1111111111111111 2 (от 0 до 2 16 − 1= 65535). Аналогично, 32-битное слово может быть использовано для представления чисел в диапазоне от 0 до 2 32 − 1, а 64-битное – для представления чисел от 0 до 2 64 − 1. Представление чисел в двоичной и шестнадцатеричной системах счисления, а также преобразование из одной системы в другую бывает необходимо при программировании аппаратуры, предназначенной для измерений и управления различными устройствами. Эти действия осуществляются с помощью портов ввода-вывода, цифро-аналоговых и аналого-цифровых преобразователей. Компьютеры на основе процессоров x86 (от Intel i-86 до Pentium Duo, Xeon и т.д.; AMD Athlon, Opteron и т.д.) имеют специальные адреса для управления аппаратурой - адреса портов. Обращение к портам независимо от разрядности процессора и типа операционной системы может производиться либо побайтно (как по четным, так и по нечетным адресам портов), либо 16-разрядными словами (только по четным адресам портов). 1.2. Преобразование чисел из одной позиционной системы счисления в другую Число N может быть записано с помощью разных систем счисления. Например, в десятичной: N = A n ∙ 10 n + ... + A 2 ∙ 10 2 + A 1 ∙ 10 1 + A 0 ∙ 10 0 , (A k = 0 . . . 9) или в двоичной: N = B p ∙ 2 p + ... + B 2 ∙ 2 2 + B 1 ∙ 2 1 + B 0 ∙ 2 0 , (B k = 0 или 1) 91 Преобразование в другую систему счисления сводится к нахождению коэффициентов B k по известным коэффициентам A m при переводе из десятичной системы в двоичную, или коэффициентов A m по коэффициентам B k при переводе из двоичной системы в десятичную. 1.2.1. Преобразование чисел из системы с большим основанием в систему с меньшим основанием Рассмотрим преобразование из десятичной системы в двоичную. Для известного числа N необходимо найти коэффициенты в выражении N = B n ∙ 2 n + ... + B 2 ∙ 2 2 + B 1 ∙ 2 1 + B 0 ∙ 2 0 , (B n = 0 или 1) Воспользуемся следующим алгоритмом: в десятичной системе разделим число N на 2 с остатком. Остаток деления (он не превосходит делителя) даст коэффициент B 0 при младшей степени, то есть при 2 0 . Далее делим на 2 частное, полученное от предыдущего деления. Остаток деления будет следующим коэффициентом B 1 двоичной записи N. Повторяя эту процедуру до тех пор, пока частное не станет равным нулю, получим последовательность коэффициентов B n Если преобразуемое число невелико (например, N ≤ 1024=2 10 ) можно легко найти коэффициенты B n, , начиная с коэффициента при максимальной степени двойки, содержащейся в данном числе. Пример: Преобразуем 345 10 к двоичному виду. Имеем 345 10 = 1ꞏ 2 8 +0ꞏ 2 7 + 1ꞏ 2 6 + 0ꞏ 2 5 + 1ꞏ 2 4 + 1ꞏ 2 3 + 0ꞏ 2 2 + 0ꞏ 2 1 + 1ꞏ 2 0 =101011001 2 1.2.2. Преобразование чисел из системы с меньшим основанием в систему с большим основанием 1.Рассмотрим преобразование из двоичной системы в десятичную. Запишем число N в виде N = B p ∙ 2 p + ... + B 2 ∙ 2 2 + B 1 ∙ 2 1 + B 0 ∙ 2 0 (B k = 0 или 1) и будем рассматривать эту формулу как алгебраическое выражение в десятичной системе. Выполним арифметические действия по правилам десятичной системы. Полученный результат даст десятичное представление числа N. 92 Пример: Преобразуем 01011110 2 к десятичному виду. Имеем: 01011110 2 = 0 ꞏ 2 7 + 1 ꞏ 2 6 + 0 ꞏ 2 5 + 1 ꞏ 2 4 + 1 ꞏ 2 3 + 1 ꞏ 2 2 + 1 ꞏ 2 1 + 0 ꞏ 2 0 = 0 + 64 + 0 + 16 + 8 + 4 + 2 + 0 = 94 10 2. Рассмотрим преобразование из десятичной системы в шестнадцатеричную. Заметим, что 16=2 4 . Преобразуем десятичное число в двоичное: объединим цифры в двоичной записи числа группами по четыре (справа налево), и каждую такую группу (тетраду) заменим соответствующей шестнадцатеричной цифрой. Таким образом, перевод чисел из двоичного представления в шестнадцатеричное и обратно осуществляется простой заменой всех групп из четырех двоичных цифр на шестнадцатеричные цифры: 0000 2 = 0 16 0100 2 = 4 16 1000 2 = 8 16 1100 2 = C 16 0001 2 = 1 16 0101 2 = 5 16 1001 2 = 9 16 1101 2 = D 16 0010 2 = 2 16 0110 2 = 6 16 1010 2 = A 16 1110 2 = E 16 0011 2 = 3 16 0111 2 = 7 16 1011 2 = B 16 1111 2 = F 16 Пример: Преобразуем 1011010111 2 к шестнадцатеричному виду: 10 1101 0111 2 = 0010 1101 0111 2 = 2D7 16 1.3. Порты цифрового ввода - вывода Общение компьютера с различными подключаемыми к нему устройствами, как уже говорилось, обычно происходит через так называемые порты (“порт” в переводе с греческого – “ворота”). Для идентификации устройств ввода- вывода в персональном компьютере каждому из них присвоен индивидуальный номер – “адрес порта”. При каждой операции записи/чтения происходит обращение только к одному устройству - тому, адрес которого совпадает с заданным. Данные, записанные в порт, сохраняются в специальном буфере (регистре порта) до следующей записи данных в этот порт. При операции “чтение из порта” происходит вывод цифровой информации о состоянии порта в момент операции чтения. Порты чтения и записи с одинаковыми адресами могут быть физически разделены, при этом часто данные, записанные в порт, не 93 могут быть прочитаны при обращении к этому порту. В PC старых образцов существовали два специальных типа устройств ввода-вывода, также называемых портами - 1) последовательные 2) параллельные. Последовательные порты (обычно их было два - COM1 и COM2) раньше служили для подключения “мыши” и других относительно медленных устройств. В настоящее время они заменены USB-портами (сокращение от Universal Serial Bus – “универсальная последовательная шина”). В последовательных портах передача данных происходит по одному проводу бит за битом (как правило, порциями по 1 байту, с добавлением 1-2 служебных битов). В параллельных портах передача данных происходит одновременно по 8 проводам байт за байтом. Параллельные порты РС в настоящее время также практически вытеснены USB-портами. Тем не менее, при управлении устройствами автоматизации часто приходится использовать параллельные порты: для этих целей выпускаются специальные электронные модули, подключаемые к компьютеру через USB или другим способом, и имеющие внешние разъемы параллельных портов ввода-вывода. 2. Компьютерный тест №3 В тесте проверяется усвоение учащимся теоретической части описания лабораторной работы. Для выполнения теста следует зайти на в систему контроля качества обучения и перейти по ссылке “Компьютерный тест “№3”. После прохождения теста в разделе «Результаты» правильные ответы помечаются зеленым цветом, неправильные – красным. Результаты прохождения теста служат допуском к выполнению лабораторной работы. 94 3. Преобразование чисел из одной позиционной системы счисления в другую с помощью виртуального устройства Теster Задание 3.1. Преобразование чисел из десятичной системы счисления в двоичную и обратно Воспользовавшись приложением Tester, созданным при помощи LabView, переведите произвольные числа из десятичной системы счисления в двоичную, затем из двоичной в десятичную. Убедитесь в правильности своих вычислений. Рис.3.1. Лицевая панель приложения Tester. 95 Рис.3.2 . Пример преобразования случайного двоичного числа в десятичное. Рис.3.3. Пример преобразования случайного десятичного числа в двоичное. Задание 3.2. Перевод чисел из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную Переведите произвольно выбранное число из десятичной в двоичную систему, а затем то же число запишите в восьмеричной и шестнадцатеричной системах счисления. Проверьте свой результат. 96 4. Экспериментальная установка Рис.3.4. Общий вид экспериментальной установки. Экспериментальная установка для данной лабораторной работы, общий вид которой показан на рис.3.4, состоит из следующих частей: 1) Компьютер. 2) Модуль NI myDAQ (DAQ – Data Acquisition – сбор данных), подключаемый к USB-порту компьютера ( рис.3.5). Рис.3.5. Устройство сбора данных NI myDAQ. 97 3) Цифровой мультиметр на основе NI myDAC (DMM – Digital MultiMeter). Входы цифрового мультиметра показаны на рис.3.6. Рис.3.6. Входы цифрового мультиметра на лицевой стороне NI myDAQ. 4) Наборная панель (рис.3.7.) и устанавливаемые на неё элементы (резисторы, перемычки, светодиоды – рис.3.8), провода. Рис.3.7. Наборная панель с установленными на нее элементами, подсоединенная к NI myDAQ. Рис.3.8. Элементы наборной панели. 98 NI myDAQ использует технологию виртуальных приборов NI LabView и позволяет осуществлять сбор и анализ сигналов и управлять простыми процессами в электрических схемах. В устройство NI myDAQ входят два аналого-цифровых преобразователя (АЦП), два цифро-аналоговых преобразователя (ЦАП) и 8 цифровых линий ввода-вывода с возможностью объединения в 8-разрядный параллельный порт, подключаемый через 20-контактный разъем (рис.3.9). Рис.3.9. Разъемы на боковой стороне NI myDAQ. В NI myDAQ имеются аналоговые входы (АI – Analog Input) для регистрации аналоговых сигналов с помощью АЦП, аналоговые выходы (А0 – Analog Output) для получения аналоговых сигналов с помощью ЦАП, цифровые входы и выходы (DIO– Digital Input/Output), источники питания, а также вход и выход аудиосигналов. В NI myDAQ имеется три источника питания: +15 В, -15 В и +5 В. Источники +15 В и -15 В могут быть использованы для питания аналоговых компонентов (например, операционных усилителей, и линейных регуляторов напряжения). Источник +5 В может быть использован для питания цифровых компонентов, таких как логические устройства. Разъемы AGND и DGND – аналоговая и цифровая земля, соответственно, служат в качестве опорных уровней напряжения для AI, AO ±15 В и DIO и источника +5 В. Порт NI myDAQ имеет восемь программно тактируемых линий цифрового ввода/ вывода, обозначаемых как DIO 0 – DIO 7. Цифровая линия – это путь, по которому передается цифровой сигнал. Линии должны быть индивидуально настроены либо для входа, либо для выхода, они не могут функционировать одновременно в обоих направлениях. Разрядность порта 99 определяется числом его линий. Цифровые линии NI myDAQ допускают пропускание сигналов логического уровня: напряжение логического нуля от 0 до +0.8 В, напряжение логической единицы от +2.0 В до +5 В. Для удобства в экспериментальной установке, предлагаемой для выполнения лабораторной работы, винтовые клеммы 20-контактного разъема NI myDAQ соединены проводами с соответствующими клеммами наборной панели, имеющими те же обозначения. С клемм наборной панели сигналы можно подавать в нужные точки собираемой электрической схемы. После того как NI myDAQ подключен к системе, автоматически запускается виртуальная панель приборов NI ELVISmx (рис.3.10) – оболочка над пакетом созданных в LabView виртуальных приборов, предназначенных для управления реальными приборами. Рис.3.10. Виртуальное устройство NI ELVISmx. NI ELVISmx предоставляет программные лицевые панели и исходный код для этих виртуальных приборов. Виртуальный цифровой мультиметр - это программа, которая использует устройство NI myDAQ для измерения напряжений, токов и сопротивлений. Измерения проводятся с помощью имеющихся внутри NI myDAQ аналого- цифровых (АЦП) и цифро-аналоговых (ЦАП) преобразователей. АЦП совершает преобразование имеющегося на его входе аналогового напряжение в пропорциональный этому напряжению двоичный цифровой код, получаемый на выходе и передаваемый в компьютер. ЦАП осуществляет обратное действие – получает из компьютера цифровой код и преобразует его в напряжение на выходе, пропорциональное полученному цифровому коду. Таким образом, при изменении входного кода на выходе ЦАП изменяется аналоговое напряжение. Использовать цифровой 100 мультиметр можно без знания принципов работы и программирования АЦП и ЦАП, эти устройства будут подробно изучаться в отдельной лабораторной работе. Цифровой мультиметр DMM (рис.3.11) может выполнять следующие виды измерений: постоянное напряжение ( 60 В, 20 В, 10 В и 200 мВ); переменное напряжение ( 20 В, 2 В и 200 мВ); постоянный ток ( 1 А, 200 мА, 20 мА); переменный ток (1 А, 200 мА, 20 мА), сопротивление ( 200 МОм, 2 МОм, 200 кОм, 20 кОм, 2 кОм и 200 Ом). Рис.3.11. Виртуальная панель цифрового мультиметра (DMM). В данной работе цифровой мультиметр используется для измерения сопротивлений ( |