Предоставляя способ настройки взаимосвязи между драйверами и ссылками ввода-вывода, хранилище конфигурации IVI ® значительно повышает взаимозаменяемость приборов.
Предположим, код использует только указанный драйвер для связи с одним типом прибора в фиксированном месте. При изменении модели прибора, местоположения прибора или драйвера необходимо изменить код, чтобы учесть это изменение.
Хранилище конфигурации IVI предлагает возможность размещения различных моделей приборов, драйверов или портов без необходимости изменения кода. Эта взаимозаменяемость особенно полезна при использовании кода, который невозможно легко изменить.
Компоненты хранилища конфигурации IVI идентифицируют:
Расположение приборов для связи
Программные модули, используемые для управления приборами
Ассоциации программных модулей, используемых с приборами в определенных местах
![]()
Компонент | Описание |
|---|---|
Программный модуль | Программный модуль зависит от прибора и содержит команды и функции, необходимые для связи с прибором. Поставщик приборов обычно предоставляет программные модули, которые нельзя редактировать в окне команд MATLAB ®. |
Аппаратный ресурс | Аппаратный ресурс идентифицирует порт связи, подключенный к прибору. Сконфигурируйте этот компонент с помощью |
Сеанс драйвера | Сеанс драйвера устанавливает связь между программным модулем и аппаратным ресурсом. Как правило, у вас есть сеанс драйвера для каждого инструмента в каждом из возможных местоположений. Идентичные приборы, подключенные в разных местоположениях, могут использовать один и тот же программный модуль, но, поскольку они имеют разные аппаратные средства, они требуют различных сеансов драйвера. Различные типы приборов, подключенных к одному и тому же местоположению (в разное время), используют один и тот же аппаратный ресурс, но могут иметь различные программные модули. Поэтому они требуют разных сеансов драйвера. |
Логическое имя | Логическое имя - это компонент хранилища конфигурации, предоставляющий доступ к сеансу драйвера. Логическое имя можно интерпретировать как настраиваемый указатель на сеанс драйвера. В обычной настройке код связывается с прибором через логическое имя. Если код должен взаимодействовать с другим инструментом (например, с аналогичной областью в другом местоположении), обновите только логическое имя в хранилище конфигурации IVI, чтобы указать на новый сеанс драйвера. Нет необходимости переписывать код, поскольку он использует одно и то же логическое имя. |
Для проверки или настройки хранилища конфигурации IVI можно использовать инструмент тестирования и измерения. Откройте инструмент, введя:
tmtool
Разверните узел Драйверы приборов и щелкните IVI.
![]()
Отображается вкладка для каждого типа элемента хранилища конфигурации IVI. На этом рисунке показаны доступные сеансы драйвера в текущем хранилище конфигурации IVI. Для выбранного сеанса драйвера можно использовать любой доступный программный модуль или аппаратный ресурс. На этом рисунке показана конфигурация сеанса драйвера TekScope.DriverSession, который использует программный модуль TekScope.Software и аппаратный ресурс TekScope.Hardware.
Кроме того, для проверки и настройки хранилища конфигурации IVI можно использовать функции командной строки. Для просмотра доступных элементов хранилища конфигурации IVI используйте instrhwinfo для идентификации существующих логических имен.
instrhwinfo('ivi')
ans =
LogicalNames: {'MainScope', 'FuncGen'}
ProgramIDs: {'TekScope.TekScope','Agilent33250'}
Modules: {'ag3325b', 'hpe363xa'}
ConfigurationServerVersion: '1.6.0.10124'
MasterConfigurationStore: 'C:\Program Files\IVI\Data\
IviConfigurationStore.xml'
IVIRootPath: 'C:\Program Files\IVI\'Использовать instrhwinfo с логическим именем в качестве аргумента для просмотра подробных данных конфигурации.
instrhwinfo('ivi','MainScope')
ans =
DriverSession: 'TekScope.DriverSession'
HardwareAsset: 'TekScope.Hardware'
SoftwareModule: 'TekScope.Software'
IOResourceDescriptor: 'GPIB0::13::INSTR'
SupportedInstrumentModels: 'TekScope 5000, 6000 and 7000 series'
ModuleDescription: 'TekScope software module desc'
ModuleLocation: ''Для изменения хранилища конфигурации можно использовать командную строку. Вот пример его программного изменения.
% Construct a configStore.
configStore = iviconfigurationstore;
% Set up the hardware asset with name myScopeHWAsset, and resource descriptor
% TCPIP0::a-m6104a-004598::INSTR.
add(configStore, 'HardwareAsset', 'myScopeHWAsset', 'TCPIP0::a-m6104a-004598::INSTR');
% Add a driver session with name myScopeSession, and use the asset created in the step above.
% Ag546XX is the Agilent driver.
add(configStore, 'DriverSession', 'myScopeSession', 'Ag546XX', 'myScopeHWAsset');
% Add a logical name to the configStore, with name myScope and driver session
% named myScopeSession.
add(configStore, 'LogicalName', 'myScope', 'myScopeSession');
% Save the changes to the IVI configuration store data file.
commit(configStore);
% You can verify that the steps you just performed worked.
logicalNameInfo = instrhwinfo('ivi', 'myscope') Ниже приведен пример конфигурации, используемой data_analyzer.m.
![]()
Создание и настройка элементов в хранилище конфигурации IVI с использованием методов объекта хранилища конфигурации IVI add, commit, remove, и update. Для получения дополнительной информации см. справочные страницы для этих методов.
На следующем рисунке показан пример хранилища конфигурации IVI с несколькими заменяемыми компонентами. Код 1 требует доступа к осциллографам в двух разных местах (аппаратный ресурс X и аппаратные ресурсы Y). Области аналогичны, поэтому они используют один и тот же программный модуль S. Здесь области находятся в разных местоположениях (или в одной и той же области, связанной с двумя различными местоположениями в разное время). Поэтому для каждой конфигурации требуется собственный сеанс драйвера, в данном примере сеанс драйвера A и сеанс драйвера B.
![]()
Запись кода 1 для доступа к логическому имени 1. Имя настраивается в хранилище конфигурации IVI для доступа к сеансу драйвера A или сеанс драйвера B (но не оба одновременно). Поскольку вы выбираете сеанс драйвера в хранилище конфигурации IVI, не нужно изменять код, чтобы изменить доступ из одной области в другую.