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

LabView _lab (МУ к лабораторным работам)

.pdf
Скачиваний:
92
Добавлен:
09.02.2015
Размер:
462.54 Кб
Скачать

Рисунок 15. Переработанный ВП

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

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

3.2.Программа работы

1.Открыть файл Определить предупреждение (плохой).vi Задачей этого ВП является проверка, не вышли ли текущие значения

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

светодиодного индикатора в этих случаяхПереместите все элементы управления в левую часть диаграммы.

2.Переместите все индикаторы в правую часть диаграммы.

3.При помощи кнопок инструментальной панели Выровнить Объекты

(Align Objects) и Распределить Объекты (Distribute Objects) для оптимизации размещения соответствующих терминалов.

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

5.Переместите объекты и соединяющие их проводники так, чтобы поток данных всегда следовал слева направо.

6.Сократите число перегибов проводников.

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

Верхний предел Т, Нижний предел Т и Скорость сильного ветра.

Наиболее подходящими именами индикаторов являются Текст предупреждения и Предупреждение?

8.Удалите все ненужные логические конструкции с диаграммы прибора. Так, на Рисунке 16 видно, что за функцией Equal? (Равно?) следует логическая инверсия функция Not (НЕ). Вы можете заменить его на единственную функцию Not Equal? (Не Равно?).

Рисунок 16. Ненужные логические конструкции

9.Сократите излишние логические конструкции, взяв логическое

состояние предупреждения напрямую с входа функции Выбора (Select)., как показано на Рисунке 17.

Рисунок 17. Дальнейшее сокращение логических конструкций

10.Замените повторяющиеся логические конструкции на диаграмме на виртуальные подприборы.

11.Удалите ненужные локальные переменные, подсоединив

проводники напрямую к соответствующим элементам управления и индикаторам.

12.Сохраните ВП под именем Определить предупреждения (хороший).vi.

13.В качестве альтернативы выполнению п.п. 2…12 предлагается

реализовать решение этой задачи с использованием машины

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

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

14. При помощи клавиш Alt+PrtSc записать и сохранить в файле .doc скриншоты блок-схемы программы и лицевой панели для обоих вариантов решения задачи.

3.3.Содержание отчета

1.Ответы на вопросы, содержащиеся в программе работы.

2.Скриншоты программ по п. п. 14 программы работы.

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

1.Сформулируйте принцип потокового программирования?

2.Перечислите распространенные причины ошибок ВП?

3.Какова последовательность переработки ВП?

4.Перечислите типичные проблемы и приемы переработки?

Лабораторная работа №4

ПРОГРАММНОЕ ИЗМЕНЕНИЕ СВОЙСТВ ЛИЦЕВОЙ ПАНЕЛИ ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ

Цель работы получение опыта управления атрибутами лицевой панели ВП. Изучаются сервер ВП, Узлы Свойств (Property Nodes), Ссылки на элементы управления (control references), а также Узлы Вызовов (Invoke Nodes).

4.1.Основные сведения

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

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

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

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

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

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

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

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

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

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

Класс ВП

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

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

Узлы свойств

Узлы Свойств открываюn доступ к свойствам объекта. В ряде приложений

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

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

панели, для скрытия элементов, добавления курсоров на графики и так далее.

Узлы Свойств в LabVIEW очень эффективны и имеют много применений.

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

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

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

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

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

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

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

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

контекстного меню. Если после этого подключить к терминалу логическое значение False (Ложь), данный числовой элемент управления перестанет

отображаться на лицевой панели после того, как Узел Свойств считает логическое значение. Чтобы элемент управления появился вновь, необходимо подать на терминал логическое значение True (Истина).

Для считывания информации об определенном свойстве, щелкните правой

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

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

Вы можете считывать/записывать несколько свойств в одном Узле Свойств

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

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

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

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

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

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

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

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

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

При создании ВП, содержащего несколько Узлов Свойств либо при

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

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

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

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

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

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

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

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

Объекты, выделенные для создания ВПП Использована опция Edit»Create SubVI

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

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

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

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

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

Красная звездочка на элементе управления Control Reference означает, что ссылка refnum – с жесткой привязкой (strictly typed).

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

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

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

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

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

Использование метода ссылки на элемент управления очень полезно в случае настройки одного и того же свойства для нескольких элементов управления. Некоторые свойства присущи всем классам элементов

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

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

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

Enable/Disable.

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

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

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

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

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

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