Для проектирования ВП в среде LabVIEW необходимо сформировать его лицевую панель и разработать блок-диаграмму. При формировании лицевой панели производится выбор и установка на ней элементов управления и индикации из палитры элементов данной панели. Аналогично при разработке блок-диаграммы производится выбор и установка на ней функциональных элементов и подпрограмм из палитры функций данной панели.
Установка каждого элемента на лицевой панели сопровождается появлением соответствующего терминала данных (terminal) на панели блок-диаграммы. Терминалы элементов управления представляют порты ввода информации в блок-диаграмму, а терминалы индикаторов – порты вывода информации из блок-диаграммы на лицевую панель. Для обработки введенной информации и программного управления параметрами и режимами работы элементов лицевой панели на панели блок-диаграммы размещаются необходимые константы, функции (Functions), подприборы (SubVI) и структуры (Structures), которые также имеют терминалы для ввода и вывода информации. Все перечисленные элементы представляют узлы (nodes) блок-диаграммы, которые соединяются с терминалами элементов управления и индикации и между собой линиями, называемыми проводниками (wires). В такой схеме через узлы в процессе обработки проходит поток данных (data flow), идущий по проводникам от входных терминалов к выходным. Узлы – это объекты на блок-диаграмме, которые имеют одно или более полей ввода/вывода данных и выполняют алгоритмические операции ВП. Они аналогичны операторам, функциям и подпрограммам текстовых языков программирования.
Таким образом, описанная технология формирования ВП является основой для потоковой модели обработки данных, когда поток данных входит (втекает) в узлы-источники, проходит через узлы обработки данных и выходит (вытекает) через узлы-приемники данных. При этом порядок обработки данных определяется целиком полнотой подхода данных к терминалам узлов. Такая концепция работы программы в LabVIEW существенно облегчает, по сравнению с текстовыми языками, разработку многозадачных и многопоточных программ.
|
Терминалы данных имеют прямоугольную форму и содержат буквенно-графическое обозначение, характеризующее тип и форму представления воспринимаемых ими данных. Таким образом, по виду терминала можно определить – является ли он источником или приемником данных, какие типы данных он воспринимает – числовые, логические или строковые, а для числовых – является ли число целым или вещественным. Для определения таких различий используются различия в толщине внешней рамки терминала и направлении треугольной стрелки внутри него, цвет терминала и буквенное или графическое обозначение. Кроме того, вид терминала можно определить и по содержанию контекстного меню.
В LabVIEW 7.0 введен еще один способ идентификации терминала, а именно отображение иконки соответствующего элемента. Такое отображение включается с помощью опции Отображать в виде иконки (View as Icon) контекстного меню терминала. В качестве примера можно сравнить вид терминала числового элемента ввода данных в форме с плавающей запятой одинарной точности в его традиционном представлении и в представлении в виде иконки . Однако представление в виде иконки приводит к потере пространства блок диаграммы, что не всегда удобно.
|
Перечень и вид терминалов элементов ввода/вывода данных LabVIEW 7.0 с характеристикой типа, цвета и значения по умолчанию приведен в следующей таблице.
Элемент управления | Элемент индикации | Тип данных | Цвет | Значение по умолчанию |
Числовой с плавающей запятой одинарной точности | Оранжевый | 0,0 | ||
Числовой с плавающей запятой двойной точности | Оранжевый | 0,0 | ||
Числовой с плавающей запятой расширенной точности | Оранжевый | 0,0 | ||
Комплексный с плавающей запятой одинарной точности | Оранжевый | 0,0+i0,0 | ||
Комплексный с плавающей запятой двойной точности | Оранжевый | 0,0+i0,0 | ||
Комплексный с плавающей запятой расширенной точности | Оранжевый | 0,0+i0,0 | ||
Числовой байтовый со знаком | Синий | |||
Числовой двухбайтовый со знаком | Синий | |||
Числовой четырехбайтовый со знаком | Синий | |||
Числовой байтовый без знака | Синий | |||
Числовой двухбайтовый без знака | Синий | |||
Числовой четырехбайтовый без знака | Синий | |||
Нумерованный | Синий | - | ||
<64,64>-битовая отметка времени | Дата и время (локальные) | |||
Логический | Зеленый | FALSE | ||
Строковый | Розовый | пустая строка | ||
Массив – заключает тип данных в квадратные скобки и принимает цвет этого типа данных | Различный | - | ||
Кластер – заключает разные типы данных. Кластерный тип данных имеет коричневый цвет, если все элементы кластера числовые и розовый, если элементы разных типов | Коричневый или розовый | - | ||
Путь | Морской волны | <Не путь> | ||
Динамический (Dynamic) – (Express VIs) Включает данные, связанные с сигналом и атрибутами, которые обеспечивают информацию о сигнале, такую как имя сигнала или дата и время получения данных. | Фиолетовый | |||
Осциллограмма – кластер элементов, которые содержат дату, начальное время и интервал выборок сигнала | Коричневый | - | ||
Ссылка | Морской волны | - | ||
Вариант – включает имя элемента управления или индикатора, информацию о типе данных и сами данные | Фиолетовый | - | ||
I/O name – передает имя канала платы сбора данных (DAQ), ресурсное имя VISA или логическое имя IVI с целью их конфигурации | Фиолетовый | - | ||
Рисунок – отображает рисунок, который содержат линии, окружности, текст и другие графические элементы | Синий | - |
Настройка параметров объектов лицевой панели (элементов управления и индикаторов) и терминалов блок-диаграммы производится с помощью контекстного меню опций и команд. Контекстное меню открывается с помощью щелчка ПКМ на объекте. Опции, входящие в состав контекстного меню, зависят от типа объекта. Вместе с тем, в состав контекстного меню многих объектов входит ряд одинаковых пунктов. Сочетание общего и индивидуального можно показать на примере контекстных меню числового элемента управления (слева) и его терминала (рис. 1.5).
|
Краткие пояснения к пунктам контекстного меню приведены в следующей таблице:
Видимые объекты (Visible Items) | Позволяет показать или скрыть определенные элементы оформления, такие как ярлыки, заголовки, полосы прокрутки или соединительные терминалы. |
Найти терминал (Find Terminal) | LabVIEW находит и выделяет на блок-диаграмме терминал элемента лицевой панели. |
Найти элемент управления (Find Control) | LabVIEW находит и выделяет на лицевой панели элемент управления, имеющий заданный терминал на блок-диаграмме. |
Заменить на индикатор (Change to Indicator) | Позволяет заменить элемент управления лицевой панели на индикатор. Для индикатора аналогичный пункт выполняет обратное действие. |
Сделать элемент управления невидимым (Hide Control) | Позволяет сделать элемент управления невидимым. Для невидимого элемента аналогичный пункт меню выполняет обратное действие. |
Описание и подсказка (Description and Tip) | Позволяет описать объект и сделать подсказку к нему. |
Создать (Create) | Позволяет создать локальную переменную, узел свойств или ссылку. |
Заменить(Replace) | Позволяет входить в палитры панелей и заменять выбранный объект другим. |
Операции с данными (Data Operations) | Позволяет устанавливать текущие значения как значения по умолчанию, удалять, копировать и вставлять данные, устанавливать соединение DataSocket. |
Дополнительно (Advanced) | Позволяет производить тонкую настройку элементов управления и индикаторов. |
Свойства(Properties) | Позволяет выбрать диалоговое окно свойств объекта. |
Следующие пункты данного контекстного меню являются специфическими для числовых элементов:
Представление (Representation) | Позволяет выбрать и устанавливать тип представления числовых данных. |
Диапазон данных (Data Range) | Позволяет настраивать определенный действующий диапазон числовых значений и приращений данных. |
Формат и точность(Format&Precision) | Позволяет выбрать формат и точность представления данных. |
Представление данных в LabVIEW включает следующие типы:
– повышенной точности | – двойной точности | – 32-битовый |
– целочисленный 32-битовый со знаком | – целочисленный 16-битовый со знаком | –целочисленный 8-битовый со знаком |
– целочисленный 32-битовый без знака | – целочисленный 16-битовый без знака | – целочисленный 8-битовый без знака |
– комплексный повышенной точности | – комплексный двойной точности | –комплексный 32-битовый |
Для логических элементов управления специфическим является пункт контекстного меню Механическое действие (Mechanical Action), определяющий характер срабатывания логического элемента при его нажатии. Варианты срабатывания приведены в таблице.
Изобра-жение | Режим | Действие |
Включить при нажатии (Switch When Pressed) | Значение изменяется при каждом щелчке по элементу инструментом управления. | |
Включить при отпускании (Switch When Released) | Значение изменяется после отпускания кнопки мыши при каждом щелчке по элементу инструментом управления. | |
Включить до отпускания (Switch Until Released) | Значение изменяется при щелчке и автоматически возвращается в исходное состояние после отпускания кнопки мыши. | |
Сработать при нажатии (Latch When Pressed) | Значение изменяется при щелчке и автоматически возвращается в исходное состояние после однократного считывания виртуальным прибором нового значения. | |
Сработать при отпускании (Latch When Released) | Значение изменяется после отпускания кнопки мыши и автоматически возвращается в исходное состояние после однократного считывания виртуальным прибором нового значения. | |
Сработать до отпускания (Latch Until Released) | Значение изменяется при щелчке и возвращается в исходное состояние после однократного считывания виртуальным прибором нового значения или после отпускания кнопки мыши. |
В меню настроек строковых элементов управления и индикаторов специфическим является раздел, определяющий вид отображения содержимого этих элементов. Интерпретация строк данного раздела меню приведена в таблице
Нормальное отображение (Normal Display) | Позволяет отображать содержимое в том виде, в котором оно вводится с клавиатуры. | ||||||||||||||||||
'\' Кодированное отображение (Codes Display) | Позволяет принимать и отображать символы, которые являются неотображаемыми. Скрытые символы появляются в виде обратного слэша, за которым следует соответствующий код. Ниже в таблице приведены слэш-коды LabVIEW
| ||||||||||||||||||
Скрытое отображение (Password Display) | Переводит элемент управления или отображения в режим показа "звездочки" вместо каждого введенного символа. | ||||||||||||||||||
Шестнадцатеричное отображение (Hex Display) | Преобразует строку алфавитно-цифровых знаков в шестнадцатеричные символы. | ||||||||||||||||||
Ограничить до одной строки (Limit to Single Line) | Выбор функции приводит к блокированию ввода символа "возврат каретки" и строка всегда остается единственной. Ввода символа "возврат каретки" приводит к автоматическому завершению ввода текста. | ||||||||||||||||||
Обновлять значение во время ввода (Update Value While Typing) | Выбор функции приводит к обновлению данных во время набора текста. Если эта строка не выбрана, то вводимый текст передается от элемента управления строками к его терминалу на блок-диаграмме только после щелчка мышью за пределами окна строки или по кнопке . |
Наряду с терминалами элементов управления и отображения данных выделяют терминалы узлов, которые представляют поля ввода/вывода данных. Количество и тип терминалов узлов на панели блок-диаграммы можно определить по соединительной панели (connector panes) узла путем выбора строки контекстного меню Видимые элементыÞТерминалы (Visible ItemsÞTerminals). Так, например, схема терминалов функции Сложить (Add ) выглядит следующим образом . Выходы на соединительной панели функции выделяются более толстым контуром.
При подводе инструмента соединения к терминалу узла на всех его выводах появляются короткие отрезки проводов (stubs), а выбранная область терминала начинает мерцать. . При этом цвет и толщина отрезков проводов характеризует тип передаваемых через них данных.
Каждое соединение должно быть согласовано по типу выводов и по типу передаваемых и принимаемых данных. Согласование по типу выводов включает следующие аспекты:
· к линии передачи данных должен быть подключен только один источник;
· к одному источнику может быть подключено неограниченное число приемников данных;
· не допускается соединение одних приемников.
Нарушение правил соединения проявляется в сохранении пунктирной соединительной линии после окончания соединения и в разрыве кнопки запуска программы. Такое состояние в ряде случаев может быть легко устранено, например путем соединения одних приемников с источником данных. В других случаях может потребоваться анализ типов соединяемых выводов элементов.
Перемещение и удаление проводов производится так же как и любого другого объекта блок-диаграммы. При этом одиночный щелчок инструментом перемещения выделяет прямолинейный участок провода (сегмент), двойной щелчок выделяет весь провод с изгибами до первого узла (ветвь), тройной щелчок выделяет все провода разветвленного соединения. Удаление всех поврежденных (broken) проводов осуществляется с помощью выбора опции Удалить поврежденные проводники (Remove Broken Wires) в меню Правка или с помощью "горячей" клавиши <Ctrl-B>.
При сборке блок-диаграммы ВП помимо типа необходимо знать функциональное назначение всех выводов элементов, входящих в состав прибора. Информацию о назначении выводов можно получить с помощью окна Контекстная справка (Context Help), вызываемого с помощью опции СправкаÞПоказать контекстную справку (HelpÞShow Context Help), или с помощью инструмента соединения, подводимого к выводам. Назначение выводов подприбора можно определить, открыв его лицевую панель с помощью двойного щелчка на иконке подприбора или с помощью строки Открыть лицевую панель (Open Front Panel) контекстного меню.
Состав и схему расположения терминалов самого ВП на соединительной панели можно просмотреть, как было отмечено в разделе 1.1, с помощью выбора строки Показать соединительную панель (Show Connector) контекстного меню иконки ВП, находящейся в правом верхнем углу лицевой панели. Если после этого инструментом соединения последовательно выделять щелчком терминалы на соединительной панели, то на лицевой панели при этом пунктирной линией будут выделяться связанные с данным терминалом элементы. В режиме просмотра соединительной панели с помощью контекстного меню данной панели Этот вывод является.. (This Connection Is..)можно определить тип вывода – Обязательный (Required), Рекомендуемый (Recommended) или Необязательный (Optional). Подписи входов указанных типов отличаются форматированием текста в окне контекстной справки. Далее в справочнике при описании функций подписи к обязательным входам на рисунках функций выделены полужирным шрифтом, а текст пояснений к рекомендуемым и необязательным входам отличается уменьшенным размером шрифта.
Можно произвести и обратное действие – связать элемент лицевой панели с выводом терминала соединительной панели. Потребность в таких действиях возникает при формировании нового подприбора, когда необходимо определить его входы и выходы, т.е. связать элементы управления и индикаторы с входными и выходными терминалами соединительной панели.
Сам новый подприбор может быть сформирован из фрагмента блок-диаграммы разработанного ВП путем очерчивания инструментом перемещения прямоугольника, охватывающего элементы, которые должны быть включены в состав подприбора, и выбора строки меню ПравкаÞСоздать подприбор (EditÞCreate SubVI). Если после формирования подприбора сохранить его в папке библиотеки пользователя (\User.lib), то при новом запуске LabVIEW данная подпрограмма будет доступна в подпалитре Библиотеки пользователя (User Libraries) палитры функций панели блок-диаграммы.
Сохранение ВП производится с помощью одной из опций меню Файл. Опция Сохранить (Save) позволяет сохранить измененный ВП с сохранением имени и местоположения на диске или же сохранить новый ВП с указанием этих параметров в диалоговом окне. Опция Сохранить как (Save as) позволяет изменить имя ВП или его местоположение при сохранении, при этом исходная версия ВП на диске не изменяется. При выборе опции Сохранить с опциями (Save with Options) выводится диалоговое окно, в котором пользователь может выбрать ряд вариантов сохранения ВП.
Если сохранение ВП сопровождается вызовом диалогового окна сохранения, то пользователь может выбрать вариант сохранения в виде индивидуального файла или в составе библиотеки ВП.
Для отладки ВП в LabVIEW предусмотрены такие средства, как информационное окно Список ошибок (Error List), выводимое при нажатии неисправной кнопки Запуск (Run), кнопки пошагового выполнения, подсветка при выполнении программы (Execution Highlighting), инструменты Пробник (probe) и Точки останова (breakpoints).
На рисунке 1.6 показан вид блок-диаграммы ВП Использование вставляемых пробников (Using Supplied Probes) из набора примеров NI Example Finder LabVIEW. Установка пробников производится с помощью выбора опций Probe или Custom Probe контекстного меню провода. Ниже даны пояснения к пробникам различного типа.
Рис. 1.6 Вид блок-диаграммы ВП Использование вставляемых пробников (Using Supplied Probes)
1. Пробник ссылки ВП (VI Refnum Probe) Показывает путь ВП, путь владельца и числовую ссылку.
2. Пробник числа в форме I32 с условием (Conditional Signed32 Probe) Показывает числовые скалярные данные и обеспечивает точку останова по условию.
3. Пробник ссылки очереди строк (String Queue Refnum Probe) Показывает различную информацию об очереди, такую как имя и вставленные элементы.
4. Пробник картины (Picture Probe) Показывает картину.
5. Пробник масcива чисел в форме DBL с условием (Conditional Double Array Probe) Показывает числовой массив данных и обеспечивает точку останова по условию.
6. Пробник строки с условием (Conditional String Probe) Показывает строковые данные и обеспечивает точку останова по условию.
7. Пробник аналоговой осциллограммы (Analog Waveform Probe) Показывает график осциллограммы, набор данных и атрибуты осциллограммы.
8. Пробник ошибки с условием (Conditional Error Probe) Показывает статус ошибки, код и описание. Обеспечивает точку останова по условию.
9. Пробник данных динамического типа (Dynamic Data Type Probe) Показывает график динамических данных, набор данных и атрибуты.
10. Пробник логических данных с условием (Conditional Boolean Probe) Показывает логические данные и обеспечивает точку останова по условию.