Большая часть следующего текста взята из руководства пользователя NI-488.2 для Windows (см. Дополнительные материалы ниже).
Условие возникновения: Ошибка драйвера.
Описание: EDVR возникает, когда оборудование GPIB не настроено должным образом, либо неверно имя интерфейса или устройства, переданное функции ibfind.
Возможная причина: Часто ошибки EDVR вызываются неправильным написанием имени интерфейса Вашей платы или имени устройства Вашего прибора. Например, для плат NI имя интерфейса по умолчанию - это GPIB0, но Вы можете набрать его с ошибкой как GPIBO (буква «О» вместо нуля). Эта ошибка также может возникнуть, если неверен индекс платы, переданный функции ibdev. Индекс платы - это числовая часть имени интерфейса для платы GPIB. Многие люди делают неправильное предположение, что это основной адрес платы. Например, я могу установить на свой компьютер плату PCI-GPIB и указать основной адрес 2. Имя интерфейса по умолчанию для платы - GPIB0, поэтому он имеет индекс платы 0, а не 2.
Пути решения:
Условие возникновения: Функция требует, чтобы плата GPIB являлась Ведущим контроллером (CIC).
Описание: Некоторые функции требуют, чтобы ваша плата GPIB была CIC - эти функции отмечены в Справочном руководстве по функциям NI-488.2 (см. Ссылку ниже). По умолчанию ваша плата GPIB будет являться Системным контроллером, но это отличается от работы Ведущим контроллером. Системный контроллер имеет возможность стать CIC в любое время (на рассматриваемой шине интерфейса общего назначения может быть один Системный контроллер).
Возможная причина: Ошибки ECIC часто возникают, когда в начале Вашей программы Вы не отправляете команду очистки интерфейса, чтобы убедиться, что Ваша плата GPIB является CIC.
Пути решения:
Условие возникновения: Функция не обнаружила адресата (-ов).
Описание: Передача данных по GPIB требует одного передающего (Talker, для отправки сообщений данных) и одного или несколько принимающих (Listener, для чтения сообщений данных). ENOL обычно возникает при попытке выполнить операцию записи, которая не предназначена никому из принимающих, или их нет по указанным адресам. Появление ENOL в процессе операции записи обозначает, что адрес GPIB, с которым вы пытаетесь установить связь, не совпадает с адресом GPIB устройства, подключенного к шине.
Возможная причина: Прибор, с которым вы пытаетесь установить связь, не соответствует ожидаемому основному адресу, прибор не включен, или кабель, подключенный к прибору либо отключен, либо сломан.
Пути решения:
Условие возникновения: Плата GPIB (GPIB0 или GPIB1) неправильно адресуется.
Описание: EADR возникает, когда плата GPIB является Ведущим контроллером (CIC) и неправильно адресует себя перед выполнением функций чтения и записи. EADR также возвращается функцией ibgts, когда запрашивается функция фонового квитирования, а линия GPIB ATN уже переведена в низкий уровень. В этом случае фоновое квитирование невозможно. Чтобы уведомить вас об этом факте, возвращается ошибка.
Возможная причина: Ваша плата GPIB настроена на тот же основной адрес, что и прибор, с которым Вы пытаетесь связаться.
Пути решения:
Условие возникновения: Недопустимый аргумент для вызова функции.
Описание: EARG возникает, когда вызову функции передается неверный аргумент.
Возможная причина: Ниже приведены некоторые примеры: Вы вызываете ibtmo со значением вне диапазона от 0 до 17 (возможные значения тайм-аута соответствуют таблице значений от 0 до 17, по умолчанию 13, что представляет собой тайм-аут в 10 секунд); вы вызываете ibeos с бессмысленным набором бит, установленных в старший байт второго параметра; или вы вызываете ibpad (или ibsad) с недопустимыми адресами.
Пути решения:
Условие возникновения: Плата GPIB не работает Системным контроллером так, как это требуется.
Описание: ESAC возникает, когда вызываются ibsic, ibsre, SendIFC или EnableRemote, в то время как плата GPIB не обладает возможностями Системного контроллера.
Возможная причина: Плата GPIB не настроена на выполнение функций Системного контроллера.
Пути решения:
Условие возникновения: Прервана операция ввода-вывода.
Описание: EABO указывает, что операция ввода-вывода была отменена по какой-то причине.
Возможная причина: Ошибка EABO обычно является результатом таймаута во время выполнения операции чтения или записи. Также она может стать результатом вызова функции ibstop, функции ibclr или аналогичных во время выполнения операции ввода-вывода. Если не включен PCI bus mastering (опция в BIOS вашего компьютера), Вы можете получить таймаут во время операций записи на плате PCI-GPIB. Во время операций чтения Вы можете получить таймаут, если прибор, который Вы считываете, не понял предыдущую команду, поэтому ему нечего Вам передавать. Есть несколько причин, по которым прибору нечего передавать:
Пути решения:
Условие возникновения: Не существующая плата GPIB.
Описание: ENEB возникает, когда плата GPIB отсутствует на адресе ввода-вывода, указанном в утилите конфигурирования GPIB. Эта проблема возникает, когда плата физически не подключена к системе, или адрес ввода / вывода, указанный во время настройки, не совпадает с фактической настройкой платы, или существует системный конфликт с базовым адресом ввода-вывода, или имя интерфейса для платы отличается от имени интерфейса платы, связанной с вашим устройством.
Пути решения:
Эта информация об устранении неполадок изложена далее в "Коды ошибок GPIB и их основные причины (часть 2)" и "Коды ошибок GPIB и их основные причины (часть 3)".