Главная страница

Методические рекомендации для первого знакомства со средой программирования Labview 5 и для освоения элементарных навыков работы в ней


Скачать 1.09 Mb.
НазваниеМетодические рекомендации для первого знакомства со средой программирования Labview 5 и для освоения элементарных навыков работы в ней
Дата20.05.2018
Размер1.09 Mb.
Формат файлаpdf
Имя файлаlabview_basics_online.pdf
ТипМетодические рекомендации
#44267
страница3 из 4
1   2   3   4
F
(False) на T(True).
 Запустим программу и сохраним данные в файл DataT.txt
 Откроем файл и убедимся, что в нем записан столбец чисел – оператор записи в файл транспонировал массив – его строки стали столбцами.
Процедура Write to Spreadsheet Fileпозволяет быстро сохранить интересующие нас данные в текстовый файл. При этом она автоматически выполняет несколько последовательных операций:
1) преобразует массив чисел в строку символов (ASCII кодов символов);
2) создает файл для записи этих чисел на жестком диске компьютера;
3) записывает строку символов в этот файл;
4) завершает работу с диском – закрывает файл.
Если нам требуется более точно настроить процесс сохранения в файл, мы можем выполнить эти операции по отдельности, меняя надлежащим образом их параметры.
Рис.2.5. Запись данных в файл.

21
 Поместим на блок схему процедуру преобразования массива в строку символов (Programming String Array To Spreadsheet
String (массив в строку крупноформатной таблицы)) (рис.2.6)
 Подключим массив к его контакту array. Из контекстного меню контакта format string (строка форматирования) выберем Create
Constant и впишем в нее, например %.3f (3 знака после запятой, плавающая точка). Правила составления строки форматирования можно найти в справочной системе LabVIEW.
 Добавим на блок-схему операции работы с файлами из меню
Programming File I/O три процедуры: 1) Open/Create/Replace File;
2) Write o Text File; 3) Close file.
 Создадим константу (правой кнопкой мыши) для контакта file path
процедуры Open/Create/Replace File и введем в нее путь к файлу, в который мы хотим сохранить данные (если эту константу не подключать, то будет открываться диалоговое окно, такое же, как при использовании функции Write to Spreadsheet String).
 Создадим константы для контактов operation(действие) и access
(доступ) и выберем их значения replace or create with confirmation
(заменить и или создать с подтверждением) и read/write
(чтение/запись), соответственно.
Open/Create/Replace File открывает (создает, заменяет) файл и передает ссылку (refnum) на него и информацию об ошибках (error) следующим процедурам. Соединим процедуры между собой, передавая им ссылку на файл (гладкий сине-зеленый провод), и данные об ошибках (толстый черно-желтый провод).
 Подключим к последнему выходу информации об ошибках (error out)
процедуру Programming Dialog & User Interface General Error
Handler (универсальный обработчик ошибок). В случае если в одной из процедур произойдет ошибка, например, не будет открыт файл, то
Error Handler откроет окно с сообщением об ошибке.
Рис.2.6. Процедура записи массива в файл (эквивалент Write to Spreadsheet file )

22
Кроме этого, последовательное соединение процедур проводником сообщений об ошибках гарантирует, что они будут выполняться в точности в том порядке, в котором они соединены между собой.
 Подключим выход процедуры Array To Spreadsheet Stringк входу
text процедуры Write to text file. Обратите внимание, что эта процедура имеет еще один вход – Prompt (подсказка) для переменной формата String, который мы не используем!
 Запустим программу. Она автоматически сохранит данные в файл, путь к которому мы указали.
 При повторном запуске программа запросит разрешение переписать этот файл в виде диалогового окна (рис.2.7). Если вы отмените перезапись, выбрав Cancel, то сообщение об ошибке пройдет от одного элемента к другому и затем к обработчику ошибок, который откроет окно сообщения об ошибке (рис.2.8).
 Уменьшите количество повторений цикла For Loop до 10
раз, включите режим Highlight Execution.
 Проследите работу программы в случаях, когда вы подтверждаете замену файла, и когда отменяете эту операцию.
 Отключите режим Highlight Execution
Усовершенствуем нашу программу. Сделаем так, чтобы она непрерывно вычисляла массивы случайных чисел, но сохраняла массив в файл, если нажата кнопка Запись на передней панели. Непрерывное выполнение программы осуществим так же, как в и предыдущем примере – поместим все вычисления в цикл While Loop, который прерывается при нажатии кнопки Stop. Теперь нам понадобится структура Case Structure, которая будет проверять
Рис.2.7. Запрос на перезапись файла.
(Путь к файлу не обязательно такой, как показано на рисунке).
Рис.2.8. Сообщение о том, что файл не был переписан, так как пользователь отменил эту операцию

23 состояние кнопки Запись и записывать массив в файл, если она нажата, то есть, когда ее состояние – True.
 Поместим всю программу в цикл While loop и создадим кнопку Stop для выхода из цикла.
 Поместим процедуру записи в файл внутрь структуры Сase Structure
(Programming Structures)
 Добавим на переднюю панель кнопку ControlsModern Boolean
OK button и назовем ее Запись. Также изменим надпись на самой кнопки.
Рис.2.9. Программа записи массива в файл c использованием Case Structure

24
 Скроем имена переменных, написанные над кнопками сняв галочку в контекстном меню кнопки Visible Item Label
 Подключим терминал кнопки Записьк контакту Case Selector
структуры Case Structure (рис.2.9).
Структура Case содержит два случая. Один из них соответствует состоянию True входа Case selector (a), а другой – False (б). При редактировании программы оба случая можно просмотреть, нажимая левую кнопку мыши, когда указатель находится на стрелках слева и справа от заголовка в верхней части структуры.
 Сохраним и запустим программу. a) б)
Рис.2.10. Два состояния структуры Case

25
3. Интерфейс пользователя. Символьная строка
Взаимодействие человека и компьютера осуществляется при помощи
интерфейса пользователя (interface – от англ. граница раздела, стык) – комплекса программных и аппаратных средств, позволяющих человеку управлять работой компьютера и воспринимать результат его работы.
Простейший интерфейс пользователя
– кнопка.
Это электромеханическое устройство. Когда человек нажимает на кнопку пальцем, внутри нее замыкаются проводники. Через кнопку течет электрический ток. Наличие или отсутствие тока через кнопку интерпретируется компьютером как один бит информации. Нажимая кнопку, мы изменяем по нашему желанию значение этого бита с 0 (нет тока) на 1 (есть ток).
Аналогично мы можем проверить значение любого бита в электрической схеме компьютера. Достаточно подключить лампу к соответствующему проводнику. Лампа светится, когда через нее течет ток, то есть состояние проводника 1, и не светится, когда состояние проводника 0 (нет тока). В свою очередь, человек воспринимает свет лампы глазами и делает вывод о состоянии данного проводника.
Разумеется, если нужно изменять или отслеживать состояние большого количества бит (проводников), то для этого требуется множество различных кнопок и лампочек, которые нужно разместить на пульте управления. Кроме того, для каждой задачи, решаемой компьютером, придется собирать специальный пульт с кнопками и лампами соответствующими именно этой задаче.
Чтобы не конструировать громоздкие пульты, в современных универсальных компьютерах используют другой вид интерфейса – графический. В Windows и LabVIEW, используются только две кнопки – это кнопки манипулятора мышь. А то, какой именно бит переключает каждая из них, зависит от положения манипулятора на столе, вернее, от места, в котором находится изображение специального указателя
(курсора) на экране монитора компьютера. Компьютер отслеживает перемещения мыши по столу и перемещает изображение указателя по экрану монитора. Если указатель находится в области, где на экране нарисована кнопка, – то при нажатии на кнопку мыши изменяется состояние некоторой переменной в памяти компьютера. Но если, мы,

26 перемещая мышь, отведем указатель в сторону от нарисованной кнопки, то компьютер проигнорирует нажатие на кнопку мыши.
Когда мы помещаем указатель мыши на изображение кнопки Stop, компьютер начинает проверять, не нажата ли левая кнопка мыши. И если мы нажмем на кнопку, выполнение цикла прекратится. Здесь возможно несколько вариантов. Например, выполнение программы можно прекратить сразу же, как только мы нажмем кнопку мыши. А можно – только после того, как мы, нажав кнопку, ее отпустим. Во втором случае у нас будет возможность передумать – если мы навели указатель на нарисованную кнопку, нажали на кнопку мыши, а затем передумали останавливать программу, то можно, не отпуская кнопку мыши, отвести указатель в сторону. И нарисованная кнопка не сработает.
Такая настройка кнопки
(кстати, стандартная для графического интерфейса в среде Windows) учитывает особенность человеческого поведения – прежде, чем взять какой либо предмет, человек легко прикасается к нему, и, прикоснувшись, окончательно решает – брать или нет.
Кажущаяся простота и естественность, с которой мы
управляем современным компьютером, целиком и полностью построена на тщательном изучении и учете множества незаметных особенностей
человеческого
поведения
разработчиками интерфейса пользователя.
В среде LabVIEW реакция кнопки на нажатие может быть настроена тем или иным образом при помощи параметра Mechanical
Action(механическое действие) в контекстном меню этой кнопки.
Существует два вида отклика кнопки на нажатие:
Switch (переключатель)при нажатии кнопка изменяет свое состояние
(переключается) и остается в нем до следующего нажатия;
Latch (защелка) – при нажатии кнопка переключается и ждет, пока программа не проверит ее, а после первой проверки автоматически возвращается в исходное состояние.
Всего параметр Mechanical Action имеет шесть возможных значений:
Switch When Pressedкнопка переключается в момент нажатия на нее;
Switch When Released – переключается в момент, когда ее отпускают;
(в этом случае есть возможность передумать – если вы, не отпуская

27 кнопку мыши, отведете указатель от кнопки, то ее состояние не изменится).
Switch Until Released – переключается в момент нажатия, и возвращается в исходное состояние когда ее отпускают;
Latch When Pressed – переключается в момент нажатия и возвращается в исходное состояние после проверки ее состояния программой;
Latch When Released – переключается в момент, когда ее отпускают и возвращается в исходное состояние после проверки ее состояния программой;
Latch Until Released – переключается в момент нажатия и возвращается в исходное состояние после того, как будет произведена проверка программой ее состояния, или кнопка будет отпущена, в зависимости от того, какое из этих событий произойдет позже другого.
Исследуем на практике особенности работы кнопок в различных режимах. Для этого создадим программу, в которой будет шесть кнопок и шесть индикаторов, подключенных к этим кнопкам. Пусть каждая из кнопок будет настроена на работу в одном из перечисленных режимов.
И пусть программа опрашивает кнопки достаточно медленно, примерно один раз в две секунды. Тогда мы сможем проследить реакцию кнопки на нажатие и на проверку ее состояния программой.
 Создадим интерфейс виртуального прибора, показанный на рис.3.1. и сохраним его под именем Example03.vi
 В качестве индикаторов состояния кнопок используем круглые светодиоды Controls Modern Boolean Round LED (LED – от англ. Light Emitting Diode – светоизлучающий диод)
 В качестве индикатора чтения кнопок используем прямоугольный светодиод, в контекстном меню которого изменим настройки цвета светодиода: выберем красный цвет для включенного состояния, и темно красный – для выключенного (Properties Appearance
Colors)
 Для украшения интерфейса используем накладные панели Controls
Modern Decorations Raised Box(выпуклая прямоугольная панель).

28
 Воспользуемся панелью инструментов для того, чтобы равномерно и ровно расположить кнопки и индикаторы на передней панели, изменить шрифт и переместить выпуклые панели на задний план
(Reorder(
) Move to back)
 В контекстном меню каждой из кнопок установим значение
Mechanical Action, соответствующее надписям на панели. Кнопку
Latch When Released выделим цветом – это стандартная настройка кнопок Windows
Наша программа должна время от времени проверять состояние кнопок. Чтобы мы знали, когда происходит проверка, сделаем так, чтобы в это время загорался светодиод READ (чтение). Программа будет выполнять в цикле следующие действия: 1) включить светодиод
READ, 2) проверить состояние кнопок и включить/выключить соответствующие светодиоды, 3) подождать некоторое время (50 мс), чтобы мы успели заметить вспышку светодиода READ, 4) Выключить светодиод READ, 5) подождать 2 секунды, чтобы мы успели понять, что происходит, 6) повторить процедуру. Блок схема этой программы показана на рис.3.2.
Рис.3.1. Интерфейс программы Example03

29
 Так как при выполнении данной программы важна точная последовательность действий, то воспользуемся структурой Flat
Sequence
Structure
(плоская, развернутая структура последовательности) (Functions Structures).
Flat Sequence Structure имеет вид кинопленки, кадры которой исполняются один за другим. Новые кадры можно добавить, выбрав в контекстном меню структуры Add frame before или Add frame after
(добавить кадр до или после)
 Для того чтобы выключить светодиод READ в четвертом кадре мы используем структуру Local Variable (локальная переменная)
(Functions Structures)
 В контекстном меню Local Variableнужно выбрать Change to write и
Select Item (выбрать объект) READ (имя светодиода)
 Запустим программу и проверим отклик кнопок на различные воздействия, нажатие кнопки мыши, отпускание кнопки мыши, вывод указателя с кнопки при нажатой кнопке мыши, удержание кнопки нажатой длительное время.
Рис.3.2. Блок схема Example01

30
 Обратите внимание, что зеленые светодиоды переключаются только после того, как программа проверит состояние кнопки (включится светодиод READ).
 Можно дополнительно украсить программу, если растянуть светодиод READ, переместить его на задний план и «подложить» под панели (рис.3.3).
Обратная задача – вывод информации на человеческом языке – также представляет серьезную проблему при создании интерфейса пользователя. Пусть программа считает некоторые предметы. В результате счета в памяти компьютера получится некоторое двоичное
число. Но обычному человеку трудно воспринимать двоичные числа, поэтому компьютер должен показать это число в более привычном виде
десятичного числа,записанного символами цифр.
Напишем программу, которая считает некоторые предметы, например, яблоки. И выводит ответ в виде строки текста. Например: «У меня есть 5 яблок».
 Создадим новый виртуальный прибор, и сохраним его под именем
Example04.vi.
 На передней панели поместим цифровой элемент управления, при помощи которого мы будем вводить количество «яблок». В контекстном меню выберем тип данных – 32 разрядное целое число без знака U32 (отрицательное число яблок не имеет смысла).
 Поместим рядом дополнительный цифровой индикатор, который будет отображать число в двоичной форме – так, как оно представлено в памяти компьютера назовем его Двоичное число
Рис.3.3. Вариант оформления индикатора READ (светодиод на заднем плане).

31
 В контекстном меню этого индикатора выберем Display Format
Binary
 Добавим текстовый индикатор Controls Modern String & Path
String Indicator, который отображает созданную программой строку (последовательность символов).
 Используя операторы из меню Functions Programming String,
соберем строку «ответа» (рис.3.4) .
 В цикл While Loop ОБЯЗАТЕЛЬНО нужно добавить задержку Wait
Until Next ms Multiple (рис.3.4)
1   2   3   4


написать администратору сайта