Поиск и устранение проблем с интерфейсом GPIB

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».

Строение и подключение

  1. Убедитесь, что для устройства установлен правильный драйвер прибора. См. документацию устройства и веб-сайт поставщика.

  2. Убедитесь, что ваше устройство поддерживается в Instrument Control Toolbox™. См. «Поддерживается ли мое оборудование?».

  3. Для использования интерфейса GPIB необходимо установить плату и прибор GPIB.

    Убедитесь, что ваша плата адаптера GPIB подключена к компьютеру с MATLAB®. Можно проверить, что плата адаптера установлена, используя instrhwinfo функция со gpib имя интерфейса. Разрешенные адаптеры включают keysight (обратите внимание, что agilent еще работает), isc, mcc, adlink, и ni.

    instrhwinfo('gpib')
    
    ans = 
        InstalledAdaptors: {'mcc', 'agilent'}
           JarFileVersion: 'Version 14.3.0'

    В этом примере показаны два установленных поставщика. Имя поставщика относится к производителю платы, а не к производителю приборов. Если установленные поставщики отсутствуют, необходимо установить плату и ее драйвер.

  4. Убедитесь, что 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.

  5. Убедитесь, что вы можете создать gpib объект. Каждый объект GPIB сопоставлен с одним контроллером и одним инструментом. Для создания объекта необходимо указать три аргумента. Vendor является поставщиком платы адаптера. BoardIndex и PrimaryAddress являются вторым и третьим аргументами. Для примера создать объект GPIB, сопоставленный с контроллером National Instruments ™ с индексом платы 0и инструмент с первичным адресом 1:

    % Vendor = ni
    % BoardIndex = 0
    % PrimaryAddress = 1
    
    g = gpib('ni',0,1);

    Примечание

    Вы не используете основной адрес платы GPIB в синтаксисе конструктора объектов GPIB. Вы используете индекс платы и адрес прибора.

  6. Если вы не получите ошибку, объект был создан успешно. Для проверки можно просмотреть свойства объекта, используя имя, которое вы присвоили объекту, 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
  7. Убедитесь, что вы можете подключиться к устройству, используя fopen функция с именем объекта.

    fopen(g);

    Если вы не получите ошибку, подключение было успешно выполнено. Если вы получили ошибку, выполните шаги в сообщении об ошибке и/или проверьте предыдущие шаги, перечисленные здесь.

  8. Когда вы подключены, вы можете связаться с вашим устройством. Пример чтения и записи в чип см. в разделе Запись и чтение данных.

Другие советы по поиску и устранению проблем для GPIB

Проверьте в утилите поставщика

Проверьте правильность операции в утилите поставщика, такой как 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 верно.