Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASVT Материалы / основы_labview_basics_2.pdf
Скачиваний:
133
Добавлен:
29.03.2016
Размер:
3.71 Mб
Скачать

решения этой задачи с использованием машины состояний приведен на Рисунок 3-31. Предложены следующие состояния: Перегрев, Переохлаждение, Сильный ветер и Генерация предупреждений.

Изучите ВП Определение предупреждений с Машиной состояний.vi с этим решением, который расположен в каталоге C:/Упражнения/LabVIEW Основы I/Определение предупреждений. Это решение также будет использовано в финальном Проекте настоящего Учебного курса.

Рисунок 3-31. Диаграмма ВП с упрощенным алгоритмом – улучшена читабельность, модифицируемость и масштабируемость.

Раздел 3.05 Конец Упражнения 3-2

3-33

Раздел 3.06

Раздел 3.07 Оперативная справка

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

Когда следует проводить переработку этого Занятия.

Блок-диаграмма слишком плохо организована.

Блок-диаграмма содержит много неясных имен терминалов и функций и плохо понятные иконки ВПП.

Блок-диаграмма содержит ненужные логические конструкции.

Алгоритм не следует принципу программирования «по потоку данных».

Диаграмма содержит очень сложный и громоздкий алгоритм.

Диаграмма слишком велика

3-34

Примечания

3-35

4

4. Управление интерфейсом пользователя

Часто при создании ВП необходимо программно управлять атрибутами объектов лицевой панели. Например, вы, возможно, захотите скрыть какой-либо объект до тех пор, пока выполнение программы не дойдет до определенного этапа. С этой целью в LabVIEW используется сервер ВП (VI Server) для организации доступа к свойствам и методам объектов лицевой панели. На этом занятии вы изучите сервер ВП, Узлы Свойств (Property Nodes), Ссылки на элементы управления (control references), а

также Узлы Вызовов (Invoke Nodes).

Темы:

А. Архитектура Сервера ВП

Б. Узлы Свойств

В. Ссылки на элементы управления

Г. Узлы Вызовов

4-1

А. Архитектура сервера ВП

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

Терминология объектно-ориентированного программирования

Объектно-ориентированное программирование основано на использовании объектов. Объект представляет собой элемент класса. Класс, в свою очередь, определяет, что объект может выполнять, какие операции он может совершать (методы), а также какими свойствами он обладает, например, цвет, размеры и т.д.

Объекты могут иметь методы и свойства. Методы выполняют операции, например, возвращение значения объекта к принятому по умолчанию. Свойства представляют собой атрибуты объекта. Свойствами объекта могут быть его размеры, цвет, видимость и т.д.

Классы элементов управления

Объекты лицевой панели LabVIEW наследуют свойства и методы от класса. Например, кнопка Стоп является объектом класса логических элементов управления и, как показано на рисунке 4-1, имеет свойства и методы, соответствующие этому классу.

Рисунок 4-1. Пример класса логических элементов управления

Класс ВП

4-2

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

Б. Узлы свойств

Узлы Свойств открываюn доступ к свойствам объекта. В ряде приложений вам понадобится программно изменять внешний вид объектов лицевой панели в ответ на те или иные события. Например, если оператор ввел неправильный пароль, можно перевести красный светодиодный индикатор в режим мерцания. Еще типичный пример – изменение цвета кривой на графике с зеленого на красный, скажем, в случае превышения сигналом некоторого значения. Узлы Свойств (Property Nodes) позволяют вам выполнить такие изменения программно. Вы можете также использовать Узлы Свойств для изменения размеров и положения объектов лицевой панели, для скрытия элементов, добавления курсоров на графики и так далее.

Узлы Свойств в LabVIEW очень эффективны и имеют много применений. На этом занятии вы научитесь пользоваться узлами свойств для программного изменения внешнего вида и функциональности объектов лицевой панели. Вы можете также обратиться к Руководству Пользователя LabVIEW (LabVIEW User Manual) за более подробным описанием Узлов Свойств.

Создание Узлов Свойств

Для создания Узла Свойств щёлкните правой кнопкой мыши по объекту лицевой панели и в контекстном меню выберите опцию Create»Property Node (Создать»Узел Свойств) и затем определенное свойство. При этом LabVIEW создает на диаграмме ВП Узел Свойств, относящийся (но не связанный явно проводником данных) к объекту лицевой панели.

Если объект имеет собственный ярлык, Узлу Свойств будет присвоен такой же ярлык, который впоследствии можно изменить. Вы можете создать несколько Узлов Свойств, относящихся к одному и тому же объекту.

Использование Узлов Свойств

4-3

Когда вы создаете Узел Свойств, он изначально имеет один терминал, обозначающий свойство объекта лицевой панели, которое можно изменить: установить (записать), либо считать.

Например, если создать Узел Свойств для числового элемента управления (Numeric control), он появится на диаграмме со свойством Visible (Видимость), установленным по умолчанию. Маленькая стрелка справа терминала показывает, что свойство доступно для чтения. Вы можете изменить его на запись, щелкнув по нему правой кнопкой мыши и выбрав опцию Change To Write (Изменить на Запись) из контекстного меню. Если после этого подключить к терминалу логическое значение False (Ложь), данный числовой элемент управления перестанет отображаться на лицевой панели после того, как Узел Свойств считает логическое значение. Чтобы элемент управления появился вновь, необходимо подать на терминал логическое значение True (Истина).

Рисунок 4-2. Использование Узлов Свойств

Для считывания информации об определенном свойстве, щелкните правой кнопкой мыши по узлу свойств и выберите в контекстном меню опцию Change to Read (Изменить на Чтение). Чтобы установить (записать) информацию о свойстве, нужно выбрать опцию Change to Write (Изменить на Запись). Текущий статус доступа к свойству очень легко определить по расположению маленькой терминальной стрелки: если она расположена в правой части терминала, вы считываете свойство, если же в левой – записываете. В предыдущем примере, если Узел Свойств установлен на чтение, то при выполнении он возвращает логическое значение True для видимого элемента управления и False – для невидимого (скрытого).

Примечание. Некоторые свойства разрешены только для чтения или только для записи. Примером первого является свойство Label (Ярлык), а второго –

Value (Signaling).

Вы можете считывать/записывать несколько свойств в одном Узле Свойств – для этого достаточно добавить соответствующее количество терминалов. Это можно сделать из контекстного меню, выбрав опцию Add Element (Добавить Элемент) или просто растянуть на нужное число позиций терминал Узла при помощи инструмента позиционирования Стрелка. Затем из контекстного меню каждого терминала Узла Свойств можно выбрать определенное свойство.

4-4

Совет. Узлы Свойств осуществляют запись или чтение свойств по очереди в направлении сверху вниз.

Некоторые свойства объектов представляют собой кластеры, объединяющие несколько логически связанных свойств. Запись значений в такие свойства требует использования функции Bundle (Объединить), а считывание – функции Unbundle (Разделить). Для доступа к таким свойствам нужно выбрать в контекстном меню узла опцию, содержащую запись All Elements (Все Элементы). Например, выбирая в контекстном меню Узла Свойств опцию Properties»Position»All Elements

(Свойства»Расположение»Все элементы) вы получите кластер с координатами соответствующего элемента управления.

Однако вы по-прежнему можете получить доступ к элементам кластера как к независимым свойствам. Пример этого приведен на рисунке 4-3.

Рисунок 4-3. Свойства, использующие кластеры

4-5

Упражнение 4-1. ВП Температурная Уставка

Цель

Использовать Узлы Свойств для программного изменения свойств объектов лицевой панели.

Описание работы

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

Устанавливать шаг по оси X графика развертки согласно скорости выборки данных (в секундах).

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

Изменять цвет графика при превышении сигналом заданного уровня (уставки).

В этом же случае включать режим мерцания индикатора тревоги.

Разработка

Данный ВП уже частично создан. Вам осталось добавить следующие Узлы Свойств:

Тип

Имя

Свойство

 

 

 

Waveform Chart

 

XScale.Multiplier

(Развертка

Температура

(множитель шкалы Х)

осциллограмм)

 

 

 

Waveform Chart

Температура

History (История)

 

 

 

Waveform Chart

Температура

Active Plot 0» Plot.Color

(Цвет графика)

 

 

LED (Светодиодный

Превышение

Blinking (Мерцание)

индикатор)

предела

 

 

 

 

Создание ВП

1.Откройте ВП Температурная уставка, расположенный в папке C:\Упражнения\LabVIEW Основы II\

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

4-6

Рисунок 4-4. Лицевая панель ВП Температурная уставка

2.Откройте блок-диаграмму данного ВП. Часть её уже создана. Пример окончательной блок-диаграммы приведен на рисунке

4-5.

Рисунок 4-5. Блок-диаграмма ВП Температурная уставка

3.Измените ВП так, чтобы шаг по оси X графика ( Х) был пропорционален скорости сбора данных.

Щелкните правой кнопкой мыши по терминалу графика развертки Температура и выберите из контекстного меню опцию Create»Property Node»X Scale»Offset and

Multiplier»Multiplier (Создать»Узел Свойств»Шкала Х»Смещение и Множитель»Множитель), чтобы создать Узел Свойств.

4-7

Поместите созданный Узел Свойств слева от Цикла по условию.

Вызовите контекстное меню этого Узла Свойств и выберите в нем опцию Change All To Write.

Разделите Частоту Выборки на 1000 для определения множителя шкалы Х (X-Scale Multiplier), как показано на рисунке 4-5.

4.Измените ВП, чтобы он очищал график температуры перед началом сбора данных.

Совет. Для очистки развертки осциллограмм отправьте пустой массив на вход свойства History Data на блок-диаграмме.

Измените размер Узла Свойств до 2 терминалов.

Для второго терминала выберите свойство History Data (История данных).

Вызовите контекстное меню Узла Свойств и выберите в нем опцию Change All To Write.

Вызовите контекстное меню свойства History Data и выберите в нем опцию Create»Constant (Создать константу).

Только что созданный код заключите в структуру последовательности Flat Sequence, чтобы заставить его выполняться перед Циклом по условию.

Выполните подключения Узла Свойств как показано на рисунке 4-5.

5.Измените ВП таким образом, чтобы в случае, когда температура превысит уставку график Данных становился красным.

Вызовите контекстное меню терминала Температура и создайте ещё один Узел Свойств, выбрав опцию

Create»Property Node»Active Plot (Активный график).

Поместите новый Узел Свойств в вариант True структуры Варианта.

Увеличьте количество терминалов Узла Свойств до двух.

Щелкните курсором мышки по второму терминалу и выберите Plot»Plot Color (Цвет графика).

Вызовите контекстное меню Узла Свойств и выберите в нем опцию Change All To Write.

4-8

Присоедините числовую константу со значением 0 к свойству Active Plot для выбора первого графика на развертке осциллограмм Температура.

Присоедините цветовую константу Red Color Box к свойству Plot Color для окрашивания графика в красный цвет в случае превышения температурой верхней уставки.

Скопируйте данный Узел Свойств, удерживая нажатой клавишу <Ctrl> и перетаскивая выбранный Узел Свойств.

Совет. Не используйте буфер обмена (Edit»Copy) для копирования Узла Свойств. В противном случае будет создан другой тип Узла Свойств, о котором вы узнаете в следующем разделе.

Поместите копию Узла Свойств в вариант False структуры Варианта, как показано на рисунке 4-6.

Присоедините числовую константу со значением 0 к свойству Active Plot для выбора первого графика на развертке осциллограмм Температура.

Присоедините цветовую константу Green Color Box к свойству Plot Color для окрашивания графика в зеленый цвет в случае, когда значение температуры ниже верхней уставки.

Рисунок 4-6. Вариант False в ВП Температурная уставка

6.Измените ВП таким образом, чтобы в случае, когда температура превысит уставку, индикатор Превышение предела начинал мерцать.

Вызовите контекстное меню терминала Превышение предела и выберите в нем опцию Create»Property Node»Blinking.

Вызовите контекстное меню Узла Свойств и выберите в нем опцию Change All To Write.

Выполните подсоединения к Узлу Свойств как показано на рисунке 4-5.

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

Проверка

4-9

1.Запустите ВП, чтобы проверить, что он работает правильно.

2.Закройте ВП.

Конец Упражнения 4-1

4-10

В. Ссылки на элементы управления

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

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

На данном занятии вы познакомитесь лишь с одним из способов использования ссылок на элементы управления. Если вас интересуют другие возможности и подробности их использования, ознакомьтесь с разделом Controlling Front Panel Objects (Управление Объектами Лицевой панели) справки

LabVIEW (LabVIEW Help).

Создание ВПП с Узлами Свойств

Как показано на рисунке 4-7, простейший способ создания явно связанных Узлов Свойств состоит из следующих этапов:

1.Создайте ВП.

2.Выделите часть блок-диаграммы, из которой вы хотите создать ВПП, как показано в левой части рисунка 4-7.

3.В менюEdit выберите Create SubVI. LabVIEW автоматически создаст ссылки на элементы управления, необходимые для ВПП.

4.Настройте и сохраните ВПП. Из второй части рисунка 4-7 видно, что для ВПП используются иконка и соединительная панель, принятые по умолчанию.

4-11

 

 

Объекты, выделенные для создания ВПП

Использована опция Edit»Create SubVI

 

 

Рисунок 4-7. Использование меню Edit»Create SubVI для создания ссылок на элементы управления

Созданный ВПП показан на рисунке 4-8. Обратите внимание, что на лицевой панели был создан элемент управления ссылкой Control Refnum, терминал которого присоединен к узлу свойств на блок-диаграмме.

 

 

Лицевая панель созданного ВПП

Блок диаграмма созданного ВПП

Рисунок 4-8. ВПП, созданный с использованием меню Edit»Create SubVI

Примечание. Красная звездочка на элементе управления Control Reference означает, что ссылка refnum – с жесткой привязкой (strictly typed). Дополнительную информацию о Ссылках на элементы управления с жесткой и слабой привязкой можно найти в параграфе Strictly Typed and Weakly Typed Control References раздела Controlling Front Panel Objects

(Управление Объектами Лицевой панели) справки LabVIEW (LabVIEW Help).

Создание Ссылок на элементы управления

Для того чтобы создать ссылку на элемент управления для объекта лицевой панели, щелкните правой кнопкой мыши по объекту либо его терминалу на блок-диаграмме и из контекстного меню выберите опцию Create»Reference

(Создать»Ссылку).

4-12

Вы можете присоединить эту ссылку к общему Узлу Свойств или с помощью терминала элемента управления ссылкой (control refnum) передать её в ВПП.

Использование Ссылок на элементы управления

Использование метода ссылки на элемент управления очень полезно в случае настройки одного и того же свойства для нескольких элементов управления. Некоторые свойства присущи всем классам элементов управления, например свойство блокировки Disabled. Другие же свойства характерны только для определенных классов, как например свойство Housing Size (размер внешней области) применимо только для элементов управления – ручек Dial и Knob.

Следующий пример показывает, каким образом использовать Ссылку на Элемент Управления внутри ВПП для задания состояния Enable/Disable элемента лицевой панели главного ВП.

 

 

Главный ВП

ВПП

 

 

Рисунок 4-9. Ссылки на элементы управления

Главный ВП передает ссылку на числовой элемент управления в ВПП вместе с величиной перечислимого типа, принимающей значения 0, 1 или 2. ВПП принимает ссылку через элемент управления Ctl Refnum (Ссылка на Элемент Управления) на лицевой панели. Эта ссылка затем передается в Узел Свойств внутри ВПП. Поскольку теперь Узел Свойств имеет обратную связь с исходным элементом управления в главном ВП, он может быть использован для изменения свойств этого элемента, в частности, свойства Enable/Disable.

4-13

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

Выбор типа элемента управления

Когда вы поместите Ссылку на элемент управления (Control Refnum) на лицевую панель ВПП необходимо будет задать Класс Сервера ВП (VI Server Class) для этого элемента управления. Эта операция позволит определить тип ссылок, которые ВПП будет принимать. В предыдущем примере типом Класса Сервера ВП был выбран Control, как видно из рисунка 4-9. Это позволяет ВП принимать ссылку на любой тип элемента управления на лицевой панели.

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

Для выбора определенного класса элемента управления вызовите контекстное меню элемента и выберите в нем опцию Select VI Server Class»Generic»GObject»Control. Затем выберите необходимый класс.

4-14

Упражнение 4-2. Задание имен графиков

Цель

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

Описание работы

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

Разработка

Входные и выходные параметры

Тип

Имя

Значение по

умолчанию

 

 

Ссылка на объект

Ссылка на график

нет

GraphChart

 

 

1-D массив строк –

Имена графиков

Пустой массив

элемент управления

 

 

Кластер ошибок –

Error In

Нет ошибки

элемент управления

 

 

Кластер ошибок –

Error Out

Нет ошибки

индикатор

 

 

Ссылки на элементы управления

Единственный класс, содержащий и развертку и график осциллограмм, – это GraphChart. Для того чтобы создаваемый ВПП мог принимать ссылки на оба типа графиков, необходимо использовать ссылки на элементы управления со слабой привязкой из класса GraphChart. Однако данный класс содержит другие графики и развертки, такие как XY Graph. Поэтому данный ВПП должен генерировать ошибку, если пользователь присоединит любой другой тип графика отличный от Waveform Chart или Waveform Graph. Проверить, правильный ли тип присоединил пользователь, можно с помощью свойства ClassName (имя класса), которое будет управлять структурой Варианта. Если присоединен правильный класс, используйте функцию To More Specific Class для получения ссылки на подходящий подкласс. После получения ссылки на график или развертку осциллограмм вы можете задать свойства, изменяющие имена графиков.

Свойства

4-15

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

ClassName — Это свойство возвращает строку, содержащую имя класса объекта, свойство которого вызывается. Данное свойство доступно для любого элемента управления.

LegAutosize — Это свойство управляет автоматическим изменением размеров панели настройки графика (Graph Legend), чтобы подстроиться под определенное количество имен графиков. Перед изменением имен графиков необходимо установить это свойство в состояние false. В противном случае панель настройки может так изменить свой размер, что отделится от графического индикатора либо накроет его или другие элементы управления.

LegPlots — Это свойство управляет количеством графиков, которые видно в панели настройки. При размещении панели настройки не забудьте оставить место под её увеличение, когда будете настраивать это свойство. Панель настройки расширяется вниз.

ActPlot — Свойство, делающее активным один из графиков в данный момент времени. Если в какой-то момент времени устанавливается либо считывается какое-либо свойство, оно воздействует на активный график. Графики нумеруются последовательно по мере их создания, начиная с нуля.

Plot.Name — Свойство, задающее имя активному графику.

Создание ВП

1.Откройте новый ВП.

2.Сохраните его под именем Задание имен графиков.vi в

папке C:\Упражнения\LabVIEW Основы II\Задание имен графиков.

3.Создайте лицевую панель ВП.

Поместите на лицевую панель ссылку Control Refnum.

Назовите её Ссылка на график.

Вызовите контекстное меню Ссылки на график и выберите в нем опцию Select VI Server Class»Generic »GObject» Control» GraphChart» GraphChart.

Поместите на лицевую панель шаблон массива.

4-16

Назовите его Имена графиков.

Внутрь шаблона поместите строковый элемент

управления String Control.

Создайте на лицевой панели кластер ошибок Error In.

Создайте на лицевой панели кластер ошибок Error Out.

Расположите элементы как показано на рисунке 4-10.

Рисунок 4-10. Лицевая панель ВП Задание имен графиков

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

4.Переключитесь на блок-диаграмму.

5.Запрограммируйте идентификацию ссылки на элемент управления. В случае если класс неправилен, сгенерируйте ошибку.

4-17

Рисунок 4-11. Вариант Default

6.В палитре функций Functions, выберите подпалитру

Programming»Application Control (Программирование»Управление Приложением).

Большинство функций, используемых в данном разделе, находятся в этой подпалитре.

Поместите на блок-диаграмму Узел Свойств.

Соедините Ссылку на график со входом reference Узла Свойств.

В разделе property Узла Свойств выберите Class Name.

Поместите на блок-диаграмму структуру Варианта, как показано на рисунке 4-11.

Выход ClassName из Узла Свойств соедините со входом селектора структуры Варианта.

Переключитесь на вариант "False", Default.

Удалите текст False в наименовании варианта, так чтобы имя совпадало с указанным на рисунке 4-11.

Примечание. Вариант Default выбран для случая, когда класс ссылки на элемент управления не совпадает ни с одним из других вариантов. Тогда при выполнении этого варианта ссылка на элемент управления, вошедшая в ВПП, не будет ссылкой на Waveform Graph либо Waveform Chart.

Поместите ВП Error Cluster From Error Code в структуру Варианта.

Щелкните правой кнопкой мыши на входе error code ВП

Error Cluster From Error Code и выберите в контекстном меню опцию Create»Constant.

Введите в константу значение 1057.

Примечание. Код ошибки 1057 соответствует сообщению Object cannot be typecasted to the specified type (Тип объекта не может быть приведен к заданному). Эта ошибка соответствует случаю, когда главный ВП передает ссылку на элемент управления неправильного класса.

Выполните подключения на блок-диаграмме, как показано на рисунке 4-11.

7.Запрограммируйте обработку ссылок на график осциллограмм.

4-18

Рисунок 4-12. Вариант WaveformGraph (График осциллограмм)

Переключитесь на вариант "True" структуры Варианта.

Измените текст True в имени варианта на, так чтобы вариант был похож на изображенный на рисунке 4-12.

Внутрь структуры Варианта поместите функцию To More Specific Class.

Щелкните правой кнопкой мыши на входе target class этой функции и выберите в контекстном меню опцию

Create»Constant.

Щелкните на константе Generic Class левой кнопкой мыши

ивыберите класс Generic»GObject» Control»GraphChart» WaveformGraph» WaveformGraph.

Внутрь структуры Варианта поместите Узел Свойств.

Выход specific class reference функции To More Specific Class присоедините к входу reference input Узла Свойств.

Щелкните левой кнопкой мыши на терминале Property Узла Свойств и выберите Legend»Autosize.

Увеличьте размер Узла Свойств, чтобы в нем отображались два свойства.

Щелкните левой кнопкой мыши на втором свойстве и выберите Legend»Plots Shown.

Вызовите контекстное меню Узла Свойств и выберите в нем опцию Change All To Write.

Щелкните правой кнопкой мыши по свойству LegAutosize и выберите в контекстном меню опцию Create»Constant. Убедитесь, что константа имеет значение False.

Внутрь структуры Варианта поместите функцию Array

4-19

Size.

Поместите также Цикл с фиксированным числом итераций внутрь структуры Варианта.

Внутрь Цикла с фиксированным числом итераций поместите Узел Свойств.

Присоедините выход dup reference Узла Свойств через границу цикла ко входу reference input второго Узла Свойств.

Щелкните левой кнопкой мыши на терминале Property Узла Свойств и выберите из списка Active Plot.

Увеличьте размер Узла Свойств, чтобы в нем отображались два свойства.

Щелкните левой кнопкой мыши на втором свойстве и выберите в списке Plot»Plot Name.

Вызовите контекстное меню Узла Свойств и выберите в нем опцию Change All To Write.

Выполните подключения на блок-диаграмме, как показано на рисунке 4-12. При проведении линии ошибок через цикл используйте сдвиговые регистры, а при вводе Имен графиков включите автоиндексацию туннеля.

8.Запрограммируйте обработку ссылок на развертки осциллограмм.

Рисунок 4-13. Вариант WaveformChart

Щелкните правой кнопкой мыши по границе структуры Варианта и выберите в контекстном меню опцию Duplicate Case (Дублировать Вариант).

Введите WaveformChart для имени варианта.

4-20

Щелкните левой кнопкой мыши на константе ссылки

WaveformGraph и выберите Generic»GOjbect» Control» GraphChart» WaveformChart.

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

Щелкните левой кнопкой мыши на каждом из четырех свойств и заново выберите необходимые свойства:

Legend»Autosize, Legend»Plots Shown, Active Plot и Plot»Plot Name. В результате блок-диаграмма должна выглядеть как показано на рисунке 4-13.

9.Создайте иконку и соединительную панель для ВПП, как показано на рисунке 4-14.

 

 

Соединения

Соединительная панель

Рисунок 4-14. Соединительная панель ВПП Задание имен графиков

Переключитесь на лицевую панель ВП.

Щелкните правой кнопкой мыши по иконке ВП и выберите в контекстном меню опцию Show Connector.

Щелкните правой кнопкой мыши по иконке соединительной панели и выберите опцию Patterns и затем один из шаблонов.

10.Выполните назначения соединительной панели.

Вызовите контекстное меню соединительной панели и выберите опцию Show Icon.

Щелкните правой кнопкой мыши по иконке и выберите Edit Icon в появившемся контекстном меню.

При создании иконки используйте инструменты редактора

Icon Editor.

Если хотите использовать уже созданный рисунок, зайдите в меню Edit»Import Picture From File

(Правка»Импортировать картинку из файла) и выберите

4-21

файл C:\Упражнения\LabVIEW Основы II\Задание имен графиков\Иконка для задания имен графиков.bmp. После этого в меню Edit выберите опцию

Paste.

Закройте редактор иконки после окончания работы.

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

Проверка работы ВП

1. Проверьте работу ВП, используя график осциллограмм.

Рисунок 4-15. Проверка ВПП Задание имен графиков

Создайте новый ВП.

Поместите на его лицевую панель график осциллограмм

Waveform Graph.

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

Вызовите контекстное меню терминала Waveform Graph и выберите в нем опцию Create»Reference.

Перетащите иконку ВПП Задание имен графиков на блокдиаграмму нового ВП.

Соедините ссылку WaveformGraph со входным терминалом Ссылка на график ВПП Задание имен графиков.

Щелкните правой кнопкой мыши на входе Имена графиков ВПП Задание имен графиков и в контекстном меню выберите опцию Create»Control. В итоге блок-диаграмма должна быть похожа на рисунок 4-15.

Переключитесь на лицевую панель нового ВП.

Введите Первый и Второй в качестве пунктов в массив Имена графиков.

4-22

Сдвиньте панель настройки графика Plot Legend направо от графического индикатора с тем, чтобы вы смогли беспрепятственно увеличить её размер.

Запустите ВП. Имена Первый и Второй появились в панели настройки.

2.Проверьте работу ВП, используя развертку осциллограмм.

Щелкните правой кнопкой мыши на графике осциллограмм и выберите в контекстном меню Replace»Graph Indicators»Waveform Chart.

Добавьте ещё один пункт Третий в массив Имен графиков.

Запустите ВП. Имя Третий появилось в панели настройки.

3.Проверьте работу ВП с графиком XY Graph.

Щелкните правой кнопкой мыши на развертке осциллограмм и выберите в контекстном меню

Replace»Graph Indicators» XY Graph.

Добавьте пункт Четвертый в массив Имен графиков.

Запустите ВП. Появится ошибка приведения типов.

4.Закройте ВП. Сохранять ВП, созданный для проверки ВПП Задание имен графиков, необходимости нет.

Конец Упражнения 4-2

4-23

Г. Узлы Вызовов

Узлы Вызовов (Invoke Nodes) используются для организации доступа к методам объекта.

Узел Вызова выполняет действия или методы над приложением или ВП. В отличие от Узла Свойств отдельный Узел Вызова выполняет только один метод над приложением или ВП. Выбрать метод можно с помощью инструмента Управление, щелкая курсором мыши на терминале method, либо вызывая контекстное меню на белом поле узла и выбирая в нем опцию Methods. Узел Вызова можно создать также, вызывая контекстное меню объекта, выбирая в нем опцию Create»Invoke Node и далее выбирая метод.

Имя метода является всегда первым терминалом в списке параметров Узла Вызова. Если метод возвращает значение, тогда это значение отображается на терминале метода. В противном случае терминал метода не будет иметь значения.

Список параметров Узла Вызова начинается сверху. Во главе списка идет наименование метода, а затем дополнительные параметры, написанные серым шрифтом.

Примеры методов

Примером метода, общего для всех элементов управления, является Reinitialize to Default (Установка в значение по умолчанию). Этот метод применяется для возврата значения элемента управления к значению по умолчанию на определенном этапе выполнения ВП. Класс ВП имеет похожий метод –

Reinitialize All to Default.

На рисунке 4-16 приведен пример метода, применяемого для класса Waveform Graph. Этот метод экспортирует изображение графика осциллограмм в буфер обмена или в файл.

Рисунок 4-16. Узел Вызова для метода Export Image

4-24

Упражнение 4-3. Свойства лицевой панели ВП

Цель

Изучить воздействие на атрибуты ВП с помощью Узлов Свойств и Узлов Вызовов.

Описание работы

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

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

Скрывать или показывать строку заголовка

Скрывать или показывать панель меню

Становиться прозрачным, так чтобы объекты позади ВП можно было увидеть.

Смещаться в центр экрана

Разработка

Входные и выходные параметры

Тип

Имя

Значение по

умолчанию

 

 

Вертикальный

Показать строку заголовка?

Истина

переключатель

 

 

Вертикальный

Показать панель меню?

Истина

переключатель

 

 

Вертикальный

Сделать ВП прозрачным?

Истина

переключатель

 

 

Кнопка OK

Переместить в центр?

Ложь

 

 

 

Кнопка Stop

Стоп

Ложь

 

 

 

Вертикальные переключатели применяется потому, что их механическое действие по умолчанию – переключиться при нажатии (switch when pressed). А кнопка OK выбрана из-за того, что её действие – сработать при отпускании (latch when released).

Свойства

Используйте следующие свойства и методы для класса ВП:

4-25

ShowMenuBar— Когда этому свойству присвоено значение истина, Панель меню будет видима.

Рисунок 4-17. Панель меню ВП

TitleBarVis— Когда этому свойству присвоено значение истина, строка заголовка будет видима.

Рисунок 4-18. Строка заголовка ВП

RunTransparently— Когда этому свойству присвоено значение истина, можно менять степень прозрачности ВП. По умолчанию это свойство находится в состоянии Ложь, таким образом, перед изменением прозрачности в это свойство необходимо записать значение Истина.

Transparency— Это свойство изменяет прозрачность ВП. На вход свойства подается любое значение в диапазоне от 0 до 100. Значение 0 делает ВП полностью видимым (нормальное состояние), а значение 100 – полностью прозрачным (невидимым). В данном упражнении вы зададите значение 50 после того, как будет нажата кнопка Сделать ВП прозрачным?

Методы

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

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

Center— Каждый раз при вызове данного метода ВП будет смещаться в центр экрана.

Совет. Для просмотра описания каждого конкретного свойства и метода используйте окно контекстной справки Context Help.

Структура ВП

ВП опрашивает элементы управления на лицевой панели каждые 50 миллисекунд и устанавливает значения свойств, основываясь на текущих значениях этих элементов управления. Структура Варианта призвана управлять выполнением метода Center.

4-26

Создание ВП

Выполняя следующие шаги, вы создадите лицевую панель ВП. Пример панели приведен на рисунке 4-19.

Рисунок 4-19. Лицевая панель ВП Свойства лицевой панели

1. Откройте новый ВП.

2. Сохраните его под именем Свойства лицевой панели.vi

в папке C:\Упражнения\LabVIEW Основы II\ Свойства лицевой панели.

3.Создайте вертикальный переключатель Показать панель меню?

Поместите вертикальный переключатель (Vertical Toggle Switch) на лицевую панель.

Назовите его Показать панель меню?

Создайте свободные ярлыки для состояний Да и Нет переключателя.

4.Создайте вертикальный переключатель Показать строку заголовка?

Сделайте копию переключателя Показать панель меню?

Измените имя переключателя, назвав его Показать строку заголовка?

Скопируйте свободные ярлыки для состояний Да и Нет данного переключателя.

5.Создайте вертикальный переключатель Сделать ВП прозрачным?

Сделайте копию переключателя Показать панель меню?

Измените имя переключателя, назвав его Сделать ВП прозрачным?

4-27

Скопируйте свободные ярлыки для состояний Да и Нет данного переключателя.

6.Создайте кнопку Отцентровать ВП.

Поместите на лицевую панель кнопку OK Button.

Назовите её Отцентровать ВП.

Измените текст внутри кнопки, введя Отцентровать ВП.

Вызовите контекстное меню кнопки и выберите в нем опцию Visible Items»Label, чтобы скрыть ярлык.

7.Создайте кнопку Стоп.

Поместите на лицевую панель кнопку Stop Button.

Вызовите контекстное меню кнопки и выберите в нем опцию Visible Items»Label, чтобы скрыть ярлык.

8.Выберите меню Edit»Make Current Values Default.

9.Расставьте и упорядочите объекты на лицевой панели. Для этого используйте инструменты выравнивания, распределения

иизменения размеров, расположенные на Панели инструментов.

10.На следующих этапах создайте блок-диаграмму ВП. Пример блок-диаграммы приведен на рисунке 4-20.

Рисунок 4-20. Блок-диаграмма ВП Свойства лицевой панели

4-28

Рисунок 4-21. Вариант False для метода Center

11.Заключите все терминалы в Цикл по условию, который находится в палитре Структуры.

12.Создайте ссылку на этот ВП.

На блок-диаграмме слева от Цикла по условию

разместите Ссылку на Сервер ВП.

Установите для ссылки значение This VI (Данный ВП), если оно уже не установлено.

Примечание. Ссылка This VI позволяет получить доступ ко всем методам и свойствам данного ВП без необходимости явного открытия и закрытия ссылки.

13.Создайте Узел Свойств для свойства RunTransparently.

Щелкните правой кнопкой мыши на ссылке This VI и выберите в контекстном меню опцию

Create»Property»Front Panel Window»Run VI Transparently.

Сместите Узел Свойств направо от ссылки This VI, но оставив его вне Цикла по условию.

Вызовите контекстное меню Узла Свойств и выберите в нем опцию Change All to Write.

Щелкните правой кнопкой мыши на свойстве FP.RunTransparently и выберите в контекстном меню опцию Create»Constant.

Измените значение константы на True.

14.Создайте Узел Свойств для свойств ShowMenuBar, TitleBarVis

иTransparency.

Щелкните правой кнопкой мыши на ссылке This VI и выберите в контекстном меню опцию Create»Property» Front Panel Window» Show Menu Bar, чтобы создать ещё один Узел Свойств.

Увеличьте количество элементов Узла Свойств до трёх.

4-29

Щелкните левой кнопкой мыши по второму элементу Узла Свойств и выберите Front Panel Window»Title Bar Visible.

Щелкните левой кнопкой мыши по третьему элементу Узла Свойств и выберите Front Panel Window»Transparency.

Вызовите контекстное меню Узла Свойств и выберите в нем опцию Change All to Write.

Поместите этот Узел Свойств внутрь Цикла по условию.

Поместите внутрь Цикла по условию функцию выбора

Select.

Две числовые константы со значениями 0 и 50 разместите слева от функции Select.

Константу 0 присоедините к терминалу f функции Select.

Константу 50 присоедините к терминалу t функции Select.

Присоедините логические элементы управления к соответствующим свойствам, как показано на рисунке 4-20.

15.Создайте Узел Вызова для метода Center.

Щелкните правой кнопкой мыши на ссылке This VI и выберите в контекстном меню опцию

Create»Method»Front Panel»Center.

16.Создайте структуру Варианта, поместив внутрь неё Узел Вызова FP.Center.

17.Добавьте в цикл 50 мс задержку.

Внутри Цикла по условию поместите функцию паузы

Wait (ms).

Щёлкните правой кнопкой мыши на входе milliseconds to wait и выберите в контекстном меню опцию

Create»Constant.

В константу введите значение 50.

18.Настройте Цикл по условию таким образом, чтобы он останавливался, когда пользователь нажмет кнопку Стоп, либо когда возникнет ошибка. Для этого:

Внутрь Цикла по условию поместите функцию разделения кластера по имени Unbundle By Name и

функцию Or (или)

4-30

19.Выполните соединения на блок-диаграмме в соответствии с рисунками 4-20 и 4-21. Не забудьте заменить тоннель для кластера ошибок на сдвиговый регистр.

20.Запрограммируйте отображение ошибок, которые могут возникнуть во время работы.

Справа от Цикла по условию поместите обработчик ошибок Simple Error Handler.

Соедините ВПП Simple Error Handler с выходным сдвиговым регистром для кластера ошибок.

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

Проверка

1.Переключитесь на лицевую панель ВП.

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

3.Понажимайте каждую из кнопок и наблюдайте за результатом этих действий.

Конец Упражнения 4-3

4-31

Контрольные вопросы

1.Для каждого из следующих пунктов определите, над каким классом они выполняют операции: над классом Элементов управления или же над классом ВП?

Формат и Точность

Мерцание

Инициализация к значению, принятому по умолчанию

Показать Панель инструментов

2.Внутри ВПП есть Ссылка на элемент управления ChartGraph, показанная слева. Какую из следующих ссылок на элементы управления вы сможете подключить к терминалу ссылки control refnum ВПП? (возможно несколько правильных ответов)

a. Ссылка на элемент управления XY Graph (двухкоординатный график)

б. Ссылка на числовой массив Numeric Array

в. Ссылка на развертку осциллограмм Waveform Chart

г. Ссылка на логический элемент управления

4-32

Ответы на контрольные вопросы

1.Для каждого из следующих пунктов определите, над каким классом они выполняют операции: над классом Элементов управления или же над классом ВП?

Формат и Точность: Элементы управления

Мерцание: Элементы управления

Инициализация к значению, принятому по умолчанию:

Элементы управления

Показать Панель инструментов: ВП

2.Внутри ВПП есть Ссылка на элемент управления ChartGraph, показанная слева. Какую из следующих ссылок на элементы управления вы сможете подключить к терминалу ссылки control refnum ВПП? (возможно несколько правильных ответов)

a. Ссылка на элемент управления XY Graph

б. Ссылка на числовой массив Numeric Array

в. Ссылка на развертку осциллограмм Waveform Chart

г. Ссылка на логический элемент управления

4-33

Примечания

4-34

5

Расширенные возможности файловых операций ввода/вывода

При разработке ВП часто возникает решение разделить процессы получения и обработки данных. Это связано с тем, что по мере поступления данных их необходимо записать в файл. На этом занятии вы познакомитесь с форматами ASCII файлов, двоичных файлов и файлов обмена испытательными данными (Test Data Exchange – TDM), а также ситуациями, в которых тот или иной формат более предпочтителен.

Темы:

A. Форматы файлов

Б. Двоичные файлы

В. TDM файлы

5-1

А. Форматы файлов

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

Когда используются текстовые (ASCII) файлы

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

Текстовые файлы – это простейший формат хранения данных для последующего использования и совместного доступа. Практически любой компьютер может считывать или записывать текстовые файлы. Существует множество программ для чтения таких файлов.

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

Если исходные данные не находятся в текстовой форме, то текстовые файлы обычно занимают больше памяти, нежели двоичные файлы или файлы структурированного протокола. Это связано с тем, что ASCII представление данных обычно больше самих данных. Например, число 123.4567 можно сохранить, заняв 4 байта памяти, которые отводятся под число с плавающей запятой обычной точности. Однако ASCII представление потребует 9 байт – по одному для каждого символа.

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

5-2

необходимо сначала считать и преобразовать первые восемь чисел.

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

Когда использовать двоичные файлы

Двоичный файл занимает определенное количество байт на диске. Например, любое число от 0 до 4 миллиардов в двоичном формате, например, 1, 1000 или 1000000, занимает 4 байта.

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

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

Файлы структурированного протокола (Datalog)

Особый тип двоичного файла, известный как файл структурированного протокола, - это простейший способ записи кластеров данных в файл. Данные сохраняются в виде массива кластеров в двоичном представлении. Файл структурированного протокола обеспечивает высокую эффективность хранения и произвольный доступ к данным, однако формат таких файлов сложен, к ним непросто организовать доступ из любой среды кроме LabVIEW. К тому же, чтобы прочитать содержимое такого файла, необходимо знать тип сохраненного кластера. Если вы не будете знать тип кластера, файл будет чрезвычайно сложно декодировать. По этой причине файлы структурированного протокола не рекомендуется использовать для совместного доступа к данным или для хранения данных в больших организациях, где возможна потеря информации о типе кластера.

5-3

Когда использовать файлы TDM

Формат файлов Test Data Exchange (TDM) – обмена испытательными данными – является смешанным форматом файлов, объединяющим двоичный и текстовый XML форматы. В файле TDM необработанные числовые данные хранятся в двоичной форме. Благодаря этому используются преимущества двоичных файлов, такие как эффективное использование памяти и высокая скорость записи. Кроме этого, в XML формате сохраняется структура данных и информация о них. Это позволяет очень легко считывать и находить информацию в файле. Обычно двоичные и XML данные разделены на два файла, файл с расширением .tdm для XML данных и файл с расширением .tdx для двоичных данных.

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

TDM.

Данные в TDM файлах организованы в виде каналов, что позволяет организовывать структуры данных. В свою очередь каналы можно организовать в группы. Файл может содержать несколько групп каналов. Логически сгруппированные данные упрощают их просмотр и анализ и могут сократить время на поиск определенного участка.

TDM файлы используются в случаях, когда необходимо сохранить дополнительную информацию о данных. Например, потребуется записать тип проводимого испытания или измерения, имя оператора или контролера, серийные номера, испытательные номера тестируемого устройства или, наконец, время испытания и условия, при которых оно проводилось. Каждый из TDM файлов содержит объект File и может содержать сколько угодно групп каналов Channel Group и объектов Channel. Каждый из объектов в файле имеет соответствующие свойства. В итоге есть три уровня свойств, которые можно использовать для хранения данных. Например, условия проведения испытаний хранятся на уровне файла. Испытательные номера тестируемых устройств – на уровне канала или группы каналов. Чем больше информации вы сохраните о проведении испытаний или измерений, тем проще будет анализировать данные и производить поиск определенных наборов данных. Поиск определенных файлов или наборов данных на основании критериев хранения является важным фактором при сборе большого количества данных, особенно, если вы собираетесь разрешить их в совместный доступ.

5-4

Поиск данных в файле на основании одного или нескольких условий является особенностью формата хранения данных TDM. При работе с большинством форматов вы должны считать файл в некоторую программу, а затем программно осуществлять в нем поиск определенных областей для нахождения заданного набора данных. При работе с TDM файлом вы можете задать условие на чтение данных, после которого возвратятся только те данные, которые удовлетворяют поставленному условию. Используя несколько операций чтения и объединяя их результаты, можно сформировать сложные запросы данных. В качестве условия запроса используется любое свойство TDM файла – File, Channel Group или Channel. Поэтому при создании TDM файлов вводите как можно больше различных свойств. Это упростит нахождение данных.

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

LabVIEW, LabWindowsTM/CVITM и DIAdem, а также рядом других программ NI. Таким образом, если вы хотите считать данные в LabVIEW или DIAdem, сохраняйте их формате TDM. При использовании же других программ имеет смысл воспользоваться более универсальным форматом, таким как ASCII.

5-5

Б. Двоичные файлы

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

Open/Create/Replace File— Функция открывает ссылку на новый или существующий двоичный файл аналогично случаю текстовых файлов.

Write Binary File— Записывает двоичные данные в файл. Она работает подобно функции Write to Text File, однако может принимать данные большинства типов.

Read Binary File— Считывает двоичные данные, начиная с их текущей позиции в файле. Для работы функции необходимо задать тип считываемых данных. Эта функция применяется для считывания отдельного элемента данных или целого массива, если на вход count подать ненулевое значение.

Get File Size— Функция возвращает размер файла в байтах. Применяется в комбинации с функцией Read Binary File в случае, когда нужно считать весь двоичный файл. Помните, что если вы считываете элементы данных размером больше одного байта, необходимо скорректировать количество данных для чтения.

Get/Set File Position— Эти функции считывают и устанавливают место в файле, откуда нужно начинать считывание и запись данных. Используются в операциях произвольного доступа к файлу.

Close File— Закрывает открытую ссылку на файл.

На рисунке 5-1 приведен пример записи массива чисел двойной точности в двоичный файл. Дополнительную информацию об опции Prepend array or string size? Можно найти в разделе

Массивы данного занятия.

5-6

Рисунок 5-1. Запись двоичного файла

Двоичное представление

Каждый из типов данных в LabVIEW при записи в двоичный файл представляется совершенно определенным образом. Ниже обсуждается представление каждого типа данных и некоторые важные моменты, связанные с этим.

Примечание. Бит представляет собой единицу двоичного исчисления, имеющую два возможных состояния для хранения цифрового значения 0 или 1. Байт состоит из восьми бит.

Логические значения

Логическая величина представляется в двоичном файле в виде 8- битного значения. Величина, состоящая из всех нулей, это логическое значение Ложь. Любое другое представляет Истину. Таким образом, файл делится на части, размером один байт, что упрощает его чтение и обработку. Для более эффективного хранения логических величин можно преобразовать их набор в целое число с помощью функции Boolean Array To Number. На рисунке 5-2 показаны два метода записи шести логических значений в двоичный файл.

Рисунок 5-2. Запись логических величин в двоичный файл

В таблице 5-1 представлено двоичное представление содержимого файлов в результате запуска программ, показанных на рисунке 5-2. Обратите внимание, что Метод Б более эффективен для хранения логических данных.

Таблица 5-1. Результаты выполнения программ

Метод А

00000001 00000001 00000000 00000001

00000000 00000001

 

Метод Б

00101011

 

 

5-7

8-битные целые числа

Беззнаковые 8-битные числа (U8) непосредственно соответствуют байтам, записываемым в файл. При записи в файл данных различных типов необходимо преобразовать каждый из типов в массив чисел U8 с помощью функций Boolean Array To Number (Массив логических значений в число), String to Byte Array (Строка в массив байтов), Split Number (Разделить номер) и Type Cast (Подогнать тип). Тогда вы сможете объединить различные массивы чисел U8 и записать результирующий массив в файл. Этот процесс необязателен при записи в двоичный файл данных одного типа.

Таблица 5-2. Представление U8

Двоичное значение

Значение U8

 

 

00000000

0

00000001

1

00000010

2

11111111

255

 

 

Другие типы целых чисел

Другие типы целых чисел разделяются на байты, которые сохраняются в файле в прямом или обратном порядке. При использовании ВП Write to Binary File вы можете выбрать порядок сохраняемых данных – прямой (little-endian) или обратный (big-endian).

При использовании прямого порядка (little-endian) младший байт хранится первым, а старший – последним. Такой порядок принят в архитектуре Macintosh и часто является внутренним представлением данных в LabVIEW.

Обратный порядок (big-endian order) записывает старший байт первым, а младший – последним. Такой порядок хранения данных используется большинством программ в Windows.

Таблица 5-3. Представления целых чисел

Значение U32

Прямой порядок

Обратный порядок

 

записи

записи

0

00000000 00000000

00000000 00000000

00000000 00000000

00000000 00000000

 

 

 

 

1

00000001 00000000

00000000 00000000

00000000 00000000

00000000 00000001

 

 

 

 

255

11111111 00000000

00000000 00000000

00000000 00000000

00000000 11111111

 

 

 

 

5-8

65535

11111111 11111111

00000000 00000000

00000000 00000000

11111111 11111111

 

 

 

 

4 294 967 295

11111111 11111111

11111111 11111111

11111111 11111111

11111111 11111111

 

 

 

 

Числа с плавающей запятой

Числа с плавающей запятой хранятся в соответствии со стандартом IEEE 754 Standard for Binary Floating-Point Arithmetic.

Числа с одинарной точностью (single-precision) имеют длину 32 бита, удвоенной (double-precision) – 64 бита. Длина чисел расширенной точности (extended-precision) зависит от операционной системы.

Строки

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

Массивы

Массив – это упорядоченный набор элементов, представление которых зависит от типа данных. При сохранении массива в файл существует возможность введения перед ним заголовка. Заголовок (header) содержит 4-байтовые целые числа, представляющие количество элементов по каждой из размерностей массива. Поэтому двумерный массив с заголовком содержит два целых числа, которые предшествуют данным массива. На рисунке 5-3 показан пример записи двумерного массива, состоящего из 8-битных целых чисел, в файл с заголовком. Терминал prepend array or string size? функции Write Binary File используется для разрешения включения заголовка. Обратите внимание, что по умолчанию значение этого терминала – True (Истина), то есть заголовки будут добавляться во все двоичные файлы.

Рисунок 5-3. Запись 2D массива беззнаковых целых чисел в файл с заголовком

5-9

В таблице 5-4 показана компоновка файла, сгенерированного ВП из рисунка 5-3. Обратите внимание, что заголовки представлены 32-битными целыми числами, хотя данные – это 8-битные целые числа.

4

3

1

2

3

4

5

6

7

8

9

10

11

12

Кластеры

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

Сравнение прямого и последовательного доступа к файлам

При чтении двоичного файла существует два метода доступа к данным. В первом методе элементы считываются последовательно, начиная с первого. Поэтому такой метод называется методом последовательного доступа, который применяется также и при чтении текстовых файлов. Во втором методе данные считываются из произвольного места файла. Например, вы знаете, что двоичный файл содержит одномерный массив 32-битных целых чисел и заголовок, и хотите считать десятый элемент массива. Тогда можно вычислить смещение этого элемента, выраженное в байтах, от начала файла и затем считать только этот элемент. В данном примере смещение элемента равно 4 (заголовок) + 10 (номер элемента) * 4 (количество байт, занимаемое числом I32) = 44. Такая организация доступа называется прямым (произвольным) доступом.

Последовательный доступ

Чтобы организовать последовательный доступ ко всем данным в файле, можно вызвать функцию Get File Size и использовать её результат для вычисления количества элементов в файле, основываясь на длине каждого элемента и компоновке файла. Затем число элементов можно подать на терминал count функции Read Binary. На рисунке 5-4 иллюстрируется применение данного метода.

Рисунок 5-4. Последовательное чтение целого файла

5-10

Вы также можете последовательно считывать по одному элементу из файла, повторяя вызов функции Read Binary. В этом случае можно ничего не подавать на вход count, поскольку по умолчанию его значение равно 1. Каждая операция считывания обновляет смещение в файле, поэтому при вызовах ВП Read Binary будет считываться новое значение. При использовании такого способа доступа к данным необходимо вовремя остановить чтение. Это можно сделать, проверяя ошибку End of File на выходе ВП Read Binary либо вычисляя количество операций считывания с помощью функции Get File Size.

Прямой доступ

При операциях прямого доступа к двоичному файлу используется ВП Set Position. Он служит для задания места (смещения), с которого будет начинаться считывание из файла. Помните, что смещение выражается в байтах, поэтому при его вычислении нужно знать компоновку файла. На рисунке 5-5 ВП возвращает массив элементов, начиная с определенного индекса. При его написании предполагалось, что в файл был сохранен массив чисел двойной точности без заголовка вроде того, который был записан в примере на рисунке 5-1.

Рисунок 5-5. Прямой доступ к двоичному файлу

Файлы структурированного протокола

Файлы структурированного протокола (datalog files) созданы для сохранения набора записей (records). Каждая запись представляет собой кластер, содержащий несколько элементов данных различного типа. Файлы структурированного протокола – это разновидность двоичных файлов, однако при работе с ними используется другой набор функций API. Виртуальные приборы палитры Datalog позволяют считывать и записывать массивы кластеров в файлы структурированного протокола.

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

5-11

На рисунке 5-6 представлен пример записи файла структурированного протокола. Обратите внимание, что кластер содержит данные для записи и одновременно используется для открытия файла.

Рисунок 5-6. Запись файла структурированного протокола

На рисунке 5-7 показан пример прямого доступа в файл структурированного протокола. Обратите внимание, что кластер Определение записи данных на входе record type функции Open/Create/Replace Datalog совпадает по составу с кластером, который использовался для записи файла. В противном случае возникла бы ошибка.

Рисунок 5-7. Считывание файла структурированного протокола

Вместо использования прямого доступа вы можете считывать весь файл, соединяя выход Get Number функции Records с входом count функции Read Datalog.

5-12

Упражнение 5-1. ВП для записи BMP файлов

Цель

Использовать ВП из палитры Binary File I/O для записи файла специального формата.

Описание работы

Создайте ВП для сохранения изображений, нарисованных с помощью блокнота, созданного в LabVIEW. ВП Блокнот возвращает изображение в виде 2D массива значений красного, зеленого и синего цветов (Red, Green, Blue – RGB). Сохраните данные в растровом (bmp) файле с 24-разрядным кодированием цвета.

Разработка

Функции из палитры Binary File I/O можно использовать для записи и считывания данных из файлов любого формата, при условии, что вы знаете характеристики этого формата. В следующем разделе будет описан формат 24-разрядных растровых графических файлов Windows.

Формат 24-разрядных растровых графических файлов

Растровые файлы (bitmap – bmp) – один из форматов хранения графических данных. Файлы могут иметь различные характеристики и отличаться числом бит, кодирующих пиксель, а также применяемым уровнем сжатия изображения. Простейшим примером таких файлов является 24-разрядный растровый графический файл без сжатия, который имеет следующий формат:

 

Таблица 5-5. Формат 24-разрядного растрового графического

 

 

файла

 

 

 

 

 

Имя раздела файла

 

Размер (байты)

Примечания

 

 

 

 

 

 

 

Данные подготовлены.

BITMAPFILEHEADER

 

14

Необходимо только

 

 

 

записать их в файл.

 

 

 

Данные подготовлены.

BITMAPINFOHEADER

 

40

Необходимо только

 

 

 

записать их в файл.

 

 

 

Хранятся в обратном BGR

Image Data

 

3*Количество пикселей

порядке. Изображение

 

 

 

инвертировано.

5-13

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

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

Image Data— для 24-битного изображения каждый пиксель представляется тремя байтами. Эти байты кодируют величину (насыщенность) красного, зеленого и синего цветов и хранятся в обратном порядке. Массив пикселей, с которым вы будете работать, представляет собой 2D массив кластеров. Каждый кластер содержит три значения – для красного, зеленого и синего цветов.

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

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

Входные и выходные параметры

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

Порядок выполнения программы

1. Вызов ВП Блокнот для создания картинки.

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

2.Вызов окна файлового диалога для запроса пользователя о выборе файла для записи.

3.Вызов ВП BITMAPFILEHEADER. В него необходимо подать размеры массива пикселей.

5-14

4.Запись 1D массива беззнаковых целых чисел, возвращенного функцией BITMAPFILEHEADER, в открытый файл.

Примечание. Отключите (подайте логическое значение Ложь) опцию записи заголовка prepend array or string size при вызове ВП Write to Binary File. В противном случае LabVIEW добавит размеры массива в начало данных, что нарушит формат bmp файла.

5.Вызов ВП BITMAPINFOHEADER, в который необходимо подать размеры массива пикселей.

6.Запись 1D массива беззнаковых целых чисел, возвращенного функцией BITMAPINFOHEADER, в открытый файл.

7.Обработка каждого пикселя массива с помощью вложенных Циклов с фиксированным числом итераций. Необходимо извлечь из кластера информацию о цветах и сформировать её в виде массива.

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

8.Запись массива обработанных значений пикселей в открытый файл.

9.Закрытие файла и выполнение обработки возникших ошибок.

5-15

Создание ВП

1.Вызов блокнота.

Создайте новый ВП.

Сохраните его под именем Запись растрового файла.vi в

папке C:\Упражнения\LabVIEW Основы II\Запись растрового файла.

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

Поместите на неё ВП Блокнот, расположенный в папке

C:\Упражнения\LabVIEW Основы II\Запись растрового файла.

Щелкните правой кнопкой мыши по иконке ВП Блокнот и выберите в контекстном меню опцию SubVI Node Setup (настройка узла ВПП).

Отметьте опции Show Front Panel when called (Показать лицевую панель при вызове) и Close afterwards if originally closed (Закрыть по окончании работы, если исходно был закрыт).

Нажмите OK для выхода из диалогового окна настройки

SubVI Node Setup.

Примечание. Настройка узла ВПП позволяет задать способ вызова ВПП. Отметка опции Show Front Panel when called вынуждает ВП показывать лицевую панель, даже если в свойствах ВП указано противное.

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

2.Откройте новый двоичный файл.

Поместите на блок-диаграмму экспресс ВП File Dialog.

Нажмите OK для выхода из диалогового окна настройки

Configure File Dialog.

Значения, принятые по умолчанию, позволяют выбрать новый или уже существующий файл.

Настройте экспресс ВП File Dialog, чтобы отображались терминалы selected path,

error out, error in, prompt, pattern label и pattern (all files).

Для этого растяните иконку ВП, чтобы появились четыре

5-16

терминала, а затем щелкните левой кнопкой мыши на каждом из них и выберите подходящий.

Щелкните правой кнопкой мыши на терминале prompt и выберите в контекстном меню опцию Create»Constant.

В строковую константу введите Выберите файл для сохранения.

Щелкните правой кнопкой мыши на терминале pattern label ВП File Dialog и выберите в контекстном меню опцию

Create»Constant.

В строковую константу введите файлы Bitmap.

Щелкните правой кнопкой мыши на терминале pattern(all files) и выберите в контекстном меню опцию

Create»Constant.

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

Поместите на блок-диаграмму функцию

Open/Create/Replace File.

Щелкните правой кнопкой мыши на входе operation этой функции и выберите в контекстном меню опцию

Create»Constant.

В качестве значения константы выберите replace or create.

Выполните соединения на блок-диаграмме в соответствии с рисунком 5-8.

Рисунок 5-8. Открытие двоичного файла

3. Создайте заголовки для растрового файла.

5-17

Поместите на блок-диаграмму ВП BITMAPFILEHEADER, расположенный в папке C:\Упражнения\LabVIEW

Основы II\Запись растрового файла.

Поместите на блок-диаграмму ВП BITMAPINFOHEADER, расположенный в папке C:\Упражнения\LabVIEW

Основы II\Запись растрового файла.

Поместите на блок-диаграмму функцию определения размера массива Array Size.

Поместите на блок-диаграмму два ВП Write to Binary File.

Щелкните правой кнопкой мыши на терминале prepend array or string size каждого из ВП Write to Binary File и

выберите в контекстном меню опцию Create»Constant.

Значения констант установите False.

Выполните соединения на блок-диаграмме в соответствии с рисунком 5-9.

Рисунок 5-9. Запись заголовков растрового файла

4.Запишите данные изображения.

Поместите на блок-диаграмму Цикл с фиксированным числом итераций.

Внутрь первого цикла поместите второй цикл с фиксированным числом итераций.

Внутрь второго цикла поместите функцию разделения кластера по именам Unbundle by Name.

5-18

Там же разместите функцию создания массива Build Array.

Массив Изображение присоедините через границы Циклов с фиксированным числом итераций к функции Unbundle By Name.

Увеличьте размер функции Unbundle by Name, так чтобы было видно три элемента.

Выберите цвета Blue, Green, Red в указанном порядке для элементов кластера.

Примечание. Формат растрового файла определяет порядок цветов пикселя, а именно синий (Blue), зеленый (Green), красный (Red). Если цвета пикселя будут записываться в другом порядке, цвет изображения будет передаваться неправильно.

Поместите на блок-диаграмму ВП Write to Binary File.

Щелкните правой кнопкой мыши на терминале prepend array or string size ВП Write to Binary File и выберите в контекстном меню опцию Create»Constant. Значения константы установите False.

5.Закройте файл и введите обработку ошибок.

Поместите ВП Close File на блок-диаграмму.

Поместите на блок-диаграмму ВП Simple Error Handler.

Выполните подключения элементов как показано на рисунке 5-10.

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

5-19

Рисунок 5-10. Завершенная блок-диаграмма

Проверка работы

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

Переключитесь на лицевую панель ВП.

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

Нарисуйте рисунок в блокноте.

Нажмите кнопку Сохранить.

Выберите C:\Упражнения\LabVIEW Основы II\Запись растрового файла\Мой рисунок.bmp

вкачестве файла для сохранения.

2.Откройте изображение в любой из программ просмотра.

Откройте в проводнике Windows папку

C:\Упражнения\LabVIEW Основы II\Запись растрового файла.

Дважды щелкните по файлу изображения для его открытия

впрограмме просмотра изображений. Убедитесь, что показанное изображение совпадает с тем, которое вы рисовали в блокноте в LabVIEW.

3.Закройте ВП.

Конец Упражнения 5-1

5-20

В. Файлы обмена испытательными данными

Файлы обмена испытательными данными (Test Data Exchange – TDM) в LabVIEW можно создать двумя способами. Либо используя экспресс ВП Write to Measurement File, либо программные интерфейсы – ВП из палитры Data Storage.

Экспресс ВП позволяют быстро сохранять и считывать данные из файлов TDM формата. На рисунке 5-11 приведено диалоговое окно настройки экспресс ВП Write to Measurement File. Обратите внимание, что возможно создание двух типов файлов: TDM или LVM. Однако экспресс ВП не позволяют полностью управлять свойствами данных и их группировкой и не дают возможности использовать некоторые особенности TDM файлов, которые делают их особенно полезными, как, например, поиск данных по условиям.

Рисунок 5-11. Создание TDM файла с помощью функции Write to Measurement File

Чтобы воспользоваться преимуществами TDM файлов в полной мере, необходимо применять программный интерфейс (API) Data

5-21

Storage. Data Storage API представляет собой набор ВП, позволяющих записывать файлы различных форматов. По умолчанию принята запись TDM файлов. На рисунке 5-12 приведен пример простейшей программы, записывающей свойства канала и числовые данные в TDM файл с помощью функций Data Storage API.

Рисунок 5-12. Использование Data Storage API для записи простейшего TDM файла

Иерархия данных

TDM файлы позволяют организовывать данные в виде каналов и групп каналов.

Группа каналов (channel group)– сегмент TDM файла,

содержащий информацию о свойствах одного или нескольких каналов. Используется для организации данных и сохранения информации, применимой к нескольким каналам одновременно.

Канал сохраняет сигналы или необработанные данные в TDM файл в двоичной форме. Сигнал представляет собой массив измерительных данных. Каждый канал может содержать также дополнительную информацию (свойства) о данных.

5-22

Программный интерфейс Data Storage

Ниже представлены наиболее часто используемые ВП из палитры

Data Storage:

Open Data Storage— открывает ссылку на TDM файл. Расположение файла можно задать или в диалоговом окне настройки или же с помощью терминала на блок-диаграмме. Второй способ позволяет изменять путь к файлу во время выполнения программы.

Рисунок 5-13. Диалоговое окно настройки ВП Open Data Storage

5-23

Write Data— создает Каналы и Группы Каналов в файле. Он также позволяет записывать свойства и данные для созданных элементов. В диалоговом окне настройки данного ВП можно выбирать свойства, соответствующие терминалам на блокдиаграмме, а также определять, как будет вести себя ВП при попытке сохранить два канала с одинаковыми именами в файл.

Рисунок 5-14. Диалоговое окно настройки ВП Write Data

5-24

Read Data— Позволяет выполнять поиск Каналов и Групп Каналов на основании заданных условий. В диалоговом окне настройки данного ВП можно задать условия поиска, а также тип данных, которые будут возвращаться, если результатом поиска будет канал. ВП может возвращать реальные данные из Канала. Для того чтобы считать свойства Канала или Группы Каналов необходимо подать на этот ВП ссылку, возвращаемую ВП Get Properties.Обратите внимание, что поскольку по запросу могут выдаваться несколько результатов, данная функция будет возвращать все результаты, включая ссылки, в виде массивов.

Рисунок 5-15. Диалоговое окно настройки ВП Read Data

5-25

Set Properties— служит для установки свойств Канала, Группы Каналов или файла. Поскольку ВП Write Data позволяет устанавливать свойства Канала или Группы Каналов, данный ВП чаще всего используется для установки свойств файла. В диалоговом окне настройки ВП можно выбрать тип объекта, для которого устанавливаются свойства, и сами устанавливаемые свойства. ВП можно также использовать для сопоставления определенного сигнала какому-либо из Каналов. При сопоставлении сигнала вы можете выбрать, буду ли новые данные дописываться к существующим или же они будут их переписывать.

Рисунок 5-16. Диалоговое окно настройки ВП Set Properties

5-26

Get Properties— позволяет считать свойства Файла, Канала или Группы Каналов. Этот ВП можно использовать совместно с ВП Read Data для поиска Каналов или Групп Каналов, и затем считывать свойства найденных элементов. Также данный ВП применяется для получения информации обо всех Группах Каналов в Файле либо обо всех Каналах в Группе Каналов. В диалоговом окне настройки ВП можно выбрать интересующие свойства.

Рисунок 5-17. Диалоговое окно настройки Get Properties

Close Data Storage— закрывает ссылку на TDM файл. Обратите внимание, что закрыть необходимо только ссылку на Файл. После этого все открытые ссылки на Каналы и Группы Каналов закроются автоматически.

Merge Queries— используется для создания сложных запросов. Поскольку ВП Read Data позволяет задавать только одно

5-27

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

Создание запросов.

Delete Data— используется для удаления Канала или Группы Каналов из файла. В отличие от файлов других форматов TDM файлы часто используются повторно, а не создаются заново при каждом запуске ВП. В этом случае ВП Delete Data позволяет удалять нежелательные данные из файлов. Например, вы можете запросить из файла каналы со старыми данными, записать их в архивный файл, а затем удалить из исходного файла. ВП Delete Data не осуществляет поиск данных. Для работы ему необходима ссылка на данные, поэтому он часто используется совместно с ВП Read Data для нахождения данных для последующего их удаления.

Создание запросов

Запросы (Query) помогают считывать лишь те данные, которые необходимы для просмотра и анализа. Большая часть запросов выполняется с использованием только одного ВП – Read Data. На рисунке 5-18 показан пример выполнения простейшего запроса, который выводит данные из тех каналов файла, в которых максимальное значение больше или равно 5.

Рисунок 5-18. Простейший запрос данных из TDM файла

Для считывания свойств других элементов, а не только сигнала, применяется ВП Get Properties, ссылки в который приходят из ВП Read Data. Поскольку ВП Read Data возвращает массив, то перед вызовом ВП Get Properties необходимо использовать Цикл с фиксированным числом итераций для выделения элементов массива. Кроме сигнала в примере на рисунке 5-19 отображаются также свойства канала. ВП возвращает Имя, Описание, Максимальное и Минимальное значения для каналов с Максимальным значением большим или равным 5.

5-28

Рисунок 5-19. Считывание свойств в результате запроса

В тех случаях, когда TDM файл содержит группы данных, возможен поиск по каналам только в одной определенной группе. Это выполняется посредством использования двух ВП Read Data: один предназначен для поиска подходящей группы каналов, а второй – для поиска каналов в пределах найденной группы. Присоединение ссылки Channel Group к входу ВП Read Data позволяет ограничить поиск каналов пределами одной группы. Пример на рисунке 5-20 строит графики данных из всех каналов группы Данные о температуре, в которых максимальная температура превышает 76 градусов. В примере предполагается, что лишь одна группа имеет название Данные о температуре, что выполняется в случае, если вы не забыли выделить опцию

Always Create new channel group/channel при записи данных с помощью ВП Write Data. Если вы не можете гарантировать, что только одна группа будет удовлетворять запросу, тогда выполняйте обработку результатов запроса в Цикле с фиксированным числом итераций, как в примере на рисунке 5-19.

5-29

Рисунок 5-20. Запрос данных из группы каналов

Для создания более сложных запросов данных в TDM файлах используйте ВП Merge Queries. Этот ВП позволяет объединять результаты двух ВП Read Data. Применяя ВП Merge Queries, вы можете возвращать результаты первого или второго запросов, а также обоих запросов вместе. После вызова ВП Merge Queries часто используется ВП Get Properties для считывания сигналов или свойств результатов запроса.

Группировка данных

Группировка данных – организация данных в группы – может оказывать существенное влияние на скорость выполнения и сложность реализации операций записи и запроса. Рассмотрим схему группировки в зависимости от исходного формата данных и способов их поиска и просмотра.

5-30

Один из способов организовать данные – группировка по типу данных. Например, вы можете поместить числовые данные в одну группу каналов, а строковые в другую. Или же данные временной области – в одну группу, а частотной – в другую. Это позволяет легко сравнивать каналы в группе, однако затрудняет поиск двух каналов, связанных друг с другом.

На рисунке 5-21 показан пример группировки данных по их типу. Здесь температурные данные помещены в одну группу, а данные о скорости ветра – в другую. Каждая группа содержит несколько каналов данных. Обратите внимание, что при группировке данных по типу обычно имеется фиксированное число групп, две в данном примере, и динамически определяемое число каналов. Упражнение 5-2 также является примером группировки по типу данных.

Рисунок 5-21. Группировка по типу данных

Другой способ заключается в группировке связанных данных. Например, все данные, касающиеся проверяемого устройства, вы можете поместить в одну группу. Группировка связанных данных позволяет легко собрать всю информацию о выбранном объекте, что, однако, затрудняет сравнение участков данных, относящихся к разным объектам. Такой тип группировки помогает преобразовывать файлы с кластерными данными в TDM формат. Вы можете сохранить всю информацию из данного кластера в группе каналов. При этом массивы кластера станут каналами в группе, а скалярные величины будут свойствами группы каналов. На рисунке 5-22 приведен пример группировки связанных данных. Обратите внимание, что входные данные представляют собой массив кластеров, каждый из которых содержит несколько отрывков информации об испытании. Каждое испытание сохраняется в виде отдельной Группы Каналов. Информация о полной процедуре тестирования, как например идентификационный номер и состояние процесса испытания,

5-31

хранятся в виде свойств Групп Каналов. Массивы данных, такие как осциллограмма и спектр мощности, хранятся в Каналах, а информация о них, вроде СКО и Основной частоты, – в виде свойств Каналов. Заметьте, что при группировке связанных данных обычно фиксируется число каналов в группе, а количество групп может меняться.

Рисунок 5-22. Группировка связанных данных

5-32

Упражнение 5-2. ВП Запись TDM файлов

Цель

Записать данные в TDM файл.

Описание работы

Вам будет дан ВПП (Генерация данных), генерирующий измерительные данные для проверяемых устройств. Эти данные состоят из временной осциллограммы и её спектра мощности.

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

TDM файл будет называться TDM данные и содержать информацию об операторе, времени операции и две группы каналов: Временные данные и Спектр мощности. Каждая группа содержит по одному каналу для каждого из устройств. Серийный номер устройства служит именем для соответствующего канала.

Разработка

Порядок выполнения программы

1.Считывание серийных номеров устройств.

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

2.Установка имен графиков Временных данных.

Используйте ВП Задание имен графиков (созданный в Упражнении 3-3) и серийные номера устройств для назначения имен графикам на графическом индикаторе Временные данные.

3.Установка имен графиков на индикаторе Спектр мощности.

Используйте ВП Задание имен графиков и серийные номера устройств для назначения имен графикам на графическом индикаторе Спектр мощности.

4.Определение количества проверяемых устройств.

Для измерения размера массива, в который введены серийные номера устройств, используйте функцию Array Size. На выходе этой функции будет количество проверяемых устройств.

5.Генерация тестирующих сигналов.

5-33

Используйте ВП Генерация данных для создания временных и частотных сигналов для проверки устройств.

6.Создание либо открытие TDM файла.

7.Настройка свойств каналов.

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

8.Запись данных и свойств в файл.

Создайте ВПП (Запись Группы) для записи группы каналов, свойств и каналов в файл. Более детально это задание выполняется в разделе ВП Запись Группы.

9.Закрытие файла.

10.Отображение данных.

ВП Запись Группы

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

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

В следующей таблице перечислены элементы управления и индикаторы ВПП.

Тип элемента

Наименование

 

 

Исходная ссылка – элемент

storage refnum(file)

управления

 

Строковый элемент управления

Имя Группы

 

 

1-D массив строковых элементов

Серийные номера

управления

устройств

1-D массив осциллограмм –

Графики

элементов управления

 

Кластерный элемент управления

Error In

 

 

Исходная ссылка – индикатор

storage refnum out

 

 

Кластерный индикатор

Error Out

 

 

Информация, записываемая в TDM файл

5-34

Информация на уровне файла

Time Stamp (Отметка времени) — содержит информацию о времени проведения испытания.

Title (Заголовок) — содержит строку TDM данные с информацией о типе выполняемого испытания.

Author (Автор) — содержит имя оператора, выполняющего испытания, которое вводится с лицевой панели.

Записываемый файл содержит две группы каналов, один для временных данных и один для спектра мощности.

Информация на уровне Группы Каналов

Name (Имя) — содержит Временные данные или Спектр мощности. Идентифицирует группу каналов.

Группа каналов должна содержать по одному каналу для каждого из устройств.

Информация на уровне Канала

Name (Имя) — содержит Серийный номер устройства. Позволяет установить соответствие числовых данных и конкретного устройства.

Signal (Сигнал) — Содержит массив данных в виде чисел с плавающей запятой.

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

Создание ВП

1.Откройте ВП Запись TDM файлов, расположенный в папке

C:\Упражнения\LabVIEW Основы II\ Запись TDM

файлов. Лицевая панель ВП уже создана.

2.Переключитесь на блок-диаграмму.

3.Введите в панель настройки графика серийные номера проверяемых устройств.

5-35

Рисунок 5-23. Ввод имен в панель настройки графиков ВП ЗаписьTDM файлов

Поместите две копии ВП Задание имен графиков, расположенного в папке C:\Упражнения\LabVIEW

Основы II\Задание имен графиков.

Примечание. Если вы не выполнили упражнение Задание имен графикам, можете использовать ВП Задание имен графиков из папки

C:\Упражнения\LabVIEW Основы II\Упражнение 4-2.

Щелкните правой кнопкой мыши по терминалу индикатора Временные данные и выберите в контекстном меню опцию

Create»Reference.

Щелкните правой кнопкой мыши по терминалу индикатора Спектр мощности и выберите в контекстном меню опцию

Create»Reference.

Выполните подключения проводников, как показано на рисунке 5-23.

4.Проверьте работу панели настройки графиков.

Переключитесь на лицевую панель ВП.

Введите один или несколько номеров в массив Серийный номер устройства.

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

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

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

5.Поместите строковый элемент управления на лицевую панель и назовите его Оператор.

6.Сгенерируйте и отобразите тестирующие сигналы.

5-36

Рисунок 5-24. Генерация и отображение тестирующих сигналов

Переключитесь на блок-диаграмму.

Поместите ВП Генерация данных из папки

C:\Упражнения\LabVIEW Основы II\Запись TDM файлов.

Поместите на блок-диаграмму функцию Array Size.

Выполните подключения проводников, как показано на рисунке 5-24.

Переключитесь на лицевую панель.

Вызовите контекстное меню графического индикатора Временные данные и выберите в нем опцию Ignore Attributes (Игнорировать атрибуты).

Вызовите контекстное меню графического индикатора Спектр мощности и выберите опцию Ignore Attributes.

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

7.Проверьте работу ВП. Индикаторы должны отобразить графики для каждого введенного серийного номера.

8.Откройте TDM файл.

Поместите ВП Open Data Storage на блок-диаграмму.

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

Нажмите OK для выхода из диалогового окна Configure Open Data Storage.

9.Задайте свойства файл.

5-37

Рисунок 5-25. Задание свойств файла

Поместите ВП Set Properties на блок-диаграмму.

Выход storage refnum(file) ВП Open Data Storage

присоедините к входу refnum (channel) ВП Set Properties.

Примечание. По умолчанию ВП Set Properties настроен для задания свойств канала. Присоединение к нему ссылки на файл приводит к тому, что вместо свойств канала он задает свойства файла.

Дважды щелкните левой кнопкой мыши на ВП Set Properties, чтобы открыть диалоговое окно настройки.

Выполните настройки, как показано на рисунке 5-26.

Нажмите OK для закрытия диалогового окна.

Примечание. В диалоговом окне Configure Set Properties перечислены все доступные свойства объекта, присоединенного к ВП Set Properties. Каждое из этих свойств представляет собой просто контейнер, который можно использовать по своему усмотрению. Например, для ввода типа испытания вы можете использовать поле Description, а не Title.

5-38

Рисунок 5-26. Диалоговое окно настройки ВП Set Properties

Щелкните правой кнопкой мыши по терминалу Title ВП Set Properties и в контекстном меню выберите опцию Create»Constant. В качестве значения введите TDM

данные.

Поместите на блок-диаграмму функцию Get Date/Time In Seconds.

Выполните подключения проводников, как показано на рисунке 5-25.

5-39

40-5

Рисунок 5-27. Запись каналов данных. Часть кода, которая повторяется, выделена.

10. Создайте группу каналов Временные данные.

Поместите ВП Write Data на блок-диаграмму.

В выпадающем меню типа объекта Object type диалогового окна Configure Write Data выберите Channel Group.

Из раздела всех доступных свойств Properties перенесите свойство Name в раздел выбранных Selected.

Нажмите OK для закрытия диалогового окна.

Щелкните правой кнопкой мыши по терминалу Name ВП

Write Data [Channel group] и выберите опцию

Create»Constant в контекстном меню.

В качестве значения строковой константы введите

Временные данные.

11.Запишите каналы Временных данных.

Поместите Цикл с фиксированным числом итераций на блок-диаграмму.

Внутри цикла разместите ВП Write Data.

В диалоговом окне настройки Configure Write Data

выделите опцию Always create new channel group/channel

(Всегда создавать новую группу/канал).

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

Из раздела всех доступных свойств Properties перенесите свойство Name в раздел выбранных Selected.

Нажмите OK для закрытия диалогового окна.

12.Выполните подключения проводников, как показано на рисунке 5-27.

13.Создайте ВПП из участка кода, записывающего группу каналов и канал, с тем, чтобы в дальнейшем использовать его для записи спектра мощности.

Выделите ВП Write Data и цикл с фиксированным числом итераций, как показано на рисунке 5-27.

Не выделяйте строковую константу Временные данные.

В меню Edit выберите Create SubVI (Создать ВПП).

5-41

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

Сохраните ВПП под именем Запись группы в папке

C:\Упражнения\LabVIEW Основы II\Запись TDM файлов.

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

Вызовите контекстное меню сдвигового регистра Цикла с фиксированным числом итераций и выберите в нем опцию Create»Indicator для создания индикатора ошибки.

Щелкните правой кнопкой мыши по выходному терминалу storage refnum (file) ВП Write Data [Channel Group] и

выберите в контекстном меню опцию Create»Indicator.

Измените имена терминалов и разместите элементы блокдиаграммы, как показано на рисунке 5-28.

Рисунок 5-28. Блок-диаграмма кода, выполняющего запись данных

Переключитесь на лицевую панель.

Элемент управления error out переименуйте в error in.

Примечание. При создании ВПП с помощью меню Edit»Create SubVI ярлыки элементов управления и индикаторов получают названия от элементов, к которым они были присоединены в главном ВП. Поэтому вход кластера ошибки данного ВПП получил название error out. Однако для кластера ошибок элемент управления принято называть error in, а индикатор

– error out.

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

5-42

Щелкните правой кнопкой мыши по иконке ВП и выберите

вконтекстном меню опцию Edit Icon.

Дважды щелкните кнопкой мыши на инструменте выделения Selection Tool, чтобы выделить всю иконку.

Зайдите в меню Edit»Import Picture From File и выберите файл C:\Упражнения\LabVIEW Основы II\Запись TDM файлов\Иконка Запись группы.bmp.

Выберите Edit»Paste.

Щелкните на иконке 16 Colors левой кнопкой мыши.

Нажмите кнопку 256 Colors в разделе Copy from (Копировать из).

Щелкните на иконке B&W.

Нажмите кнопку 256 Colors в разделе Copy from.

Нажмите OK.

Щелкните правой кнопкой мыши по иконке ВП и выберите

вконтекстном меню опцию Show Connector.

Создайте соединительную панель, как показано на рисунке

5-29.

Сохраните и закройте ВП.

Щелкните правой кнопкой мыши по иконке ВПП Запись группы на блок-диаграмме ВП Запись TDM файлов и выберите в контекстном меню опцию Relink to SubVI.

 

 

Соединения

Соединительная панель

Рисунок 5-29. Подсоединения и соединительная панель ВПП Запись группы

5-43

44-5

Рисунок 5-30. Окончательная блок-диаграмма ВП Запись TDM файлов

14.Запишите данные о спектре мощности.

Поместите на блок-диаграмму копию ВПП Запись группы.

Создайте строковую константу и введите в неё Спектр мощности.

15.Закройте TDM файл и выполните обработку ошибок.

Поместите на блок-диаграмму ВП Close Data Storage.

Поместите на блок-диаграмму обработчик ошибок – ВП

Simple Error Handler.

Выполните подключения проводников, как показано на рисунке 5-30.

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

Проверка работы

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

Убедитесь, что значение элемента управления Путь к TDM

файлу есть C:\Упражнения\LabVIEW Основы II\Запись TDM файлов\Испытательные данные.TDM.

Введите ваше имя в поле Оператор.

Введите значения A001, A002 и A003 в элемент управления Серийные номера устройств.

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

2.Откройте данные в пакете DIAdem.

Примечание. NI DIAdem – интерактивное средство выполнения математического и визуального анализа данных, а также генерации отчетов. Этот пакет представляет собой отдельный продукт и не является частью LabVIEW. Если у вас не установлен DIAdem, вы можете использовать ВП Data Viewer, чтобы убедиться, что данные были сохранены успешно. Этот ВП является примером, который можно найти с помощью поисковика

LabVIEW Example Finder, вводя ключевое слово TDM.

Откройте пакет National Instruments DIAdem, выбирая в меню Пуск»Все программы» National Instruments»

DIAdem 9.1» DIAdem.

Нажмите кнопку Next > для запуска помощника DIAdem Report Wizard.

5-45

В списке Data sources (Источники данных) выберите FILES: My Computer, если это уже не сделано.

С помощью проводника Select data в папке Drives»

C:\Упражнения\LabVIEW Основы II\Запись TDM файлов найдите файл Испытательные данные.tdm и

поставьте отметку, чтобы его выбрать.

Нажмите кнопку Next > (Далее>) для выбора отображаемых каналов.

Убедитесь, что опция Use установлена в состояние Yes для всех шести отображаемых каналов.

Нажмите кнопку Next > для настройки отчета.

Нажмите кнопку VIEW, которая находится под разделом

Content-based style.

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

DIAdem откроет данные в окне VIEW, которое позволяет проверить данные с помощью целого набора инструментов.

3.Проверьте данные.

Щелкните правой кнопкой мыши в окне VIEW и выберите опцию Select properties. Появится окно, в котором можно выбрать свойства для просмотра. Среди них будут свойства из записанных каналов, а также некоторые дополнительные свойства, представленные пакетом DIAdem.

Рисунок 5-31. Свойства данных в TDM файле

5-46

4. В списке свойств для отображения Properties to be displayed выберите unit_string и нажмите кнопку < для его удаления.

Выберите Source context в списке неотображаемых свойств

Properties not for display list и нажмите кнопку >, чтобы перенести его в отображаемые Properties to be displayed. Свойство Source context показывает группу, которой соответствует каждый из каналов.

То же самое проделайте и для свойств Minimum и Maximum, отображающих минимальное и максимальное значения в каналах. Эти свойства автоматически добавляются LabVIEW при записи каналов в TDM файл.

Повторите то же для свойств CursorX и CursorY, которые отображают положение курсора в окне просмотра данных

DIAdem.

Нажмите OK для выхода из диалогового окна Select Properties. После этого для каждого из каналов появятся имя группы, а также минимальное и максимальное значения.

Рисунок 5-32. Окно просмотра данных DIAdem

5-47

Щелкните проавой кнопкой мыши по одному из графиков в окне VIEW и выберите Cursor»Curve. Это заставит курсор (перекрестье) перемещаться по точкам кривых. Теперь значения X и Y будут заполнены для каждого канала.

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

Необязательное задание: Генерация отчета с помощью DIAdem

5.В меню File выберите Transfer to REPORT. После этого данные будут перенесены в окно REPORT, где вы можете создать требуемый отчет.

Дважды щелкните по панели настройки графика (plot legend) для вызова диалогового окна 2D graphics legend (Настройка 2D графика).

В выпадающем меню Labeling with (Ввести имя) выберите опцию Channel name (origin short) (Имя канала).

Нажмите OK для выхода из диалогового окна.

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

Щелкните правой кнопкой мыши на вкладке Sheet 1 на панели внизу экрана и выберите Delete. При появлении всплывающего окна с вопросом об удалении страницы нажмите OK, поскольку эта страница пустая, и её необходимо убрать из отчета.

Выберите File»PDF Export (Файл»Экспортировать в формат PDF).

Введите C:\Упражнения\LabVIEW Основы II\Запись TDM файлов\Отчет по испытательным данным.pdf в качестве пути к файлу отчета.

Откройте папку C:\Упражнения\LabVIEW Основы II\Запись TDM файлов в проводнике Windows Explorer и дважды щелкните по файлу Отчет по испытательным данным для его открытия.

Закройте DIAdem. Не сохраняйте никаких изменений.

Конец Упражнения 5-2

5-48

Упражнение 5-3. Запрос TDM файла

Цель

Запросить TDM файл для получения информации о заданном канале.

Описание работы

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

Разработка ВП

Входные и выходные параметры ВП Запрос TDM файла

Таблица 5-6. Входные и выходные параметры ВП Запрос TDM

 

 

файла

 

 

 

 

Тип

Имя

 

Свойства

 

 

 

Значение по умолчанию

Элемент управления – путь

Путь к TDM файлу

 

к файлу

 

 

C:\Упражнения\LabVIE

 

 

 

W Основы II\Запись

 

 

 

TDM

 

 

 

файлов\Испытательные

 

 

 

данные.TDM

Строковый элемент

Серийный номер

 

 

управления

 

 

 

 

 

 

Пункт 1 = «Временные

Строковый элемент

Набор данных

 

управления с

 

 

данные»

возможностью выбора

 

 

Пункт 2 = «Спектр

значения (Combo Box)

 

 

мощности»

Индикатор график

Результат запроса

 

 

осциллограмм

 

 

 

 

 

 

 

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

Создание ВП

5-49

1.Создайте новый ВП.

2.Сохраните его под именем Запрос TDM файла.vi в папке

C:\Упражнения\LabVIEW Основы II\Запрос TDM файлов\.

3.Создайте лицевую панель ВП.

Рисунок 5-33. Лицевая панель ВП Запрос TDM файла

Создайте элемент управления Путь к TDM файлу со значением по умолчанию C:\Упражнения\LabVIEW

Основы II\Запись TDM файлов\Испытательные данные.TDM.

Создайте строковый элемент управления Серийный номер.

Создайте график осциллограмм Результаты запроса.

Поместите на лицевую панель строковый элемент управления Combo Box. Назовите его Набор данных.

Вызовите его контекстное меню и выберите в нем опцию

Edit Items.

В списке пунктов Items введите Спектр мощности.

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

В списке пунктов Items введите Временные данные.

Уберите отметку опции Allow undefined values at run time

(Разрешить неопределенные значения во время работы ВП).

Нажмите OK.

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

5-50

Вызовите контекстное меню элемента управления Набор данных и выберите в нем опцию Data Operations»Make Current Value Default.

Расположите элементы управления на лицевой панели, как показано на рисунке 5-33.

4.Откройте TDM файл.

Поместите на блок-диаграмму ВП Open Data Storage.

В выпадающем меню Overwrite options выберите опцию open (read only).

Примечание. Открытие файла с помощью ВП Open Data Storage в режиме open (read only) увеличивает скорость считывания и поиска данных. При этом файл не блокируется, поэтому одновременно он может использоваться

вдругих программах.

Нажмите OK для выхода из диалогового окна настройки

Configure Open Data Storage. Для остальных настроек оставьте значения по умолчанию.

Присоедините элемент управления Путь к TDM файлу к

входу file path ВП Open Data Storage.

5.Запросите правильную Группу каналов.

Поместите ВП Read Data на блок-диаграмму.

Выберите Channel Group из выпадающего меню Object type to read (тип объекта для чтения).

Из выпадающего меню Property to compare (свойство для сравнения) выберите свойство Name. Теперь диалоговое окно должно напоминать показанное на рисунке 5-34.

5-51

Рисунок 5-34. Настройка ВП Read Data для считывания Групп каналов

Нажмите OK для выхода из диалогового окна.

Поместите на блок-диаграмму функцию Index Array.

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

Выполните подключения проводников, как показано на рисунке 5-35.

Рисунок 5-35. Запрос Групп каналов

6. Запросите данные из заданного Канала.

Поместите ВП Read Data на блок-диаграмму.

Из выпадающего меню Property to compare выберите свойство Name.

Нажмите OK для выхода из диалогового окна. Для остальных настроек оставьте значения по умолчанию.

7.Закройте файл и выполните обработку ошибок.

Поместите ВП Close Data Storage на блок-диаграмму.

Поместите ВП Simple Error Handler на блок-диаграмму.

Выполните подключения проводников, как показано на рисунке 5-36.

5-52

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

Рисунок 5-36. Окончательная блок-диаграмма ВП Запрос TDM файла

Проверка работы

1.Запросите данные временной области.

Переключитесь на лицевую панель ВП.

Убедитесь, что значение по умолчанию для элемента управления Путь к TDM файлу совпадает с указанным в Таблице 5-6, а Набор данных имеет значение Временные данные.

Введите A001 в строку Серийный номер.

Примечание. A001 – это один из серийных номеров, которые вы вводили при запуске ВП Запись TDM файлов в упражнении 5-2.

Запустите ВП. На графике Результаты запроса должен появиться синусоидальный сигнал.

Измените Серийный номер на A002.

Запустите ВП. Должен отобразиться другой синусоидальный сигнал.

2.Запросите данные спектра мощности.

Измените значение элемента управления Набор данных на

Спектр мощности.

Запустите ВП. На графике Результаты запроса должен появиться спектр мощности сигнала.

Конец Упражнения 5-3

5-53

5-54

Контрольные вопросы

1.Результаты испытаний необходимо сохранить в файл. В будущем вам понадобится эффективно осуществлять поиск испытаний, удовлетворяющих определенным критериям. Какой формат файлов позволит наиболее просто выполнять запрос данных?

a. ASCII с разделителем – символом табуляции

б. Стандартный двоичный формат

в. TDM

г. Формат структурированного протокола

2.Вам необходимо написать программу для сохранения изображений в формате Portable Network Graphics (PNG). ВП из какой палитры записи файлов вы должны использовать?

а. Storage (Хранения данных)

б. Binary (Двоичные)

в. ASCII (Текстовые)

г. Datalog (Структурированного протокола)

3.Вам требуется сохранить данные, которые будут затем анализироваться с помощью приложения Microsoft Excel. Какой формат файла вы должны использовать для записи?

а. ASCII с разделителем – символом табуляции б. Стандартный двоичный формат

в. TDM

г. Формат структурированного протокола

4.Какая из следующих записей является прямым представлением беззнакового 32-разрядного целого числа (U32) со значением

10?

а. 00001010 00000000 00000000 00000000

б. 00000000 00000000 00000000 00001010

в. 00001010

г. 01010000 00000000 00000000 00000000

5-55

5.Вы можете использовать ВП из палитры Binary File для чтения

ASCII файлов.

а. Да б. Нет

6.TDM Файлы хранят все свойства на уровне канала либо группы каналов.

а. Да б. Нет

5-56

Ответы на контрольные вопросы

1.Результаты испытаний необходимо сохранить в файл. В будущем вам понадобится эффективно осуществлять поиск испытаний, удовлетворяющих определенным критериям. Какой формат файлов позволит наиболее просто выполнять запрос данных?

a. ASCII с разделителем – символом табуляции

б. Стандартный двоичный формат

в. TDM

г. Формат структурированного протокола

2.Вам необходимо написать программу для сохранения изображений в формате Portable Network Graphics (PNG). ВП из какой палитры записи файлов вы должны использовать?

а. Storage file (Хранения данных)

б. Binary file (Двоичные)

в. ASCII file (Текстовые)

г. Datalog file (Структурированного протокола)

3.Вам требуется сохранить данные, которые затем будут анализироваться с помощью приложения Microsoft Excel. Какой формат файла вы должны использовать для записи данных?

а. ASCII с разделителем – символом табуляции

б. Стандартный двоичный формат в. TDM

г. Формат структурированного протокола

4.Какая из следующих записей является прямым представлением беззнакового 32-разрядного целого числа (U32) со значением

10?

а. 00001010 00000000 00000000 00000000

б. 00000000 00000000 00000000 00001010

в. 00001010

г. 01010000 00000000 00000000 00000000

5-57

5.Вы можете использовать ВП из палитры Binary File для чтения

ASCII файлов.

а. Да

б. Нет

6.TDM Файлы хранят все свойства на уровне канала либо группы каналов.

а. Да б. Нет

5-58

Примечания

5-59

6

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

На этом занятии описан процесс создания самостоятельно исполняемого приложения, а также программы установки приложений LabVIEW.

Темы:

А. Возможности LabVIEW для управления разработкой проектов

Б. Подготовку приложения

В. Создание самостоятельно исполняемого приложения и программы установки

6-1

А. Возможности LabVIEW для управления разработкой проектов

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

История изменений ВП

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

History в меню Tools выберите VI Revision History. Историю изменений ВП можно распечатать на принтере.

Страница Revision History диалогового окна VI Properties и

страница с таким же именем в диалоговом окне Tools»Options содержат похожие опции. Диалоговое окно VI Properties используется для настройки опций текущего ВП. А в диалоговом окне Options настраиваются свойства всех заново создаваемых ВП.

Иерархия ВП

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

Поэтому старайтесь создавать блок-диаграммы ВП верхнего уровня с размером, не превышающим 500 КБ. ВПП, чаще всего, будут значительно меньше. Для проверки размера ВП зайдите в меню File»VI Properties (Файл»Свойства ВП) и из верхнего выпадающего меню выберите опцию Memory Usage (Использование памяти). Критерием необходимости разбиения ВП на несколько ВПП обычно является невозможность уместить блок-диаграмму ВП в размер экрана.

В окне Hierarchy (Иерархия ВП) в графической форме отображаются все открытые проекты и объекты LabVIEW, а также иерархия всех ВП, находящихся в памяти, включая определители типов и глобальные переменные. Для вызова окна

Hierarchy выберите меню View»VI Hierarchy. Таким образом, в

этом окне можно просмотреть все ВПП и узлы, которые формируют открытые ВП, а также осуществлять поиск объектов.

6-2

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

На рисунке 6-1 показано окно иерархии проекта Метеостанция, который мы создавали в течение всего курса. ВПП из папки LabVIEW vi.lib здесь не показаны. Чтобы увидеть полную иерархию, щелкните правой кнопкой мыши в свободном пространстве окна и выберите в контекстном меню опцию Show All VIs.

 

 

 

 

1.

Оптимизация расположения

4.

Включить библиотеки ВП

2.

Вертикальное расположение

5.

Включить глобальные

3.

Горизонтальное

 

переменные

 

расположение

6.

Включить определители

 

 

 

типов

Рисунок 6-1. Окно иерархии ВП

Если провести курсором мыши над объектом в окне Hierarchy, LabVIEW отобразит имя соответствующего ВП. С помощью инструмента Перемещения (Positioning tool) можно перенести ВП

6-3

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

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

Find.

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

Сравнение ВП

Впрофессиональной версии среды разработки LabVIEW (Professional Development System) содержится средство определения различий между двумя ВП, загруженными в оперативную память компьютера. Для вызова диалогового окна сравнения Compare VIs зайдите в меню Tools и выберите

Compare»Compare VIs.

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

6-4

Упражнение 6-1. Средства управления разработкой проектов LabVIEW

Цель

Опробовать работу некоторых встроенных средств LabVIEW по управлению проектами.

Описание

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

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

История изменений ВП

1.Откройте ВП Интерфейс метеостанции.

2.Чтобы открыть окно History этого ВП выберите Edit»VI Revision History.

3.Нажмите кнопку Reset, чтобы очистить записи об изменениях, внесенных в ВП. Нажмите Yes для подтверждения удаления истории и обнуления номера записи.

4.В текстовом поле Comment окна History введите Начальная версия приложения и нажмите кнопку Add. Комментарий вместе с отметкой времени и даты появится в текстовом окне

History. Закройте окно History.

Иерархия ВП

5.Выберите меню View»VI Hierarchy. Появится окно иерархии приложений.

6-5

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

7.Проверьте работу кнопок на панели инструментов в окне иерархии. Обратите внимание, что, используя кнопки Layout или перетаскивая иконки, можно менять расположение объектов иерархии, а, используя кнопки Include, можно включать в иерархию различные компоненты приложения. Нажатие на кнопку Redo Layout приводит к такому расположению элементов иерархии, чтобы оно было максимально симметричным с минимальным количеством пересечений соединяющих линий.

8.Дважды щелкните на иконке какого-либо ВПП в иерархии, чтобы вызвать его лицевую панель. Закройте этот ВПП и окно

Hierarchy.

6-6

9. Закройте все ВП. Не сохраняйте никаких изменений.

Конец Упражнения 6-1

6-7

Б. Подготовка приложения

Самостоятельное приложение позволяет запускать ВП без установки среды разработки LabVIEW. Программы установки приложений (инсталляторы) используются для переноса и запуска приложений на других компьютерах. Инсталляторы могут содержать специальный пакет LabVIEW Run-Time Engine, необходимый для работы самостоятельных приложений. Однако его также можно установить отдельно, скачав с сайта ni.com.

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

Внешний код

Во-первых, необходимо знать, будет ли в приложениях использоваться внешний код. Например, будут ли вызываться какие-либо системные или пользовательские динамически подключаемые библиотеки? Будут ли в приложении обрабатываться аргументы командной строки? Эти вопросы выходят за рамки данного курса, однако их необходимо рассмотреть при создании приложения.

Пути к файлам

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

Выход из LabVIEW

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

Использование справки в приложениях LabVIEW

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

6-8

Для программного управления окном контекстной справки Context Help и для вызова из ВП файлов HTML или CHM, используйте следующие функции, расположенные в палитре

Help:

Функция Get Help Window Status используется для получения информации о состоянии и расположении окна контекстной справки Context Help.

Функция Control Help Window применяется для того, чтобы вызвать, скрыть или передвинуть окно Context Help.

Функция Control Online Help используется для вызова оглавления, перехода в определенное место и закрытия гипертекстовой справки.

Для отображения какого-либо информационного ресурса в сети Интернет либо HTML файла в обозревателе применяется функция Open URL in Default Browser VI.

В. Создание приложения и программы установки

Для создания самостоятельных приложений и программинсталляторов используется раздел Build Specifications в окне Project Explorer, имеющий ряд опций, среди которых:

Stand-alone applications (самостоятельные приложения) –

используется для создания исполняемых версий ВП, что особенно полезно, когда возникает необходимость запуска ВП без установки среды разработки LabVIEW. Файлы приложений имеют расширение .exe (Windows) или .app (Mac OS).

Installers (программы установки приложений) – (Windows) Инсталляторы используются для переноса самостоятельных приложений (stand-alone applications), совместно используемых библиотек (shared libraries) и пакетов исходных файлов (source distributions), созданных с помощью приложения Application Builder, на другие компьютеры. Инсталляторы могут включать специальный пакет LabVIEW Run-Time Engine, необходимый для работы приложений и совместно используемых библиотек без установки LabVIEW.

Спецификации компиляции LabVIEW

Раздел Build Specifications в окне Project Explorer используется для задания спецификаций наборов исходных файлов и других типов компиляций LabVIEW. Спецификации задают все опции для компиляции, например, файлы для включения в компиляцию, создаваемые директории и настройки папок виртуальных приборов.

6-9

Примечание. (Windows and UNIX) В зависимости от типа приложения для его правильной работы может потребоваться наличие файлов, не являющихся ВП. Часто используемыми файлами такого типа являются файлы настроек приложения (.ini) и любые справочные файлы, которые вызываются ВП.

Системные требования

Приложения, которые создаются с помощью раздела Build Specifications, обычно имеют те же системные требования, что и LabVIEW. Требования к оперативной памяти существенно зависят от размера созданного приложения.

Эти файлы можно запускать на компьютерах без установленной среды LabVIEW, однако самостоятельные приложения и разделяемые библиотеки требуют для работы установленного пакета LabVIEW Run-Time Engine.

Задание спецификаций компиляции

Спецификации компиляции задаются в окне обозревателя Project Explorer. Откройте раздел My Computer, вызовите контекстное меню пункта Build Specifications, выберите опцию New и затем тип компиляции, который вы хотите настроить. Появится соответствующее диалоговое окно настройки свойств: Source Distribution Properties, Application Properties, Shared Library Properties, (Windows) Installer Properties или же Zip File Properties. После выполнения настроек нажмите OK для закрытия диалогового окна и обновления спецификации компиляции в проекте. После этого спецификация появится в разделе Build Specifications. Щелкните по ней правой кнопкой мыши и выберите в контекстном меню опцию Build для завершения создания компиляции.

Перед созданием компиляции с помощью Application Builder ознакомьтесь со всеми предупреждениями и рекомендациями, касающимися приложений, разделяемых библиотек и инсталляторов.

Дополнительную информацию, предостережения и рекомендации при создании приложений и инсталляторов можно найти в справке LabVIEW Help.

6-10

Упражнение 6-2. Создание самостоятельного приложения

Цель

Создать самостоятельное приложение с помощью LabVIEW.

Описание работы

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

Настройка окна главного приложения

1. Откройте файл проекта и созданный ВП Интерфейс метеостанции.

Рисунок 6-2. Лицевая панель

6-11

2.Вызовите диалоговое окно свойств ВП, выбирая в меню File

опцию VI Properties.

3.В верхнем выпадающем меню выберите Window Appearance.

4.Назовите окно Метеостанция.

5.Чтобы лицевая панель профессионально выглядела в качестве интерфейса самостоятельной программы, отметьте опцию Toplevel application window.

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

Вызов функции Quit LabVIEW

7.Откройте и измените блок-диаграмму, включив вызов функции Quit LabVIEW по окончании работы приложения.

Рисунок 6-3. Блок-диаграмма

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

Заключите функцию Quit LabVIEW в структуру последовательности Flat Sequence.

Присоедините проводник, выходящий из ВП Simple Error Handler, к границе структуры последовательности, формируя необходимый порядок выполнения.

8.Выберите File»Save All для сохранения всех ВП.

9.Откройте лицевую панель и запустите ВП. После нажатия на кнопку Стоп ВП остановится, а LabVIEW закроется.

10.Снова запустите LabVIEW и откройте проект

Метеостанция.lvproj.

Изменение пути к файлу

11.Измените относительный путь к файлу, так чтобы он остался правильным после создания исполняемого приложения. Для

6-12

этого потребуется отделить дополнительные компоненты пути.

Рисунок 6-4. Дополнительная функция Strip Path

Откройте ВП Подготовка метеостанции из окна проекта.

Переключитесь на блок-диаграмму ВП.

Поместите ещё одну функцию Strip Path на блок-диаграмму.

Выполните подключения, как показано на рисунке 6-4.

Сохраните и закройте ВП.

Спецификация приложения (EXE)

12.Вызовите контекстное меню подраздела Build Specifications в

окне Project Explorer и выберите опцию New»Application (EXE).

13.В разделе Application Information измените имя создаваемого файла (target) и директории, в которой будет создано приложение (destination directory).

Выберите категорию Application Information.

6-13

В текстовом поле Target filename введите

Метеостанция.exe.

В качестве рабочей папки в поле Application destination

введите C:\Упражнения\LabVIEW Основы II\Курсовой проект\Исполняемые файлы.

Совет. Создавать папку вручную не обязательно. LabVIEW создаст любую папку, которая будет указана.

14.Задайте ВП верхнего уровня.

Зайдите в категорию Source Files.

В дереве Project Files выберите ВП Интерфейс метеостанции.

Нажмите кнопку со стрелкой рядом со списком Startup VIs, чтобы добавить выбранный ВП в список Startup VIs.

Нажмите OK.

15.Вызовите контекстное меню спецификации Build Specification»Курсовое приложение, которую вы только что создали, и выберите в нем опцию Build.

16.Нажмите Done в окне Build Status.

17.В проводнике Windows Explorer откройте папку

C:\Упражнения\LabVIEW Основы II\Курсовой проект\Исполняемые файлы и запустите

Метеостанция.exe. Остановите работу программы.

Спецификация инсталлятора

18.Вызовите контекстное меню подраздела Build Specifications в

окне Project Explorer и выберите опцию New»Installer.

19.Измените название папки инсталлятора Installer destination в

категории Product Information.

Выберите категорию Product Information.

В качестве рабочей папки в поле Installer destination

введите C:\Упражнения\LabVIEW Основы II\Курсовой проект\Инсталлятор.

20.Выполните настройку спецификации Executable Build Specification.

Перейдите в категорию Source Files (Исходные файлы).

Выберите созданную спецификацию Курсовое приложение.

6-14

В окне Destination View выберите папку

ProgramFilesFolder и в ней подпапку Метеостанция.

Нажмите кнопку со стрелкой рядом с окном Project View, чтобы поместить исполняемый файл и файлы поддержки в папку Метеостанция, как показано на рисунке 6-5.

Рисунок 6-5. Категория исходных файлов спецификации инсталлятора

21.Добавьте пакет NI LabVIEW Run-Time Engine в инсталлятор, внося изменения в категорию Additional Installers (Дополнительные инсталляторы).

Выберите категорию Additional Installers.

Выберите инсталлятор NI LabVIEW Run-Time Engine 8.0.

22.Добавьте ярлык быстрого запуска приложения из меню Пуск, внося изменения в категорию Shortcuts.

Выберите категорию Shortcuts.

Нажмите кнопку со знаком +, чтобы добавить ярлык быстрого запуска.

Выберите Метеостанция.exe в диалоговом окне Select Target File (Выбрать файл для запуска).

6-15

Нажмите OK.

23.Вызовите контекстное меню спецификации Installer Build Specification и выберите в нем опцию Build (Создать).

24.Нажмите Done (Завершить).

Проверка работы

1.Запустите файл setup.exe из папки

C:\Упражнения\LabVIEW Основы II\Курсовой проект\Инсталлятор\Volume. Появится окно,

руководящее вашими действиями в процессе установки приложения. Исполняемый файл будет создан в папке

C:\Program Files\Метеостанция.

2.Для запуска приложения выберите меню Пуск»Все программы»Метеостанция» Метеостанция.

Конец Упражнения 6-2

6-16

Итоги

LabVIEW содержит пакет Application Builder, позволяющий создавать самостоятельно исполняемые файлы и инсталляторы. Application Builder входит в состав только профессиональной версии LabVIEW PDS, однако его можно приобрести и в качестве дополнительного пакета.

Чтобы создать профессиональное самостоятельное приложение из набора ВП необходимо принять во внимание четыре ключевых момента:

Архитектуру создаваемого приложения

Особенности программирования приложения

Процесс создания приложения

Процесс создания программы установки

LabVIEW содержит несколько инструментов, помогающих вам и вашим сотрудникам в разработке проекта. Среди них окно VI Revision History (истории изменений ВП) для записи комментариев и изменений, внесенных в ВП, а также информации об имени пользователя, который произвел запись изменений. Окно VI Revision History

вызывается из меню Tools»VI Revision History.

Окно Hierarchy (иерархии) служит для быстрого обзора взаимосвязей виртуальных приборов, используемых в проекте.

6-17

Примечания

6-18

А

Дополнительная информация и ресурсы

Это Приложение содержит дополнительные сведения о технической поддержке National Instruments и информационных ресурсах, посвященных LabVIEW.

Возможности технической поддержки National Instruments

Для получения подробной информации о технической поддержке и профессиональных сервисах National Instruments посетите следующие разделы Интернет-сайта ni.com.

Support — Онлайновые ресурсы технической поддержки ni.com/support включают следующие подразделы:

Self-Help Resources — Для получения ответов на ваши вопросы и поиска готовых решений обратитесь к Интернетсайту National Instruments. Здесь вы найдете драйверы и обновления программного обеспечения, поисковую систему по информационным базам компании, пользовательские руководства, пошаговые помощники по решению проблем, тысячи примеров программ, инструкции, статьи и т.д. Сайт является постоянным призером по уровню\технической поддержки пользователей компании.

Free Technical Support — Все зарегистрированные пользователи имеют доступ к бесплатному ресурсу Базового Сервиса (Basic Service) на NI Developer Exchange - ni.com/exchange, который обеспечивают сотни инженеров технической поддержки компании National Instruments со всего мира. Инженеры технической поддержки дадут ответ на любой вопрос пользователей.

Для получения информации о технической поддержки в вашем регионе посетите ni.com/services или обратитесь в региональное представительство компании, контактные данные которого вы найдете на ni.com/contact.

A-1

System Integration — Если вам требуется срочное решение вашей задачи, либо ваши собственные технические возможности ограничены или же вы испытываете иные сложности при самостоятельной реализации проекта, вам помогут фирмы – участники Альянса National Instruments (NI Alliance Partner).

Партнеры Альянса National Instruments – это системные интеграторы, консультанты, поставщики оригинального аппаратного обеспечения, предлагающие заказчикам широкий спектр продуктов и профессиональных услуг. Участие компаний в программе Альянса гарантирует их квалификацию и опыт в создании пользовательских систем. Чтобы найти участника Альянса, который сможет помочь вам в решении поставленной задачи, позвоните в региональное представительство NI или посетите страницу ni.com/alliance.

Если ваш поиск по сайту ni.com не принес ожидаемых результатов, вы также можете обратиться в ближайшее представительство или в головной офис компании National Instruments. Номера телефонов всех национальных офисов компании приведены на титульной странице руководства. Контактные данные офисов – телефоны, адреса, часы работы, а также расписание проводимых ими мероприятий - можно также найти на странице ni.com/niglobal.

Другие учебные курсы National Instruments

National Instruments предлагает пользователям LabVIEW несколько различных учебных курсов. Эти курсы расширят знания и навыки, полученные в данном курсе. Посетите страницу ni.com/training для ознакомления с материалами курсов и для регистрации на очные курсы, проводимые специалистами National Instruments во всех уголках мира.

Сертификационная программа National Instruments

Получение сертификата NI подтверждает уровень вашей квалификации при работе с продуктами и технологиями компании. Специалисты по измерительно-контрольной технике и автоматизации, ваши работодатели, ваши клиенты и коллеги оценят ваши знания и опыт, приобретенный вами в ходе сертифицированной подготовки. Для получения более подробной информации о программе сертификации пользователей National Instruments посетите страницу www.ni.com/training.

Информационные ресурсы о LabVIEW

A-2

В этом разделе вы найдете перечень доступных технических ресурсов, посвященных LabVIEW.

Публикации о LabVIEW

Следующие публикации содержат большое количество детальной информации о LabVIEW.

Журнал Технические Ресурсы LabVIEW (LabVIEW Technical Resource)

Подпишитесь на ежеквартальный журнал LabVIEW Technical Resource (LTR) для ознакомления с подробными техническими описаниями, технологиями и тонкостями разработки приложений в LabVIEW, рассчитанными на широкий круг читателей – от новичков до опытных профессионалов. В приложении к журналу вы найдете компакт-диск с виртуальными приборами и утилитами для LabVIEW, обсуждавшимися в выпуске. Заказать подписку на LabVIEW Technical Resource можно в издательстве LTR по телефону (214) 706-0587 или через Интернет-сайт www.ltrpub.com.

Книги о LabVIEW

О разработке приложений LabVIEW и технологиях виртуальных приборов написано множество книг на разных языках мира. На Интернет-сайте National Instruments вы найдете полный перечень этих книг и условия их приобретения. На странице Российского представительства ni.com/russia содержится такая же информация о книгах, написанных русскоязычными авторами и книгах иностранных авторов, переведенных на русский язык.

Электронная рассылка info-labview

info-labview – ресурс, объединяющий пользователей LabVIEW со всего мира, обсуждающих интересующие их вопросы и помогающих друг другу в решении задач посредством электронной почты. Участники группы, зарегистрировавшиеся в списке рассылки, получают обращений и дают ответы на самый широкий круг вопросов, посвященных специфике реализации тех или иных задач, нахождения инструментальных драйверов, методикам устранения неполадок и т.д. Для регистрации в почтовой группе info-labview, отправьте электронное письмо по адресу:

info-labview-on@labview.nhmfl.gov

Чтобы подписаться только на обзорные выпуски дискуссий группы, используйте адрес:

A-3

info-labview-digest@labview.nhmfl.gov

Для прекращения подписки в группе info-labview, отправьте электронную почту по адресу:

info-labview-off@labview.nhmfl.gov

Отправка сообщения участникам группы осуществляется на адрес электронной почты:

info-labview@labview.nhmfl.gov

При необходимости известить о чем-либо администратора группы пошлите письмо на адрес:

info-labview-owner@nhmfl.gov

Вы также можете провести поиск интересующей вас темы в дискуссиях группы через поисковую машину по адресу:

www.searchVIEW.net

Интернет-страница группы info-labview:

www.info-labview.org

A-4