Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabVIEW Basics 1.pdf
Скачиваний:
601
Добавлен:
05.06.2015
Размер:
6.38 Mб
Скачать

Урок 10 Анализ и сохранение результатов измерений

Упражнение 10-2 ВП для считывания визиток (дополнительно)

Цель

Считать ASCII-файл в LabVIEW.

Сценарий

Контактные данные визиток хранятся в адресной книге Windows (Windows Address Book). Вы должны извлечь определенные данные визитки и показать их на текстовом дисплее в LabVIEW.

Проектирование

Входы и выходы

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

Блок-схема

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

1.Откройте стандартный редактор WordPad (Start>>Programs>>Accessories>>WordPad).

2.Выберите пункт меню File>>Open.

3.Перейдите в каталог C:\Exercises\LabVIEW Basics I\Чтение визиток.

4.Измените тип файла на All Documents.

5.Выберите один из файлов визиток в этом каталоге. Пример текстового файла визитки приведен ниже.

Начало текстового файла

BEGIN:VCARD¶

VERSION:2.1¶

N:McGillicuttey;Heather;Louise;Ms.¶ FN:Heather Louise McGillicuttey¶ NICKNAME:Lou¶

ORG:National Instruments;Internal Affairs¶ TITLE:President¶

NOTE:I am an imaginary person.¶ TEL;WORK;VOICE:512-555-1212¶ TEL;HOME;VOICE:512-555-1212¶ TEL;CELL;VOICE:512-555-1212¶ TEL;PAGER;VOICE:512-555-1212¶ TEL;WORK;FAX:512-555-1212¶ TEL;HOME;FAX:512-555-1212¶

ADR;WORK:;Corner;11500 N. Mopac Expressway;Austin;Texas;78759;USA¶ LABEL;WORK;ENCODING=QUOTED-PRINTABLE:Corner=0D=0A11500 N. Mopac Expressway=0D=0AAustin, Texas 78759=0D=0AUSA¶

©National Instruments Corporation

10-13

Учебный курс LabVIEW Основы I

Урок 10 Анализ и сохранение результатов измерений

ADR;HOME:;;111 Easy Street;Austin;Texas;78759;USA¶ LABEL;HOME;ENCODING=QUOTED-PRINTABLE:111 Easy Street=0D=0AAustin, Texas

78759=0D=0AUSA¶

EMAIL;PREF;INTERNET:heather@ni.com¶

REV:20050818T150422Z¶

END:VCARD

Конец текстового файла

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

©National Instruments Corporation

10-14

Учебный курс LabVIEW Основы I

Урок 10 Анализ и сохранение результатов измерений

Рис. 10-3. Блок-схема ВП Чтение визиток.

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

Элементы блок-схемы с более толстой рамкой представляют ВП, которые уже частично построены.

Реализация

1.Создайте запись с данными визитки в адресной книге Windows.

Откройте адресную книгу

(Start>>Programs>>Accessories>>Address Book).

©National Instruments Corporation

10-15

Учебный курс LabVIEW Основы I

Урок 10 Анализ и сохранение результатов измерений

Выберите пункт меню File>>New Contact.

Заполните все или некоторые поля информацией о себе или воображаемом лице.

Закончив ввод, нажмите OK.

Выберите пункт меню File>>Export>>Business Card (vCard).

Перейдите в каталог C:\Exercises\LabVIEW Basics I\Чтение визиток.

Нажмите кнопку Save.

Выберите пункт меню File>>Exit, чтобы закрыть адресную книгу.

2.Откройте пустой ВП.

3.Сохраните ВП как Чтение визиток.vi в каталоге

C:\Exercises\LabVIEW Basics I\Чтение визиток.

4.Откройте блок-диаграмму.

Далее вам нужно создать блок-диаграмму по образцу рис. 10-4. На этой блок-диаграмме только что созданная визитка считывается как двумерный массив строк. Первое измерение массива содержит теги, второе измерение содержит данные.

Рис. 10-4. Блок-диаграмма ВП Read VCard.

5.Откройте текстовый файл.

Поместите на блок-диаграмму функцию Open/Create/Replace File. Чтобы использовать параметры по умолчанию, на входы ничего подавать не нужно.

6.Прочитайте данные из текстового файла.

Поместите цикл While из палитры Structures справа от функции Open/Create/Replace File.

Поместите в цикл функцию Read from Text File.

Соедините терминал refnum out функции

Open/Create/Replace File с терминалом file (use dialog) функции Read from Text File.

Щелкните правой кнопкой мышки по Read from Text File и

выберите “Read Lines”.

©National Instruments Corporation

10-16

Учебный курс LabVIEW Основы I

Урок 10 Анализ и сохранение результатов измерений

Поместите функцию Match Pattern за функцией чтения.

Соедините терминал text функции чтения с терминалом string функции Match Pattern.

Щелкните правой кнопкой на терминале regular expression функции Match Pattern и выберите в контекстном меню

Create>>Constant.

Введите в текстовую константу двоеточие (:).

Соедините терминал before substring функции Match Pattern

сграницей цикла, чтобы создать выходной туннель.

Щелкните правой кнопкой на выходном туннеле и выберите в контекстном меню Enable Indexing.

7.Остановите цикл, если произошла ошибка или достигнут конец файла.

Соедините терминал error out функции Read from Text File с границей цикла, чтобы создать выходной туннель.

Щелкните правой кнопкой на туннеле и выберите в контекстном меню Replace with Shift Register. Курсор должен превратиться в сдвиговый регистр, показывая, что нужно выбрать входную часть регистра.

Щелкните на входном туннеле ошибки с левой стороны цикла, чтобы заменить его сдвиговым регистром.

Поместите в цикл функцию Unbundle By Name.

Соедините выход ошибки функции Read from Text File с

функцией Unbundle By Name.

Поместите в цикл функцию ИЛИ.

Соедините элемент status кластера ошибки с входом x функции ИЛИ.

Поместите в цикл функцию Equal.

Соедините терминал before substring функции Match Pattern

стерминалом y функции Equal.

Щелкните правой кнопкой на терминале x функции Equal и выберите в контекстном меню Create>>Constant.

Введите END в строковую константу.

Соедините выход функции Equal с входом y функции ИЛИ.

Соедините выход функции ИЛИ с терминалом условия цикла.

8.Закройте текстовый файл.

Соедините терминал refnum out функции Read from Text File с границей цикла, чтобы создать выходной туннель.

Щелкните правой кнопкой на туннеле и выберите в контекстном меню Replace with Shift Register. Курсор должен превратиться в сдвиговый регистр, показывая, что нужно выбрать входную часть регистра.

©National Instruments Corporation

10-17

Учебный курс LabVIEW Основы I

Урок 10 Анализ и сохранение результатов измерений

Щелкните на левом входном туннеле refnum, чтобы заменить туннель сдвиговым регистром.

Поместите функцию Close File справа от цикла While.

Соедините выходной туннель refnum с терминалом refnum input функции Close File.

Соедините выходной туннель ошибки с терминалом error in

функции Close File.

9.Отобразите массив, сгенерированный на выходе цикла While.

Щелкните правой кнопкой на верхнем индексированном туннеле и выберите в контекстном меню Create>>Indicator.

Назовите индикатор Теги.

Щелкните правой кнопкой на нижнем индексированном туннеле и выберите в контекстном меню Create>>Indicator.

Назовите индикатор Данные.

10.Проверьте наличие ошибок.

Поместите Simple Error Handler справа от функции Close File.

Соедините терминал error out функции Close File с терминалом error in обработчика ошибок.

11.Сохраните ВП.

12.Откройте лицевую панель ВП.

13.Расширьте индикаторы, чтобы показать по несколько элементов массивов.

14.Запустите ВП.

На рис. 10-5 показан пример лицевой панели после запуска ВП. Как видите, все очень похоже на открытие текстового файла. Однако имена полей не очень понятны. В оставшейся части упражнения вы измените ВП так, чтобы он выполнял разбор данных, делая их более удобочитаемыми.

©National Instruments Corporation

10-18

Учебный курс LabVIEW Основы I

Урок 10 Анализ и сохранение результатов измерений

Рис. 10-5. Чтение визитки без разбора данных.

Чтобы упростить вам работу, два ВП уже построены заранее. Один из них создает массив, каждый элемент которого представляет собой кластер с тегом и удобочитаемым именем для поля данных. Второй ВП открывает диалог с таблицей, которая содержит окончательный результат.

15.Перейдите на блок-диаграмму.

16.Удалите индикаторы для тегов и данных.

17.Удалите проводник, соединяющий функцию Close File с обработчиком ошибок.

©National Instruments Corporation

10-19

Учебный курс LabVIEW Основы I

Урок 10 Анализ и сохранение результатов измерений

Рис. 10-6. Блок-диаграмма ВП Read VCard.

18.Отодвиньте обработчик ошибок в сторону. Он будет использован позже.

19.Включите в программу массив тегов и имен полей.

Поместите справа от функции Close File ВП Vcard Tags.vi. Он находится в каталоге C:\Exercises\ LabVIEW Basics I\Чтение визиток.

Совет Чтобы найти ВП, отсутствующий на палитре функций, используйте категорию Select a VI. Поместив ВП на блок-диаграмму, вы можете его открыть и изучить, дважды щелкнув на нем.

©National Instruments Corporation

10-20

Учебный курс LabVIEW Основы I

Урок 10 Анализ и сохранение результатов измерений

Соедините терминал error out функции Close File с терминалом error in ВП Vcard Tags.

20.Создайте двумерный массив, содержащий имена полей и соответствующие данные.

Поместите цикл For справа от ВП Vcard Tags.

Соедините терминал Array ВП Vcard Tags с циклом, чтобы создать входной туннель. Заметьте, что индексация была включена автоматически.

Поместите функцию Unbundle By Name в цикл For.

Соедините индексированный входной туннель с функцией

Unbundle By Name.

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

Поместите справа от функции Unbundle By Name функцию

Search 1D Array.

Соедините элемент Field Tag функции Unbundle By Name с

терминалом element функции Search 1D Array.

Соедините массив тегов с терминалом 1D Array функции Search 1D Array (Поиск в одномерном массиве). Массив тегов

— это верхний индексированный выходной туннель цикла While. На входном туннеле цикла For индексация должна быть выключена.

Поместите функцию Index Array справа от функции Search 1D Array.

Соедините массив данных с терминалом array функции Index Array. Массив данных — это нижний индексированный выходной туннель цикла While. На входном туннеле цикла For индексация должна быть выключена.

Соедините терминал index of element функции Search 1D Array с терминалом index функции Index Array.

Поместите функцию Search and Replace String (Поиск и замена строки) справа от функции Index Array.

Соедините терминал element функции Index Array с

терминалом input string функции Search and Replace String.

Щелкните правой кнопкой на терминале search string функции Search and Replace String и выберите в контекстном меню Create>>Constant.

Введите в строковую константу точку с запятой (;).

Поместите под строковой константой константу End of Line (Конец строки).

Соедините константу End of Line с терминалом replace string

функции Search and Replace.

Щелкните правой кнопкой на терминале replace all?(F) функции Search and Replace и выберите в контекстном меню

Create>>Constant.

©National Instruments Corporation

10-21

Учебный курс LabVIEW Основы I

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]