Предоставляя способ настройки отношений между драйверами и ссылками ввода-вывода, IVI® строение значительно повышает взаимозаменяемость прибора.
Предположим, что ваш код использует только указанный драйвер для связи с одним типом прибора в фиксированном месте. Если вы измените модель прибора, расположение прибора или драйвер, вам придется изменить код, чтобы учесть это изменение.
Хранилище строений IVI предлагает возможность размещения различных моделей приборов, драйверов или портов, не меняя свой код. Эта взаимозаменяемость особенно полезна, когда вы используете код, который не может быть легко изменен.
Компоненты хранилища строения IVI идентифицируют:
Расположение приборов для связи с
Программные модули, используемые для управления инструментами
Связи программных модулей, используемых с инструментами в конкретных местах
Компонент | Описание |
---|---|
Программный модуль | Программный модуль является специфичным для прибора и содержит команды и функции, необходимые для связи с прибором. Поставщик приборов обычно предоставляет программные модули, которые вы не можете редактировать из MATLAB® Командное окно. |
Аппаратные средства | Актив оборудования идентифицирует коммуникационный порт, соединенный с прибором. Сконфигурируйте этот компонент с |
Сеанс драйвера | Сеанс драйвера устанавливает связь между программным модулем и оборудованием активом. Обычно сеанс драйвера для каждого прибора выполняется в каждом из возможных местоположений. Идентичные инструменты, подключенные в других местах, могут использовать один и тот же программный модуль, но, поскольку они имеют различные аппаратные средства, они требуют различных сеансов драйвера. Различные типы инструментов, подключенных к одному и тому же местоположению (в разное время), используют один и тот же аппаратный актив, но могут иметь различные программные модули. Поэтому они требуют различных сеансов драйвера. |
Логическое имя | Логическое имя является компонентом хранилища строений, который обеспечивает доступ к сеансу драйвера. Логическое имя можно интерпретировать как конфигурируемый указатель на сеанс драйвера. В типовой настройке код взаимодействует с инструментом через логическое имя. Если код должен взаимодействовать с другим инструментом (для примера, аналогичные возможности в другом месте), обновляйте только логическое имя в хранилище строения IVI, чтобы указать на новый сеанс драйвера. Вам не нужно переписывать код, потому что он использует то же логическое имя. |
Можно использовать Инструмент Test & Measurement для проверки или настройки хранилища строения IVI. Откройте инструмент, набрав:
tmtool
Разверните узел Instrument Drivers и нажатие кнопки 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, вам не нужно изменять код, чтобы изменить доступ к одной возможности на другую.