Страница 1 из 2

labview драйвер

СообщениеДобавлено: Пн июн 09, 2014 11:58 am
Yurets
Здравствуйте уважаемые форумчане нынче столкнулся со следующей проблемой: купил плату цифрового ввода вывода, а она не поддерживается лабвью 7.1. Соответстенно надо написать для нее драйвер (драйвер для винды есть)для работы с ней в лабвью 7.1.
Подскажите, сложно ли это, возможно вообще и что можно почитать по теме создания длл библиотеки для платы.
Почему задаю вопрос тут----нужно мнение и совет профессионалов в этой сфере
Спасибо
П.С. какие языки программирования нужно знать?

Re: labview драйвер

СообщениеДобавлено: Вт июн 10, 2014 4:13 pm
Техподдержка NI
Здравствуйте!

Напишите, пожалуйста, что у Вас за плата.
Почему есть такая необходимость работать именно в этой версии LabView (7.1)?

Иван.

Re: labview драйвер

СообщениеДобавлено: Ср июн 11, 2014 12:58 pm
Yurets
Здравствуйте в том то и проблема что плата не от NI .А необходимость 7.1 заключается в том, что необходимо состыковать две платы. Для одной все написано в лв 7.1 , а другая плата эту версию не поддерживает. Вот и интересуюсь сложно ли написать лв драйвер для данной платы

Re: labview драйвер

СообщениеДобавлено: Вт июн 17, 2014 10:46 am
Техподдержка NI
Yurets писал(а):...сложно ли написать лв драйвер для данной платы

Здравствуйте!

Сложно сказать, как написать драйвер, если неизвестно для чего писать.
Может быть плата умеет работать через VISA. Или придется создавать драйвер путем вызова функций через Call Library Function Node.
Вы можете посмотреть другой драйвер для похожего устройства для LabView (на сайте ni.com есть много таких драйверов:Instrument Driver Network (IDNet) - http://search.ni.com/nisearch/app/main/ ... ssnav:idr/) и сделать по аналогии.

Ссылки по теме:
Developing LabVIEW Plug and Play Instrument Drivers (http://www.ni.com/white-paper/3271/en/)
Instrument Driver Development Tools and Resources (http://www.ni.com/devzone/idnet/development.htm)
Creating Instrument Driver VIs (http://zone.ni.com/reference/en-XX/help ... g_instvis/)
LabVIEW Instrument Driver Development Studio - National Instruments (Free Add-On, http://sine.ni.com/nips/cds/view/p/lang/ru/nid/211922)

Иван.

Re: labview драйвер

СообщениеДобавлено: Ср янв 25, 2017 12:52 pm
dzlv
Здравствуйте. Помогите разобраться.
Есть PCI-плата не от National Instruments, библиотеки для работы в labview не идут в комплекте. Предназначена для преобразований ЦАП-АЦП. Что нужно для того, чтобы написать драйвер платы для работы с ней labview? Драйвер для windows есть, компьютер плату определяет, но в MAX не видно платы.

Re: labview драйвер

СообщениеДобавлено: Чт янв 26, 2017 7:14 pm
IvanLis
dzlv писал(а):Здравствуйте. Помогите разобраться.
Есть PCI-плата не от National Instruments, библиотеки для работы в labview не идут в комплекте. Предназначена для преобразований ЦАП-АЦП. Что нужно для того, чтобы написать драйвер платы для работы с ней labview? Драйвер для windows есть, компьютер плату определяет, но в MAX не видно платы.

Напишите производителя и наименование устройства.
Вполне возможно, что доступ к устройству возможен из "родной" библиотеки - DLL.
Тогда можно реализовать необходимые функции используя Call Library Function https://forums.ni.com/t5/Developer-Cent ... -p/3522246

Re: labview драйвер

СообщениеДобавлено: Пт янв 27, 2017 3:21 am
dzlv
IvanLis писал(а):
dzlv писал(а):Здравствуйте. Помогите разобраться.
Есть PCI-плата не от National Instruments, библиотеки для работы в labview не идут в комплекте. Предназначена для преобразований ЦАП-АЦП. Что нужно для того, чтобы написать драйвер платы для работы с ней labview? Драйвер для windows есть, компьютер плату определяет, но в MAX не видно платы.

Напишите производителя и наименование устройства.
Вполне возможно, что доступ к устройству возможен из "родной" библиотеки - DLL.
Тогда можно реализовать необходимые функции используя Call Library Function https://forums.ni.com/t5/Developer-Cent ... -p/3522246

Спасибо, что откликнулись. Прикладываю название платы. К ней прилагается библиотека DLL с функциями, labview видит их. Про call library function немного знаю, но непонятно, как дать понять ей, что надо "работать" с этой платой, где соединить. Простите, если неправильно выражаюсь :)

Re: labview драйвер

СообщениеДобавлено: Пт янв 27, 2017 11:08 am
IvanLis
dzlv писал(а):Спасибо, что откликнулись. Прикладываю название платы. К ней прилагается библиотека DLL с функциями, labview видит их. Про call library function немного знаю, но непонятно, как дать понять ей, что надо "работать" с этой платой, где соединить. Простите, если неправильно выражаюсь :)

Делать за Вас наверное никто не будет.
На сайте (http://www.elcus.ru/boards.php?ID=dd64-pci) есть вся информация с заголовочными файлами и описанием функций. В версии для Linux есть исходники.
Вам необходимо разобраться с необходимыми функциями и сделать обертку на библиотеку (wrapper), и использовать его в своих проектах.

Re: labview драйвер

СообщениеДобавлено: Пт янв 27, 2017 12:39 pm
dzlv
Понял, тогда последний вопрос. Для создания wrapper требуется, чтобы платы была "видна" labview, и она должна отображаться в MAX? Или потом как-то обертка цепляется к плате? Пытаюсь разобраться в механизме. Через visa driver wizard пробовал зарегистрировать, так же не видна.

Re: labview драйвер

СообщениеДобавлено: Сб янв 28, 2017 9:51 pm
IvanLis
dzlv писал(а):Понял, тогда последний вопрос. Для создания wrapper требуется, чтобы платы была "видна" labview, и она должна отображаться в MAX? Или потом как-то обертка цепляется к плате? Пытаюсь разобраться в механизме. Через visa driver wizard пробовал зарегистрировать, так же не видна.

Нет, в МАХ она не появится.
Нужно, что бы плата была видна библиотеке, которая Вам даст ней доступ.

Re: labview драйвер

СообщениеДобавлено: Сб янв 28, 2017 11:17 pm
dzlv
А я пытался сделать, чтобы плата появилась в MAX. Значит, visa driver wizard тоже не понадобится.
Как узнать, видна ли плата для библиотеки? Если в "VISA resource name" должна показываться, то там нету её.

Re: labview драйвер

СообщениеДобавлено: Вс янв 29, 2017 1:20 pm
IvanLis
dzlv писал(а):Как узнать, видна ли плата для библиотеки?

На пример у Вас в библиотеке имеется функция: OpenDeviceBySN ( SerialNumber, &Error) - Открытие устройства по серийному номеру.
Вызываете функцию, если функция выполняется, без ошибок, то значит устройство доступно и можно работать с ним дальше.

Re: labview драйвер

СообщениеДобавлено: Вс янв 29, 2017 3:58 pm
dzlv
IvanLis писал(а):
dzlv писал(а):Как узнать, видна ли плата для библиотеки?

На пример у Вас в библиотеке имеется функция: OpenDeviceBySN ( SerialNumber, &Error) - Открытие устройства по серийному номеру.
Вызываете функцию, если функция выполняется, без ошибок, то значит устройство доступно и можно работать с ним дальше.

Смысл теперь понятен. Но такой функции в библиотеке не имеется, как и функции закрытия. Это не функция, а файл OpenDeviceBySN.cpp, для которого еще требуется включения хедера, который так же есть в поставке.

Re: labview драйвер

СообщениеДобавлено: Вс янв 29, 2017 5:26 pm
IvanLis
dzlv писал(а):Смысл теперь понятен. Но такой функции в библиотеке не имеется, как и функции закрытия. Это не функция, а файл OpenDeviceBySN.cpp, для которого еще требуется включения хедера, который так же есть в поставке.


handle - это дескриптор, ссылка, указатель, можете как угодно называть.
Вам его значение вернет функция при создании подключения к устройству:
hDD64PCI = OpenDeviceBySN ( SerialNumber, &Error);

hDD64PCI - как раз и есть его значение, дальнейшее обращение к устройству осуществляться будет по ссылке, в том числе и закрытие:
CloseHandle(hDD64PCI );
Если Вы посмотрите функции, то все они принимают переменную: hDD64PCI

Там же написано:
В случае ошибки эти функции возвращают значение hDD64PCI , равное INVALID_HANDLE_VALUE (0xFFFFFFFF). При успешном завершении в hDD64PCI возвращается дескриптор драйвера.

Т.е. сразу понятно, доступно устройство или нет....

Снимок экрана от 2017-01-29 16-16-54.png
Снимок экрана от 2017-01-29 16-16-54.png (87.57 KiB) Просмотров: 2183

Re: labview драйвер

СообщениеДобавлено: Вс янв 29, 2017 6:25 pm
dzlv
Я понял, что должен возвращаться этот самый дескриптор при успешном открытии устройства. Вопрос в том, как подобраться к этой функции из LV, ведь в при обращении к DLL-ке из call libraty function нету этой функции. Или не оттуда я копаю?