Выполните последовательные опросы

Используйте visastatus Функция

Можно выполнить последовательный опрос с visastatus функция. Эта функция для всех интерфейсов VISA.

Последовательный опрос для VISA-GPIB

В последовательном опросе для интерфейса VISA-GPIB спрашивает Диспетчер (опрашивает) каждый обращенный Прослушиватель, чтобы передать обратно байт состояния, который указывает, утверждало ли это линию SRQ и обслуживание потребностей. Седьмой бит этого байта (бит RQS) установлен, если инструмент запрашивает сервис.

Контроллер выполняет следующие шаги для каждого обращенного Прослушивателя:

  1. Прослушиватель адресован разговору, и байт команды Последовательного опроса включает (SPE) отправляется.

  2. Линия ATN установлена высоко, и Прослушиватель возвращает байт состояния.

  3. Линия ATN установлена низко, и байт команды Последовательного опроса отключает (SPD) отправляется, чтобы закончить последовательность опроса.

Обратитесь к Состоянию и Событию, Сообщающему для получения дополнительной информации о линиях шины GPIB и бите RQS.

Выполните последовательный опрос

Этот пример показывает вам, как выполнить последовательный опрос для функционального преобразователя на 33120 А Keysight™ и Tektronix® Осциллограф TDS 210. При этом пример показывает вам, как сконфигурировать многие биты состояния, описанные в Стандартном Регистре состояния События.

  1. Создайте объекты VISA-GPIB — Создают объект VISA-GPIB fgen сопоставленный с функциональным преобразователем Keysight 33120 А в первичном адресе 1.

    fgen = visadev("GPIB0::1::0::INSTR");

    Создайте объект VISA-GPIB scope сопоставленный с осциллографом Tektronix TDS 210 в первичном адресе 2.

    scope = visadev("GPIB0::2::0::INSTR");
  2. Сконфигурируйте значения свойств — Конфигурируют оба объекта испытать таймаут после 1 секунды.

    fgen.Timeout = 1;
    scope.Timeout = 1;
  3. Запишите и считайте данные — Конфигурируют функциональный преобразователь, чтобы запросить сервис, когда ошибка команды происходит.

    writeline(fgen,"*CLS");
    writeline(fgen,"*ESE 32");
    writeline(fgen,"*SRE 32");

    Сконфигурируйте осциллограф, чтобы запросить сервис, когда ошибка команды произойдет.

    writeline(scope,"*CLS");
    writeline(scope,"*PSC 0");
    writeline(scope,"*ESE 32");
    writeline(scope,"DESE 32");
    writeline(scope,"*SRE 32");

    Определите, нужно ли какому-либо инструменту обслуживание.

    visastatus(fgen)
     
    ans =
     
      logical
     
       0
    visastatus(scope)
     
    ans =
     
      logical
     
       0

    Запросите значение напряжения для каждого инструмента.

    writeline(fgen,"Volt?");
    writeline(scope,"Volt?");

    Определите, произвел ли любой инструмент ошибку из-за предыдущего запроса.

    visastatus(fgen)
     
    ans =
     
      logical
     
       0
    visastatus(scope)
     
    ans =
     
      logical
     
       1

    Начиная с Volt? допустимая команда для функционального преобразователя, значение читается назад успешно.

    volt1 = readline(fgen)
     
    volt1 =
     
      +1.00000E-01

    Начиная с Volt? недопустимая команда для осциллографа, это запрашивает сервис. Операция чтения осциллографа испытывает таймаут после 1 секунды.

    volt2 = readline(scope)
    Warning: The specified amount of data was not returned within the Timeout period for 'readline'.
    'visadev' unable to read any data. For more information on possible reasons, see visadev Read
    Warnings. 
    
    ans =
    
         []
  4. Разъединитесь и вымойтесь — Использование clear отключать инструменты от VISA-GPIB возражает fgen и scope и очистить его от MATLAB® рабочая область, когда вы закончите работающая с ним.

    clear fgen scope

Смотрите также

Похожие темы