Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

конспект Гугнин

.pdf
Скачиваний:
83
Добавлен:
10.02.2016
Размер:
3.18 Mб
Скачать

Для преобразования массива в строку электронной таблицы ВП использует функцию Массив в строку табличного формата (Array To Spreadsheet String) из палитры строковых функций.

Вход формат (format) определяет способ преобразования входных данных в строку. По умолчанию установлен определитель формата %.3f.

Вход путь к файлу (file path) определяет путь к файлу, в который производится запись. Если вход не подключен, то открывается диалоговое окно для указания пути.

На вход двумерные данные (2D data) подаются числа с одинарной точностью, которые ВП записывает в файл, если вход одномерные данные (1D data) не подключен или на него ничего не поступает.

На вход одномерные данные (1D data) также поступают числа с одинарной точностью, записываемые в файл. ВП преобразует одномерный массив в двумерный, предварительно транспонируя и преобразуя его в строку, а затем записывает его в файл.

Вход добавить к файлу (append to file?) устанавливается в состояние ИСТИНА, если данные добавляются к существующему файлу, и устанавливается в состояние ЛОЖЬ (состояние по умолчанию) при записи данных в новый файл или перезаписи существующего файла.

Вход транспонировать? (transpose?) определяет выполнение транспонирования данных (состояние ИСТИНА) или передачу данных без транспонирования (состояние ЛОЖЬ) (по умолчанию).

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

Выход новый путь к файлу (new file path) определяет путь к файлу, в который ВП произвел запись данных.

ВП Read From

Spreadsheet File.VI счи-

тывает определенное число линий или строк из текстового файла, начиная с определён-

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

Вход число строк (number of rows) определяет максимальное число строк или линий, считываемых ВП. Для данного ВП линия – это строка элементов, заканчивающаяся символами «возврат каретки», «перевод строки» или «возврат каретки», сопровождаемый символом «перевод строки».

Вход смещение начала считывания (start of read offset) определяет позицию в файле, задаваемую числом символов, с которой ВП начинает чтение.

127

Вход максимальное число символов в строке (max characters/row) задает максимальное число символов, считываемых ВП перед окончанием поиска конца строки или линии.

Входы формат (format), путь к файлу (file path), транспонировать (transpose(no:F)) и разделитель (delimiter(\t)) идентичны одноименным входам рассмотренного выше ВП Записать в файл табличного формата (Write To

Spreadsheet File).

Выход новый путь к файлу (new file path) определяет путь к файлу, из которого ВП считал данные.

Выход все строки (all rows) отображает данные, считанные из файла, в форме двумерного массива чисел с одинарной точностью.

На выходе первая строка (first row) выводится первая строка из всего массива строк все строки.

Выход метка после чтения (mark after read) указывает на расположение метки файла после чтения.

Выход конец файла? (EOF?) устанавливается в состояние ИСТИНА при попытке чтения области после конца файла

14.6. Экспресс ВП ввода/вывода

Для наибольшего удобства разработчика в LabVIEW имеются две экс-

пресс функции для работы с файлами: Write To Measurement File и Read From Measurement File. Удобство экспресс ВП заключается в том, что они конфигурируются при помощи диалога и требуют минимального присоединения проводников. Файловые экспресс-функции работают со специальным типом файлов LabVIEW Measurement File, имеющим расширение .Ivm. Данные в таких файлах представлены в текстовом виде их при необходимости легко просмотреть и отредактировать любым текстовым редактором.

Write To Measurement File – запись в lvm-файл. Входные данные (скалярная величина, массив, осциллограмма, набор осциллограмм) подаются на терминал Signals, имеющий динамический тип. В диалоге имеется возможность настроить:

сохранение поступающих (от разных запусков ВП) данных в один файл или сохранить серию файлов;

имя файла или маску по которой будут создаваться имена файлов;

описание файла.

Read To Measurement File – считывание из lvm-файла. На выход Signals поступают данные предварительно записанные функцией Write To Measurement File. В диалоге можно настроить:

фиксированное имя файла;

возможность запроса имени от пользователя;

Так же в диалоге можно произвести тестовое считывание и увидеть данные в виде таблицы.

128

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

И закончим мы лекцию ответом на вопрос поставленный в конце предыдущей: Как сохранить изменения в отредактированной таблице. Для этого сделаем в блок-схеме и на лицевой панели некоторые изменения. Для разделения во времени процесса чтения и записи и записи данных таблицы в файл воспользуемся структурой Flat Sequence Structure на два кадра. В первом кадре разместим элемент File Path Control для определения пути к файлу, а при его отсутствии, и для его создания. И ВП Read From Spreadsheet File.VI для чтения сохранённых ранее изменений содержания таблицы. Во втором кадре для создания возможности редактирования содержания таблицы добавили структуру While Loop и ВП Write to Spreadsheet File.VI для записи изменённых данных талицы. Окончательно ВП приобрел вид представленный на рис. 14.5.

Рис. 14.5. ВП сортировки, заполнения и сохранения данных таблицы

Вопросы для самопроверки к пятнадцатой лекции:

129

1.На какой палитре расположены функции файлового ввода/вывода?

2.Для чего предназначены функции файлового ввода/вывода?

3.Какую последовательность действий предусматривают стандартные операции ввода/вывода данных в файл из файла?

4.Для чего используются функции файлового ввода/вывода низкого

уровня?

5.Какие основные функции файлового ввода/вывода низкого уровня вам известны?

6.Как осуществить сохранение данных в новом или уже существующем

файле?

7.Как можно осуществить форматирование строк таблицы символов?

8.Для чего используются функции файлового ввода/вывода высокого

уровня?

9.Какие особенности имеют функции файлового ввода/вывода высокого

уровня?

10Какие основные экспресс ВП ввода/вывода вам известны? Литература для дополнительного обучения: [1, с.276 – 282; 2, с.132 –

169; 3, с.121 – 127].

Лекция 16 Цель лекции – освоение технологии сборки блок-диаграммы при помощи

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

15. ЭКСПРЕСС ВП

15.1. Использование экспресс ВП

Экспресс ВП представляют собой функции, которые в отличие от обычных функций предназначены для выполнения ряда общих задач. Параметры конкретной задачи настраиваются в отдельном диалоговом окне. В зависимости от выбранных задач у иконки экспресс ВП на блок-диаграмме появляются необходимые входы и выходы. Иконка отличается от обычных функций синем полем, окружающем изображение иконки. Экспресс ВП расположены на палитре Functions Express. Ниже описаны некоторые Экспресс ВП.

Экспресс_ВП – Подсказка пользователю для ввода (Prompt User for Input) отображает стандартное диалоговое окно, которое подсказывает пользователям ввести такую информацию, как, например, имя пользователя и пароль

(рис. 15.1).

Диалоговое окно данного Экспресс ВП имеет следующие опции Отображаемое сообщение (Message to Display) – содержит текст, отобра-

жаемый в диалоговом окне.

Отображаемые кнопки (Buttons to Display) – содержит следующие опции:

130

имя первой кнопки (First button name) – определяет текст, который появляется на первой кнопке, по умолчанию на первую кнопку выводится текст OK;

имя второй кнопки (Second button name) – определяет текст, который появляется на второй кнопке, по умолчанию на вторую кнопку выводится текст Cancel – эта опция доступна только при установке отметки Отображать вторую кнопку (Display second button) в соответствующем окошке;

отображать вторую кнопку (Display second button) – определяет возможность отображения второй кнопки в диалоговом окне.

Рис.15.1. Диалоговое окно конфигурирования ВП Prompt User for Input

Входы (Inputs) – определяет имя и тип данных элементов управления, которые появляются в диалоговом окне. Имя входа (Input Name) определяет имя элемента управления и инструктирует пользователей – что вводить в этот элемент.

Тип входных данных (Input Data Type) – определяет тип элементов управления, которые используются в диалоговом окне. Предусмотрен выбор следующих типов: числовой, окно выбора или окно ввода текста.

Название окна (Window Title) – содержит текст, отображаемый в полосе названия диалогового окна.

Экспресс ВП – Вывести сообщение пользователю (Display Message to User) выво-

дит пользователю настраиваемое диалоговое окно с одной или двумя кнопками. Настройка данного ВП во многом аналогична настройке

131

ВП Prompt User for Input. Пример использования экспрес ВП Display Message to User и Prompt User for Input представлен на рис. 15.2.

Экспресс ВП – Создать текст (Build Text) создает строку из любого количества входных переменных численного, логического или строкового типа. Существует возможность

настроить вид отображения для каждой переменной.Пример диалогового окна настройки экспресс ВП Build Text, блок-диаграмма и лицевая панель ВП с использованием данного экспресс прибора приведены на рис.15.3.

Рис. 15.2. ВП использующий два Экспресс ВП

Экспресс ВП – Моделировать сигнал

(Simulate Signal) имитирует синусоидальное, прямоугольное, треугольное, пилообразное колебание или шумовой сигнал.

Этот Экспресс-ВП использует функциональность следующих ВП: Осциллограмма с гауссовским белым

шумом (Gaussian White Noise Waveform),

Осциллограмма с периодическим случайным шумом (Periodic Random Noise Waveform), Осциллограмма с равномерным белым шумом (Uniform White Noise

Waveform), Основной генератор функций (Basic Function Generator),

Осциллограмма с пилообразным колебанием (Sawtooth Waveform), Осциллограмма с синусоидальным колебанием (SineWaveform), Осциллограмма с прямоугольным колебанием (Square Waveform), Осциллограмма с треугольным колебанием (Triangle Waveform).

132

Рис.15.3. Пример настройки и использования экспресс ВП Build Tex

Экспресс ВП – Отчет (Report) cоздает отчет, в виде htmlфайла или распечатывает на отчет на принтере.

Экспресс ВП – Формула (Formula) (рис. 15.4) позволяет производить математическую обработку входных данных, обеспечиваемую базовыми научными калькуляторами.

Использование экспресс ВП значительно упрощает набор блок-диаграммы, поскольку каждый экспресс ВП можно настроить под конкретную за-

дачу. При этом в блок-диаграмме экспресс ВП будет показан в виде одной иконки. Иначе говоря, на палитре функций Express уже создано множество

133

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

Рис. 15.4. Вид диалогового окна экспресс ВП Formula

15.2. Динамический тип данных (Dynamic Data Type)

Большинство экспресс ВП работают с динамическим типом данных (Dynamic Data Type), который может содержать различные данные, например, число, осциллограмму и т.п., а также свойства этих данных. Свойствами могут быть время получения данных, их название. Провода и терминалы динамического типа данных представляются на блок диаграмме темно-синим цветом. Вы можете соединить терминал этого типа с любым типом элемента индикации (включая числовой, булевого и т.п.). LabVIEW автоматически определит, что именно вывести на этот элемент индикации: график, число или логическую переменную. Что такое динамический тип данных можно увидеть из следующих примеров.

Если вы для имитации экспериментальных данных используете экспресс ВП Simulate Signal и выводите снятые данные на график, то на графике будет показан как сам график, его название (оно указывается отдельно), так и информация о времени, в которое были получены эти данные. При этом шкала X графика автоматически настраивается в соответствии с указанным временем. Если вы для разложения полученного сигнала в ряд Фурье используете экспресс ВП Spectral Measurements и выводите полученный результат на график, то указанный результат автоматически отображается в частотной области в соответствии с атрибутами, установленными внутри динамического типа данных.

134

В отличие от статических типов данных, с которыми работают обычные функции, в контекстном меню поле вывода экспресс ВП с динамическим типом данных можно выбрать соответствующих элемент индикации: Create Graph Indicator для отображения данных на графике или Create Numeric Indicator

для отображения численного значения.

Обычные функции не принимают динамический тип данных. В случае необходимости динамический тип данных можно преобразовать в статический при помощи соответствующих функций:

Convert from Dynamic Data - преобразование из динамического типа.

Converting to Dynamic Data - преобразование в динамический тип.

Вызов этих функций осуществляется из палитры Functions Express.

Express Signal Manipulation.

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

15.3. Создание собственного меню

Возможность создания своего меню в ВП проиллюстрируем примером. В нем добавим в стандартный раздел меню «File» еще один пункт «Стор». Общее управление пунктами меню производится в редакторе меню Edit Run-Time Menu... Диалоговое окно редактора показано на рис. 15.5.

Рис. 15.5. Диалоговое окно редактора пользовательского меню

135

Вокне слева представлен список пунктов меню, а справа свойства выбранного пункта.

Вниспадающем меню сверху выберите то меню, с которым наш ВП будет работать. Этих пунктов всего три: Default, Minimal, Custom. Первый относится к тому меню, которое установлено по умолчанию. Второй представляет собой минимальный набор общепринятых пунктов меню. Последний мы и будем использовать. Он позволяет создать собственное меню. При выборе этого пользовательского меню рядом находящиеся кнопки управления пунктами меню активизируются. Можно перемещать, добавлять и удалять отдельные пункты. В примере предполагается добавить только один пункт, хотя пунктов можно добавить сколько нужно, как впрочем и разделов меню. Сначала добавим в пользовательское меню раздел «File». Для этого в поле Item Туре выберем

Application Item File Entire Menu. Этим вы добавили все ниспадающее ме-

ню раздела «File». Такую же процедуру можно проделать для остальных элементов Application Item, если это понадобится, а можно сделать и свои разделы воспользовавшись пунктами раздела Edit меню редактора пользовательского меню.

Допустим, новый пункт будет располагаться между элементами «Open…» и «Close…». Тогда установим курсор на элементе «Open…» и нажмем кнопку добавления нового элемента , в меню она самая левая в ряду кнопок управления.

Справа в поле Item Name введём имя элемента «Стор» и в поле Item Tag также появится строка «Стор». Эта строка представляет собой ссылку на этот элемент меню. С помощью пункта «Save As …» раздела «File» главного меню редактора сохраним пользовательское меню в отдельном файле. Теперь перейдём к ВП. Создадим любой простейший ВП или используем уже существующий проект. Поместим на блок-диаграмме цикл While Loop.

Поместите на блок-диаграмму в цикл While Loop структуру события Event Structure. В контекстном меню структуры Event Structure добавим еще одно событие нажав «Add Event Case…». В поле Event Sources выберем This VI.

В поле Events - Menu Selection (User). Таким образом, вы к имеющемуся варианту структуры событий добавляете еще один вариант, блок-диаграмма которого будет выполняться, когда будет выбран пункт пользовательского меню (в данном случае это добавленный нами пункт «Стор»). Подтвердим все изменения, нажав кнопку [ОК].

Поместим на блок-диаграмму в структуру события Event Structure структуру варианта Case Structure . Соединим терминал ItemTag с терминалом селектора варианта Case Structure. Вместо True в заголовке варианта запишем «Стор». А внутри этого варианта создадим строковую константу, например, «Прервать?». Эту постоянную подключим к функции Functions ProgrammingDialog & User Interface Two Button Dialog. А функцию Two Button Dialog

подключим к терминалу Continue if True структуры While Loop. В вариант «”False”, Default» структуры Case Structure поместим логическую постоянную FALSE и соединим её с терминалом Continue if True структуры While Loop. Программа готова.

136