Отправка команд через GPIB через Excel VBA

У меня есть этот сетевой анализатор, и мне нужно отправлять ему команды через Excel VBA и GPIB. У меня GPIB и другое оборудование настроено нормально, но я не знаю, как просто посылать команды через GPIB на анализатор. У меня есть значительный опыт программирования, но я новичок в VBA. После часов поиска документации по оборудованию и руководств по VBA мой дух медленно умирает. Я считаю, что мне нужно добавить правильные ссылки в VBA (Инструменты -> Ссылки), но когда я пытаюсь запустить пример кода, указанный в документации («Вызов viOpenDefaultRM (defrm)»), я получаю сообщение об ошибке, что подпрограмма или функция не определены .

Любая помощь очень ценится. Я работаю инженером и каким-то образом получаю задания, требующие большого количества кодирования.


person Tamarisk    schedule 08.10.2014    source источник


Ответы (2)


Похоже, вы используете библиотеку VISA (которая будет делегировать полномочия библиотеке GPIB при открытии ресурса GPIB). Таким образом, у вас должен быть файл VISA32.bas от вашего поставщика VISA, который вы можете по крайней мере скопировать в свой проект VBA.

Или используйте VISA-COM, если ваш поставщик VISA предоставляет его, и используйте для него Инструменты -> Справочные материалы.

person Tom Blodget    schedule 09.10.2014

Чтобы ссылаться на функции во внешней DLL, вам нужно Declare добавить их в модуль в файле Excel. Объявление определяет путь к внешней библиотеке, точку входа, параметры внешней функции и типы возвращаемых значений.

В вашем конкретном случае Declare может выглядеть примерно так:

Public Declare Sub viOpenDefaultRM Lib "gpib_functions.dll" (defrm as String)

Вам нужно будет указать путь к файлу библиотеки «gpib_functions.dll» в вашей системной переменной %PATH% или явно указать полный путь в файле Declare.

См. Вызов функций и команд DLL из VBA' для получения дополнительной информации.

person Steve S    schedule 08.10.2014