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

LabView - учеб. пособия / LabVIEW Руководство пользователя

.pdf
Скачиваний:
920
Добавлен:
03.03.2016
Размер:
4.63 Mб
Скачать

Open Application Reference (открыть ссылку на приложение) – Открывает ссылку на локальное или удаленное приложение, к которому Вы получаете доступ через сервер, или для доступа к удаленной копии LabVIEW.

Open VI Reference (открыть ссылку на ВП) – Открывает ссылку на ВП на локальном или на удаленном компьютере или на динамически загруженный с диска ВП.

Property Node (узел свойств) – Получает и устанавливает свойства ВП, объекта или приложения. Более подробно о свойствах см. в разделе Узлы свойств в настоящей Главе.

Invoke Node (узел вызовов) – Вызывает методы из ВП, объекта или приложения. Более подробно о методах см. в разделе Узлы вызовов в настоящей Главе.

Call By Reference Node (вызов через ссылочный узел)

Вызывает динамически загруженный ВП.

 

Close Reference (закрыть ссылку) – закрывает все открытые ссылки на ВП, объект или приложение, к которым был доступ через сервер ВП.

Ссылки на приложение и на ВП

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

Ссылочный номер приложения (application refnum) ссылается на локальную или удаленную копию LabVIEW. Вы можете использовать свойства и методы приложения, чтобы изменить предустановки и вернуть информацию о системе. Ссылочный номер ВП (VI refnum) ссылается на ВП в некоторой копии LabVIEW.

С помощью ссылочного номера на копию LabVIEW (refnum to an instance of LabVIEW) Вы можете получать информацию об окружении LabVIEW, к примеру, платформу, на которой запущена LabVIEW, номер версии или список всех ВП, загруженных в данный момент в память. Вы можете также установить такие данные, как текущее имя пользователя или список ВП, экспортируемых в другие копии LabVIEW.

291

Когда Вы создаете ссылочный номер на ВП, LabVIEW загружает ВП в память. Этот ВП остается в памяти до тех пор, пока Вы не закроете этот ссылочный номер. Если имеются несколько ссылочных номеров на один и тот же ВП, открытых одновременно, то этот ВП останется в памяти до тех пор, пока Вы не закроете все ссылочные номера на этот ВП. С помощью ссылочного номера на ВП Вы можете обновлять все свойства ВП, доступные через диалоговое окно File»VI Properties, такие, например, как положение окна лицевой панели. Вы также можете программно распечатать документацию ВП, сохранить ВП в другом месте и произвести экспорт и импорт его символьных строк для перевода на другой язык.

Манипуляция установками приложения и ВП

Используйте сервер ВП, чтобы получать и переключать установки приложения и ВП посредством узла свойств (Property Node) и узла вызовов (Invoke Node). Многие установки приложений и ВП Вы можете получать и переключать только через узлы свойств и вызовов.

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

(Application Class) и ВП (VI Class) можно найти в директории examples\viserver.

Узлы свойств

Используйте узел свойств (Property Node) для получения и изменения свойств приложения или ВП. Чтобы выбрать нужное свойство для данного узла, воспользуйтесь инструментом Operating и щелкните им терминал свойств, либо щелкните правой кнопкой белую область узла и выберите из контекстного меню пункт Properties.

Вы можете читать или записывать многие свойства, используя один узел, однако некоторые свойства не являются записываемыми, их можно только читать. Используйте инструмент Positioning, чтобы растянуть узел свойств и добавить новые терминалы. Маленькая стрелка справа от названия свойства указывает, что это свойство читается (выходной терминал). Аналогичная стрелка слева от названия свойства указывает, что это свойство записывается (входной терминал). Щелкая правой кнопкой терминал и выбирая из контек-

стного меню Change to Read или Change to Write, можно изме-

нить состояние этого свойства.

292

Узел свойств выполняется сверху вниз. Узел свойств не выполняется, если перед его исполнением возникает ошибка, таким образом, всегда осуществляется проверка на возможные ошибки. Если ошибка возникает в некотором свойстве, LabVIEW игнорирует оставшиеся свойства и возвращает ошибку. При этом кластер error out будет содержать информацию о том свойстве, которое вызвало ошибку.

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

Неявно связанные узлы свойств

Когда Вы создаете узел свойств объекта лицевой панели, щелкая правой кнопкой по объекту и выбирая из контекстного меню пункт Create»Property Node, LabVIEW создает на блок-диаграмме узел свойств, неявно связанный с этим объектом лицевой панели. Поскольку такие узлы свойств неявно связаны с объектом, для которого они были созданы, они не имеют входного терминала для ссылочного номера, и нет необходимости соединять узел свойств с терминалом ссылки на объект лицевой панели или на элемент управления. Более подробно о ссылках на элементы управления см. в разделе Управление объектами лицевой панели в настоящей Главе.

Узлы вызовов

Используйте узлы вызовов (Invoke Nodes) для выполнения действий, или методов, приложения или ВП. В отличие от узла свойств, каждый отдельный узел вызовов выполняет только один метод приложения или ВП. Выберите метод с помощью инструмента Operating, щелкая им терминал метода или щелкая правой кнопкой по белой области узла и выбирая из контекстного меню пункт Methods.

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

293

стрелка). В противном случае терминал метода не имеет возвращаемого значения.

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

Манипуляция свойствами и методами класса Приложение

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

Figure 17-1. Отображение списка всех ВП, находящихся в памяти локального компьютера

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

Чтобы найти ВП в памяти удаленного компьютера, подсоедините строковый элемент управления к входу machine name функции

Open Application Reference, как это показано на Figure 17-2, и вве-

дите IP адрес или имя домена. Вы также должны выбрать свойство

Exported VIs in Memory, поскольку свойство All VIs in Memory,

используемое на Figure 17-1, применимо только к локальным копи-

ям LabVIEW.

294

Figure 17-2. Отображение списка всех ВП, находящихся в памяти удаленного компьютера

Манипуляция свойствами и методами класса Виртуальный прибор

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

Если Вы не подсоедините ссылочный номер к входу reference, то узел свойств (Property Node) или узел вызовов (Invoke Node) будет использовать ссылку на ВП, содержащему этот узел свойств или узел вызовов. Если Вы хотите манипулировать свойствами или методами другого ВП, то нужно подсоединить ссылочный номер этого ВП к входу reference.

Figure 17-3. Использование свойств класса ВП и узла вызовов

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

Манипуляция свойствами и методами класса Приложение и класса ВП

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

295

Figure 17-4 иллюстрирует, как определить список ВП в памяти локального компьютера и отобразить на лицевой панели путь к каждому ВП. Чтобы найти все ВП, находящиеся в памяти, Вы должны получить доступ к свойству класса Приложение. Чтобы определить путь к каждому из этих ВП, Вы должны получить доступ к свойству класса ВП. Количество ВП, находящихся в памяти задает число итераций цикла For Loop. Поместите функции Open VI Reference и Close Reference внутрь цикла For Loop, поскольку вам нужен ссылочный номер на каждый ВП, находящийся в памяти. Не закрывайте ссылочный номер на приложение, пока цикл For Loop не завершит получение путей ко всем ВП.

Figure 17-4. Использование свойств и методов класса Приложение и класса ВП

Динамическая загрузка и вызов ВП

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

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

Узлы вызова по ссылке и строго типизированные ссылочные номера ВП

Используйте узел вызова по ссылке (Call By Reference Node) для динамического вызова ВП.

296

Узел вызова по ссылке требует строго типизированный ссылочный номер ВП (strictly typed VI refnum). Строго типизированный ссылочный номер ВП идентифицирует соединительную панель ВП, который Вы вызываете. Он не создает постоянной ассоциации с ВП и не содержит другой информации о ВП, такой как его имя или расположение. Вы можете подсоединять входы и выходы узла вызова по ссылке точно так же, как делаете это для любого другого ВП.

На Figure 17-5 показано, как используется узел вызова по ссылке для динамического вызова ВП Frequency Response. Узел вызова по ссылке требует использования функций Open VI Reference и Close Reference, подобно тому, как эти функции используются для узла свойств и для узла вызовов.

Figure 17-5. Использование узла вызова по ссылке

ВП, который Вы специфицируете с помощью строго типизированного ссылочного номера, передает только информацию о соединительной панели. Это значит, что постоянная ассоциация (связь) между этой ссылкой и ВП не создается. Особенно старайтесь избегать неверного подсоединения к соединительной панели, получаемой с помощью ссылочного номера на выбранный ВП. Выбор конкретного ВП осуществляется с помощью входа vi path функции Open VI Reference.

Редактирование и запуск ВП на удаленных компьютерах

Важным аспектом ссылочных номеров на Приложение и на ВП является их сетевая прозрачность. Это означает, что Вы можете от-

297

крыть ссылочные номера на объекты удаленных компьютеров точно так же, как Вы открывали бы ссылочные номера на такие же объекты вашего компьютера.

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

Управление объектами лицевой панели

Ссылки на элементы управления соответствуют ссылкам на объекты пользовательского интерфейса в текстовых языках программирования. Однако, ссылки на элементы управления не соответствуют указателям (pointers) в текстовых языках программирования.

Используйте элементы управления Control Refnum (ссылочный номер элемента управления) с палитры Refnum или с палитры Classic Refnum, чтобы передать ссылку на объект лицевой панели в другие ВП. Вы можете также щелкнуть правой кнопкой объект лицевой панели и выбрать из контекстного меню пункт Create»Reference. После того, как ссылка на элемент управления будет передана в ВПП, используйте узлы свойств (Property Nodes) и узлы вызовов (Invoke Nodes) для чтения и записи свойств и вызова методов ссылаемого объекта лицевой панели.

Более подробно об использовании событий для программного управления поведением блок-диаграммы посредством объектов ли-

цевой панели см. в разделе Структуры выбора и последовательности в Главе 8 Циклы и структуры.

Строго и слабо типизированные ссылочные номера элементов управления

Строго типизированные ссылочные номера элементов управления (strictly typed control refnums) принимают только ссылочные номера элементов управления точно такого же типа данных. Например, если типом строго типизированного ссылочного номера на элемент управления является 32-битный целочисленный движок (slider), то к терминалу ссылочного номера элемента управления Вы можете

298

подсоединить только 32-битный целочисленный движок. Вы не сможете подключить к этому терминалу 8-битный целочисленный движок, скалярный движок с удвоенной точностью или кластер 32битных целочисленных движков.

Ссылки на элемент управления, которые Вы создаете из элемента управления, по умолчанию являются строго типизированными. На лицевой панели красная звездочка в нижнем левом углу ссылки на элемент управления указывает, что данная ссылка является строго типизированной. На блок-диаграмме на узле свойств или на узле вызовов, подсоединенному к терминалу ссылки на элемент управления, появляется надпись (strict), что указывает на то, что данная ссылка на элемент управления является строго типизированной.

"Примечание. Поскольку механические действия с блокировкой (latch mechanical actions) несовместимы со строго типизированными ссылками на элемент управления, то булевы элементы управления, обладающие механическим действием с блокировкой, вырабатывают слабо типизированные ссылки на элемент управления.

Слабо типизированные ссылки на элементы управления (weakly typed control refnums) являются более гибкими в возможности принимать тип данных. Например, если типом слабо типизированной ссылки на элемент управления является slide (движок), то Вы можете подсоединить к терминалу ссылки на элемент управления 32битный целочисленный движок, движок с однократной точностью или кластер 32-битных целочисленных движков. Если типом слабо типизированной ссылки на элемент управления является control (элемент управления), то Вы можете подсоединить к терминалу ссылки на элемент управления ссылку на элемент управления любого типа.

"Примечание. Когда Вы подсоединяете узел свойств к терминалу слабо типизированной ссылки на элемент управления, свойство Value вырабатывает вариантные данные, которые могут требовать преобразования типа перед их использованием. Свойство History Data для диаграмм (Chart) доступно, только если ссылка на этот индикатор Chart является строго типизированной. Более подробно о вариантных данных см. в раз-

299

разделе Обработка вариантных данных в Главе 5 Построение блокдиаграммы.

300