GPIB является стандартизированным интерфейсом, который позволяет подключать и управлять несколькими устройствами от различных производителей. GPIB также упоминается как его первоначальное имя HP-IB, или как IEEE® обозначение IEEE-488.
Часть функциональности GPIB требуется для всех устройств GPIB, в то время как другая функциональность GPIB опциональна. Полный список возможностей GPIB и набора команд см. в документации устройства.
Поддержка интерфейса GPIB зависит от поддержки сторонними производителями драйвера оборудования на поддерживаемых платформах.
Интерфейс GPIB поддерживается на следующих платформах:
Microsoft® Windows® 64-разрядная версия
Оборудование и драйвер КИПиА
Поддержка интерфейса GPIB требует Keysight™ (ранее Agilent®), Electronics™ ICS, Computing™ измерений (MCC), технология ADLINK или National Instruments ™® адаптерная плата и драйвер.
Шина и разъем
Вам нужны шина и разъем для связи с инструментами GPIB. Шина GPIB представляет собой кабель с двумя 24-контактными разъемами, которые позволяют подключать несколько устройств друг к другу. Для получения дополнительной информации см. раздел Шина и соединитель.
Устройства GPIB
Каждое устройство GPIB должно быть некоторой комбинацией Talker, прослушиватель или контроллер. Контроллер обычно является платой, которую вы устанавливаете на свой компьютер. Болтовни и прослушиватели обычно являются инструментами, такими как осциллографы, генераторы функций, мультиметры и так далее. Большинство современных инструментов - это и Talkers, и прослушиватели. Каждый контроллер идентифицируется уникальным индексным номером платы. Каждый Talker/Listener идентифицируется по уникальному первичному адресу в диапазоне от 0 до 30 и по необязательному вторичному адресу, который может быть 0 или может варьироваться от 96 до 126. для получения дополнительной информации см. раздел «Устройства GPIB».
Данные GPIB
Существует два типа данных, которые могут быть переданы по GPIB: данные прибора и сообщения интерфейса:
Данные КИПиА - данные КИПиА состоят из специфичных для поставщика команд, которые конфигурируют ваш прибор, возвращают результаты измерений и так далее. Полный список команд, поддерживаемых вашим инструментом, см. в его документации.
Сообщения интерфейса - Сообщения интерфейса определяются стандартом GPIB и состоят из команд, которые очищают шину GPIB, адресные устройства, возвращают результаты самотестирования и так далее.
Передача данных состоит из одного байта (8 биты), переданных параллельно. Скорость передачи данных через интерфейс ограничена 1 мегабайтом в секунду. Однако эта скорость передачи данных обычно не достигается на практике и ограничена самым медленным устройством на шине.
Линии GPIB
GPIB состоит из 24 линий, которые разделяются всеми инструментами, подключенными к шине. Для сигналов используются 16 линий, а для земли - восемь линий. Сигнальные линии разделены на следующие группы:
Восемь линии данных
Пять линий управления интерфейсами
Три линии рукопожатия
Для получения информации о типах линий и контактах GPIB и назначениях сигналов см. раздел «Линии GPIB».
Убедитесь, что для устройства установлен правильный драйвер прибора. См. документацию устройства и веб-сайт поставщика.
Убедитесь, что ваше устройство поддерживается в Instrument Control Toolbox™. См. «Поддерживается ли мое оборудование?».
Для использования интерфейса GPIB необходимо установить плату и прибор GPIB.
Убедитесь, что ваша плата адаптера GPIB подключена к компьютеру с MATLAB®. Можно проверить, что плата адаптера установлена, используя instrhwinfo
функция со gpib
имя интерфейса. Разрешенные адаптеры включают keysight
(обратите внимание, что agilent
еще работает), isc
, mcc
, adlink
, и ni
.
instrhwinfo('gpib') ans = InstalledAdaptors: {'mcc', 'agilent'} JarFileVersion: 'Version 14.3.0'
В этом примере показаны два установленных поставщика. Имя поставщика относится к производителю платы, а не к производителю приборов. Если установленные поставщики отсутствуют, необходимо установить плату и ее драйвер.
Убедитесь, что Instrument Control Toolbox распознает ваше устройство, используя instrhwinfo
функция со gpib
имя интерфейса и имя адаптера. Для примера:
instrhwinfo('gpib', 'agilent') ans = AdaptorDllName: [1x91 char] AdaptorDllVersion: 'Version 14.3.0' AdaptorName: 'agilent' InstalledBoardIds: [8 32] ObjectConstructorName: {'gpib('agilent', 8, 6);'} VendorDllName: 'sicl32.dll' VendorDriverDescription: 'Agilent Technologies GPIB Driver'
InstalledBoardIds
должен содержать список всех установленных плат. Это не адрес GPIB платы. Если ваша плата отсутствует в списке, попробуйте использовать программное обеспечение производителя системной платы для использования этой платы.
ObjectConstructorName
должен иметь одну запись для каждого подключенного прибора. Если ваш инструмент не указан, убедитесь, что инструмент включен и сконфигурирован для связи GPIB.
Убедитесь, что вы можете создать gpib
объект. Каждый объект GPIB сопоставлен с одним контроллером и одним инструментом. Для создания объекта необходимо указать три аргумента. Vendor
является поставщиком платы адаптера. BoardIndex
и PrimaryAddress
являются вторым и третьим аргументами. Для примера создать объект GPIB, сопоставленный с контроллером National Instruments ™ с индексом платы 0
и инструмент с первичным адресом 1
:
% Vendor = ni % BoardIndex = 0 % PrimaryAddress = 1 g = gpib('ni',0,1);
Примечание
Вы не используете основной адрес платы GPIB в синтаксисе конструктора объектов GPIB. Вы используете индекс платы и адрес прибора.
Если вы не получите ошибку, объект был создан успешно. Для проверки можно просмотреть свойства объекта, используя имя, которое вы присвоили объекту, g
в этом случае.
disp(g) GPIB Object Using NI Adaptor : GPIB0-1 Communication Address BoardIndex: 0 PrimaryAddress: 1 SecondaryAddress: 0 Communication State Status: closed RecordStatus: off Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0
Убедитесь, что вы можете подключиться к устройству, используя fopen
функция с именем объекта.
fopen(g);
Если вы не получите ошибку, подключение было успешно выполнено. Если вы получили ошибку, выполните шаги в сообщении об ошибке и/или проверьте предыдущие шаги, перечисленные здесь.
Когда вы подключены, вы можете связаться с вашим устройством. Пример чтения и записи в чип см. в разделе Запись и чтение данных.
Проверьте в утилите поставщика
Проверьте правильность операции в утилите поставщика, такой как Keysight Connection Expert или National Instruments ™ Measurement and Automation Explorer (MAX).
И Keysight, и NI установлены
Если установлены драйверы Keysight и NI GPIB, могут возникнуть конфликты. Попробуйте отключить драйверы других поставщиков и повторить попытку использования поставщика.
EOIMode, EOSCharCode и EOSMode
EOIMode
является значением по умолчанию и должен быть оставлен on
большую часть времени. Однако некоторые инструменты могут потребовать EOIMode
будет повернута off
. Используйте правильный параметр, например EOSCharCode
или EOSMode
при необходимости.
ВИЗА
Вы можете почти всегда использовать visadev
интерфейс с именем ресурса VISA-GPIB вместо gpib
интерфейс при возникновении проблемы. Единственным ограничением использования VISA является то, что вы не можете использовать spool
функция.
Отправлена неправильная команда
Распространенной проблемой при использовании интерфейса GPIB является то, что на инструмент посылается неправильная команда. Попробуй:
query(g,'*IDN?')
для проверки связи с прибором.
Большинство более новых инструментов распознают эту команду, поскольку она является частью стандарта GPIB. Вы также должны посмотреть на руководство инструмента, чтобы увидеть, какие команды он распознает.
Порядок байтов
Можно конфигурировать ByteOrder
чтобы быть littleEndian
или bigEndian
. Для GPIB, ByteOrder
относится к порядку, в котором байты в значениях многобайтового типа данных передаются на шине коммуникации. Можно использовать swapbytes
команда для устранения неполадок с ByteOrder
. Необходимо сконфигурировать ByteOrder
к соответствующему значению для вашего инструмента перед выполнением операции чтения или записи. Для получения информации о порядке хранения байтов см. документацию по инструментам.
Неправильные данные
Убедитесь, что правильный тип данных - например int16
, uint16
, double
- используется с fread
и fwrite
. Вы должны использовать тот совпадающий тип данных, что и инструмент.
Если чтение и запись типов данных, отличных от uint8
или int8
, убедитесь, что ByteOrder
верно.