Коды и основные причины ошибок GPIB (часть 2)

Overview

В этой статье представлены пути устранения ошибок GPIB с различными кодами.

Contents

Большая часть следующего текста взята из Руководства пользователя NI-488.2 для Windows (см. Дополнительные материалы ниже).

 

EDMA (8)

Условие возникновения ошибки: Ошибка возникает при использовании DMA для передачи данных.

Описание: EDMA возникает, если обнаружена системная ошибка DMA, когда драйвер NI-488.2 пытается передать данные через GPIB, используя DMA

Решения:

  • Проблема EDMA может быть исправлена аппаратно с помощью утилиты конфигурирования GPIB для перенастройки платы GPIB таким образом, чтобы она не использовала ресурс DMA.
  • Проблема EDMA может быть исправлена программно с помощью функции ibdma для отключения DMA

 

EOIP (10)

Условие возникновения ошибки: Во время выполнения асинхронного ввода-вывода функция не разрешена.

Описание: EOIP происходит, когда асинхронная операция ввода-вывода не завершена до выполнения какого-либо другого вызова GPIB. Во время операций асинхронного ввода-вывода Вы можете использовать только функции ibstop, ibnotify, ibwait, или же ibonl. Если предпринят любой другой вызов GPIB, возникает EOIP.

Возможная причина: Вызов любых неподдерживаемых функций GPIB во время асинхронного ввода-вывода.

Решение: 

  • Перед дальнейшими вызовами GPIB повторно синхронизируйте драйвер и Ваше приложение. Ресинхронизация выполняется с помощью одной из следующих функций: ibnotify (если значение ibsta , переданное в обратный вызов ibnotify ,содержит CMPL, то драйвер и приложение повторно синхронизируются), ibwait (если возвращенная ibsta содержит CMPL то драйвер и приложение повторно синхронизируются), ibstop (это отменяет асинхронную операцию ввода-вывода, так что драйвер и Ваше приложение повторно синхронизируются немедленно), или ibonl (это отменяет операцию асинхронного ввода-вывода, и интерфейс сбрасывается, так что драйвер и Ваше приложение повторно синхронизируются немедленно).

 

ECAP (11)

Условие возникновения ошибки: Нет возможности для работы.

Описание: ECAP выдается, когда на Вашей плате GPIB отсутствует возможность выполнения операции, или когда в программном обеспечении отключена определенная возможность и сделан вызов, требующий этой возможности.

Решение: 

  • Проверьте правильность вызова или убедитесь, что Ваша интерфейсная плата и драйвер GPIB обладают необходимыми возможностями.

 

EFSO (12)

Условие возникновения ошибки: Ошибка файловой системы.

Описание: EFSO выдается, когда вызов ibrdf или же ibwrtf сталкивается с проблемой при выполнении файловой операции. В частности, эта ошибка указывает, что функция не может открыть, создать, найти, записать или закрыть файл, к которому осуществляется доступ. Конкретный код ошибки операционной системы для этого условия содержится в ibcntl

Решения: 

  • Убедитесь, что имя файла, путь и драйвер, которые Вы указали, являются правильными.
  • Убедитесь, что режим доступа к файлу правильный. Например, не пытайтесь записывать в файл только для чтения.
  • Убедитесь, что на диске достаточно места для хранения файла.

 

EBUS (14)

Условие возникновения ошибки: Ошибка передачи управляющего байта.


Описание: EBUS выдается, когда во время работы устройства возникают определенные ошибки шины GPIB. Все функции устройства для выполнения адресации и других операций управления шиной отправляют управляющие байты. Ожидается, что устройства примут эти управляющие байты в течение времени, указанного в конфигурации по умолчанию или функции ibtmo. EBUS выдается, если при отправке этих управляющих байтов произошел тайм-аут.

Возможная причина: К вашему контроллеру GPIB не подключены устройства GPIB. Это может случиться из-за того, что все Ваши приборы выключены, один из Ваших приборов неисправен и устанавливает линию квитирования, Ваш кабель GPIB отсоединен от платы или кабель GPIB поврежден.

Решения:

  • Убедитесь, что все приборы работают правильно и те из них, с которыми Вы хотите установить связь, действительно включены.
  • Отключите все приборы и подключите их по одному, чтобы определить, является ли один из них причиной проблемы.
  • Проверьте, не повреждены ли кабели, и убедитесь, что по крайней мере 2/3 из Ваших приборов включены (это требование спецификации IEEE 488).
  • Если время ожидания слишком короткое для того, чтобы драйвер мог отправить управляющие байты, увеличьте время ожидания.

 

ESTB (15)

Условие возникновения ошибки: Потеряны байты статуса последовательного опроса.

Описание: ESTB выдается только функцией ibrsp. ESTB указывает, что один или несколько байтов состояния последовательного опроса, полученные из автоматических последовательных опросов, были потеряны из-за нехватки места для хранения. Доступно несколько более ранних байтов состояния; тем не менее, вызов ibrsp возвращает самый ранний байт.

Возможная причина: Прибор многократно запрашивает линию SRQ.

Решения:

  • Более частый вызов ibrsp для очистки очереди.
  • Отключить автоматический опрос с помощью функции ibconfig (опция IbcAUTOPOLL) или отключить автоматический опрос в утилите конфигурирования GPIB.

 

ESRQ (16)

Условие возникновения ошибки: SRQ застрял в положении ON (включено).

Описание: ESRQ может быть выдан только вызовом ibwait на уровне устройства, в котором Вы сконфигурировали функцию ibwait на однократный возврат бита RSQ при запросе слова состояния (ibsta). ESRQ указывает на то, что ожидание RQS не возможно, потому что включена линия GPIB SRQ.

Возможная причина: Эта ситуация может быть вызвана следующими событиями: проблема подключения, которая заставляет линию SRQ оставаться запрошенной; неизвестное программному обеспечению устройство, запрашивает линию SRQ - поскольку программное обеспечение не знает об этом устройстве, оно никогда не сможет выполнить последовательный опрос устройства, чтобы освободить линию SRQ; или тестер шины GPIB (или подобное оборудование) может запрашивать линию SRQ.

Решения:

  • Проверьте, запрашивает ли любое из устройств на шине (даже те, которые не используются Вашим приложением) линию SRQ. Отключите их от GPIB, если это необходимо.
  • Осмотрите кабели GPIB и убедитесь, что разъемы установлены правильно.

 

ETAB (20)

Условие возникновения ошибки: Ошибка таблицы.

Описание: ETAB происходит только во время выполнения функций FindLstn и FindRQS. ETAB указывает на наличие проблемы с таблицей, используемой этими функциями.

Возможная причина: Появление FindLstn, ETAB означает, что в данной таблице недостаточно места для размещения всех найденных адресов Listener (слушателей). Появление FindRQS, ETAB означает, что ни одно из устройств в данной таблице не запрашивало службу.

Решения:

  • При появлении FindLstn следует увеличить размер массивов результатов.
  • При появлении FindRQS, проверьте, запрашивают ли другие устройства, не используемые Вашим приложением, линию SRQ Отключите их от GPIB, если это необходимо.

 

Эта информация по устранению неполадок продолжена в материале Коды и основные причины ошибок GPIB (часть 1) а также Коды и основные причины ошибок GPIB (часть 3)