2014-10-08 5 views
1

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

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

ответ

0

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

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

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

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

См. 'Calling DLL Functions and Commands from VBA' для получения дополнительной информации.

1

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

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

Смежные вопросы