
MTK_i_MSS15-01 / Методы моделир.и оптимиз / LabView.Методички / Руководство пользователя
.pdf
Например, Вы хотите выполнять одну и ту же математическую операцию над числом однократной точности с плавающей точкой, над массивом чисел или над осциллограммой. Вы можете создать три отдельных ВП – Compute Number, Compute Array и Compute Waveform. Когда потребуется выполнить операцию, Вы помещаете на блок-диаграмму один из этих ВП, в зависимости от типа данных, который используется на входе.
Вместо того, чтобы вручную размещать версию ВП на блокдиаграмму, Вы можете создать и использовать единственный полиморфный ВП. Полиморфный ВП Compute включает трех представителей ВП, как показано на Figure 5-3.
Figure 5-3. Пример полиморфного ВП
ВП Compute статически подключает правильного представителя ВП, основываясь на типе данных, которые подсоединены к ВПП Compute на блок-диаграмме, как показано на Figure 5-4.
101

Figure 5-4. Полиморфный ВП, вызывающий ВПП
Полиморфные ВП отличаются от обычных ВП тем, что они не имеют блок-диаграммы или лицевой панели.
При создании полиморфных ВП обратите внимание на следующие моменты:
•Все ВП, которые входят в полиморфный ВП, должны иметь одинаковую конфигурацию (pattern) соединительных панелей, поскольку все они должны совпадать с соединительной панелью итогового полиморфного ВП.
•Входы и выходы на соединительной панели каждого представителя ВП должны соответствовать входам и выходам на соединительной панели полиморфного ВП.
•ВП, которые Вы используете для построения полиморфного ВП, не должны состоять из одних и тех же ВПП и функций.
•Каждая из лицевых панелей таких ВП не обязана иметь одинаковое число объектов. Однако каждая лицевая панель должна иметь, по крайней мере, столько же элементов управления и индикаторов, сколько образуют соединительную панель полиморфного ВП.
•Вы можете создать иконку для полиморфного ВП.
102

•Нельзя использовать полиморфные ВП в составе других полиморфных ВП.
Когда Вы генерируете полную документацию для ВП, содержащего полиморфные ВПП, то и полиморфные ВП и их представители появляются в разделе документации «перечень ВПП» («list of subVI»).
Полиморфные функции
Функции являются полиморфными в различной степени – ни один, некоторые или все их входы могут быть полиморфными. Некоторые входы функций допускают числовые или булевы значения. Некоторые допускают числа или строки. Некоторые допускают не только скалярные числа, но также и массивы чисел, кластеры чисел, массивы кластеров чисел и т.д. Некоторые допускают только одномерные массивы, хотя элементы массивов могут быть любого типа. Некоторые функции допускают все типы данных, включая комплексные числа. Более подробно о полиморфных функциях см.
в Приложении B Полиморфные функции.
Экспресс ВП
Используйте экспресс ВП (Express VI) для реализации типовых измерительных задач. Экспресс ВП – это функциональный узел, который требует минимума соединений, поскольку он конфигурируется посредством диалоговых окон. Входы и выходы экспресс ВП зависят от того, как Вы его настроите. На блок-диаграмме экспресс ВП имеет вид растягиваемого узла с иконкой, окруженной голубым фоном.
Более подробно о растягиваемых узлах см. в разделе Отображение ВПП и экспресс ВП в виде иконок либо в виде расширяемых узлов в Главе 7 Создание ВП и ВПП. Более подробно об экспресс ВП см. в
руководстве Getting Started with LabVIEW.
Создание ВПП из экспресс ВП
Можно создать ВПП из сконфигурированного экспресс ВП. Например, Вы можете захотеть сохранить сконфигурированный экс-
пресс ВП Write LabVIEW Measurement File (записать в измеритель-
ный файл) для использования его в качестве ВПП в других ВП, которые Вы создаете, вместо того, чтобы каждый раз перенастраивать такой экспресс ВП. Чтобы создать ВПП из экспресс ВП, щелкните
103

этот экспресс ВП и выберите Open Front Panel из контекстного меню.
В процессе создания ВПП из экспресс ВП появляется лицевая панель ВПП. Затем можно редактировать ВП и потом сохранить его. Чтобы сохранились значения, введенные в элементы управления,
выберите Operate»Make Current Value Default или щелкните пра-
вой кнопкой каждый элемент управления и выберите из контекстного меню Make Current Value Default. Новый ВПП появится как растягиваемый узел, замещающий экспресс ВП на блок-диаграмме.
После того, как Вы создадите ВП из экспресс ВП, его уже нельзя будет конвертировать обратно в экспресс ВП.
Динамический тип данных
Динамический тип данных отображается в виде терминала темносинего цвета, показанного слева. Многие экспресс ВП принимают и/или выдают данные динамического типа. Вы можете подсоединять данные динамического типа к любому индикатору или входу, который принимает числовые, булевы данные или данные типа осциллограммы. Подсоединяйте данные динамического типа к индикатору, который может наилучшим образом отобразить такие данные. Таким индикатором может быть график, диаграмма или числовой индикатор.
Динамический тип данных предназначен для использования в экспресс ВП. Большинство остальных ВП и функций, поставляемых вместе с LabVIEW, не допускают такой тип данных. Чтобы использовать встроенные ВП и функции для анализа и обработки данных динамического типа, такие данные необходимо конвертировать. Более подробно о конвертировании из динамического типа см. в
разделе Конвертирование из динамических данных в настоящей Главе.
В дополнение к данным, связанным с самим сигналом, динамический тип данных включает атрибуты, которые представляют такую информацию о сигнале, как имя сигнала, или дата и время его ввода. Атрибуты определяют, как сигнал будет отображаться на графике или диаграмме. Например, если Вы используете экспресс ВП DAQ Assistant (помощник ввода/вывода) для ввода сигнала и отображения его на графике, то имя сигнала появляется в виде надписи (plot legend) на графике, а шкала X подстраивается так, чтобы
104
отобразить временную информацию, связанную с сигналом, в относительном или абсолютном времени, основываясь на атрибутах сигнала. Если же Вы используете экспресс ВП Spectral Measurements (спектральные измерения) для анализа сигнала с помощью алгоритма БПФ и отображения результирующих величин на графике, то шкала X автоматически подстраивается для отображения графика сигнала в частотной области, основываясь на атрибутах сигнала. Щелкните правой кнопкой выходной терминал динамического типа ВП или функции на блок-диаграмме и выберите Create»Graph Indicator для отображения этих данных на графике или выберите Create»Numeric Indicator для отображения данных в числовой форме.
В Табл. 5-2 приведен перечень индикаторов, которые принимают динамический тип данных и описано, как индикаторы обрабатывают такие данные.
Табл. 5-2. Индикаторы динамического типа данных
Данные |
|
Индикатор |
|
Результат |
|
в динамическом |
|
|
|||
типе данных |
|
|
|
|
|
|
|
|
|
||
Одно числовое |
зна- |
График |
Рисует график одной величины, |
||
чение |
|
|
включая временную метку и атрибу- |
||
|
|
|
ты |
|
|
Один канал |
|
|
Рисует график всей осциллограммы, |
||
|
|
|
включая временную метку и атрибу- |
||
|
|
|
ты |
|
|
Много каналов |
|
|
Рисует график всех данных, включая |
||
|
|
|
временную метку и атрибуты |
||
Одно числовое |
зна- |
Числовой |
Отображает одно числовое значение. |
||
чение |
|
индикатор |
|
|
|
Один канал |
|
|
Отображает |
последнее |
значение |
|
|
|
данных в этом канале |
|
|
Много каналов |
|
|
Отображает |
последнее |
значение |
|
|
|
данных первого канала |
|
|
Одно числовое зна- |
Булев инди- |
Отображает значение TRUE, если |
|||
чение |
|
катор |
значение числовой величины больше |
||
|
|
|
или равно 0.5 |
|
|
Один канал |
|
|
Отображает |
значение TRUE, если |
|
|
|
|
последнее значение данных в канале |
||
|
|
|
больше или равно 0.5 |
|
105
Много каналов |
|
Отображает значение TRUE, |
если |
|
|
последнее значение данных в |
пер- |
|
|
вом канале больше или равно 0.5 |
Конвертирование из динамических данных
При совместном использовании с другими ВП и функцими, используйте экспресс ВП Convert from Dynamic Data для конвертирования данных динамического типа к данным числового типа, к данным типа осциллограмма (waveform) и к данным типа массив (array). Когда Вы помещаете экспресс ВП Convert from Dynamic Data на блок-диаграмму, появляется диалоговое окно Configure Convert from Dynamic Data. В нем отображаются опции, которые позволяют Вам указать ваши пожелания по форматированию данных, которые возвращает экспресс ВП Convert from Dynamic Data.
Например, если Вы вводите от устройства ввода синусоидальный сигнал, выберите опцию Single Waveform в диалоговом окне Configure Convert from Dynamic Data. Соедините выход Waveform
экспресс ВП Convert from Dynamic Data с функцией или ВП, которые принимают тип данных waveform. Если Вы вводите набор значений температуры от различных каналов с помощью DAQ-
устройства, выберите опции Most recent values from each channel и Floating point numbers (double). Затем соедините выход Array
экспресс ВП Convert from Dynamic Data с функцией или ВП, которые принимают числовой массив в качестве входа.
Когда Вы соединяете данные динамического типа с массивом индикаторов, LabVIEW автоматически помещает на блок-диаграмму экспресс ВП Convert from Dynamic Data. Сделайте двойной щелчок по экспресс ВП Convert from Dynamic Data, чтобы открыть диало-
говое окно Configure Convert from Dynamic Data и установить желаемый способ отображения данных в массиве.
Конвертирование в динамические данные
При использовании различных экспресс ВП нужно переходит к динамическому типу данных. Для конвертирования числовых и булевых данных, а также данных типа осциллограмма или массив к динамическому типу данных используйте экспресс ВП Convert to Dynamic Data. Когда Вы помещаете экспресс ВП Convert to Dynamic Data на блок-диаграмму, появляется диалоговое окно Configure
106

Convert to Dynamic Data. Используйте это диалоговое окно для выбора способа конвертирования к динамическому типу данных.
Например, если Вы вводите синусоидальный сигнал, используя ВП
Analog Input Traditional NI-DAQ, и хотите использовать для анализа сигнала экспресс ВП Signal Analysis, выберите на диалоговом окне
Configure Convert to Dynamic Data опцию Single Waveform.Затем соедините выход Dynamic Data Type с экспресс ВП, который принимает данные динамического типа на входе.
Обработка вариантных данных
Вариантные данные (Variant data) не соответствуют никакому специфическому типу данных и могут содержать атрибуты. LabVIEW представляет вариантные данные с помощью различных типов данных. Вариантный тип данных отличается от других типов данных, поскольку он хранит имя элемента управления или индикатора, информацию о типе данных, из которого он конвертирован, и собственно данные. Это позволяет LabVIEW корректно конвертировать данные вариантного типа к любому желаемому типу данных. Например, если Вы конвертируете строковые данные к данным вариантного типа, то вариантный тип данных будет содержать текст и показывает, что этот текст является строкой.
Для обработки вариантных данных используйте вариантные функции (Variant functions). Вы можете конвертировать любые типы данных LabVIEW к вариантному типу, чтобы использовать вариантные данные в других ВП и функциях. Некоторые полиморфные функции возвращают вариантный тип данных.
Используйте вариантный тип данных, когда важно манипулировать данными независимо от их типа данных, как, например, при передаче или хранении данных; чтении и/или записи в неизвестные устройства; хранении данных в стеке, в очереди или в накопителе уведомлений (notifier) или при выполнении операций над множеством разнородных элементов управления.
Вы также можете использовать функцию Flatten to String (преобразование к выровненной строке) для конвертирования любого типа данных к строковому типу данных, чтобы представлять данные независимо от их типа. Преобразование данных к выровненным (flatten) строкам является обычным при использовании для передачи
107

данных протокола TCP/IP, поскольку этот протокол воспринимает только строки.
Однако, использование выровненных данных имеет ограничения, поскольку LabVIEW не может принудительно преобразовать выровненные данные, когда исходный тип данных не совпадает с типом, к которому Вы хотите конвертировать. Кроме того, попытка обратного конвертирования выровненного целого к числу расширенной точности с плавающей точкой приведет к ошибке. Более подробно о выравнивании данных и обратного их конвертирования см. в разделе Flatten Data руководства (Application Note) LabVIEW Data Storage.
Другим преимуществом использования вариантного типа данных является его способность сохранять атрибуты данных. Атрибуты – это дополнительная информация о данных, которую вариантный тип данных сохраняет. Например, если Вам нужно знать время, когда порция данных была создана, Вы можете сохранить такие данные в виде вариантных данных и добавить атрибут, называемый Time, чтобы сохранить время в виде строки. Сами атрибутивные данные могут иметь любой тип. Используйте вариантные атрибуты, когда Вы хотите сортировать данные по отдельным атрибутам, идентифицировать устройство или приложение, которое генерирует данные, или фильтровать данные по отдельным атрибутам.
Числовые единицы и строгая проверка типов
Вы можете ассоциировать единицы измерения физических величин, такие как метр или километры в секунду, с любым числовым элементов управления или индикатором, которые имеют представление с плавающей точкой.
Единицы для элемента управления появляются в отдельной собственной метке, называемой меткой единиц (unit label). Чтобы отобразить метку единиц, щелкните правой кнопкой этот элемент управления и выберите из контекстного меню Visible Items»Unit Label. Щелкните правой кнопкой метку единиц и выберите из контекстного меню Build Unit String, чтобы ее редактировать.
Когда LabVIEW отображает метку единиц, Вы можете ввести единицу, используя стандартные аббревиатуры, такие как m для метра, ft для фута, s для секунд и т.п.
108

"Примечание. Нельзя использовать единицы в формульном узле (Formula Node).
Единицы и строгая проверка типов
Если Вы ассоциируете единицы с объектом, то Вы можете соединять только объекты, имеющие совместимые единицы. LabVIEW использует строгую проверку типов (strict type checking), чтобы убедиться, что единицы совместимы. Если Вы соедините два объекта с несовместимыми единицами, LabVIEW вернет ошибку. Например, LabVIEW возвращает ошибку, если Вы соедините объект с типом единиц mile (миля) с объектом с типом единиц liter (литр), поскольку миля это единица расстояния, а литр – единица объема.
На Figure 5-5 показано соединение объектов с несовместимыми единицами. В этом случае LabVIEW автоматически масштабирует индикатор distance для отображения километров вместо метров, поскольку единицей для данного индикатора является километр.
Figure 5-5. Соединение объектов с совместимыми единицами
На Figure 5-6 имеет место ошибка, поскольку индикатор distance имеет в качестве типа единиц секунды. Для исправления этой ошибки нужно сменить тип единиц секунды на любую единицу длины, например километры, как показано на Figure 5-5.
109

Figure 5-6. Соединение объектов с несовместимыми единицами дает поврежденные проводники
Некоторые ВП и функции неоднозначны по отношению к единицам. Нельзя использовать такие ВП и функции с другими терминалами, которые имеют единицы. Например, функция Increment (приращение) неоднозначна по отношению к единицам. Если Вы используете единицы длины, функция Increment не может определить, что Вы хотите добавить один метр, один километр или один фут. Ввиду такой неоднозначности нельзя использовать функцию Increment и другие функции приращения или уменьшения (decrement) значений с данными, которые имеют ассоциированные единицы.
Чтобы исключить неоднозначность в этом примере, используйте числовую константу с походящей единицей и функцию Add (сложить) для создания своей собственной функции приращения на одну единицу, как показано на Figure 5-7.
Figure 5-7. Создание собственной функции приращения на одну единицу
110