Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
|
Несколько устройств E14-140M на одном компьютереЗдравствуйте,интересует возможность одновременной работы до 4-х устройств E14-140M в связке с одним ПК? |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереБудут работать. |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереСпасибо большое, тогда еще один вопрос. Каким образом осуществляется выбор конкретного модуля в LabView? VI/'s которые находятся в библиотеке lcomp? на сколько я понимаю, не предусматривают такой возможности, а работают с первым обнаруженным модулем. |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереСпасибо большое, тогда еще один вопрос. Каким образом осуществляется выбор конкретного модуля в LabView? VI/'s которые находятся в библиотеке lcomp, на сколько я понимаю, не предусматривают такой возможности, а работают с первым обнаруженным модулем. |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереКонкретно по LabView я не в курсе, но программно можно различать модули по уникальному серийному номеру, или по логическим уровням, поданным на цифровой вход. В последнем случае фактически получаете адресацию, привязанную к месту модуля, как это обычно делают в многомодульных системах. |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереТам есть понятие виртуального слота при открытии модуля, а потом используется полученный идентификато(HANDLE) модуля для дальнейшего вызова функций именно для этого модуля (он там тянется скозной нитью через весь пример). Выбирается нужный модуль последовательным открытием всех модулей и чтением их серийного номера например... |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереСпfсибо, Poul. Я сейчас смотрю документ labview_e154_e140_e440_e2010.pdf -
Т.е. придется корректировать VI/'s, чтобы "заточить" их под работу с конкретным модулем? |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереЯ только за lcomp могу сказать... |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереА можно по-подробнее, что вы имеете в виду под lcomp? Выше я привел выдержку из документации к библиотеке виртуальных приборов lview.llb, которая использует библиотеку lview.dll. |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереPoul имеет в виду программный интерфейс lcomp. То же относится к библиотеке lusbapi.
Просто дело в том, что наши библиотеки в основном ориентированы на C/C++ (ну или готовый софт типа LGraph), а <<обертка>> для labview идет как дополнительная/демонстрационная и, похоже, поддерживает только одно устройство...
|
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереlcomp это lcomp.exe и то что он устанавливает. За те примеры что так установились я могу сказать... |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереАлександр, я так понимаю "прикрутить" Сишные функции в LabView ничто не мешает? |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереВсем большое спасибо, кажется я понял, в какую сторону копать: L-Card/LIBRARY/WLCOMP_LV - там читать инструкцию и смотреть примеры... Я прав? |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереНу да, можно взять сишные функции из lcomp или из lusbapi (только там c++, может быть, надо обертку писать; в lcomp она уже написана) |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереВот выдержка из файла, instruct.html, который находится в C:/ProgramFiles(x86)/L-Card/LIBRARY/WLCOMP_LV/instruct.html
При этом в папке wlcomp файлов, имеющих отношение к labView нет. В папке wlcomp_lv есть примеры, но в них все сводится к вызову функций на Си, т.е. обертки, как я понимаю, нет. При попытке запуска примеров, labView вылетает (LabView 10, 32 бита, но стоит на 64-битном ПК, так что может быть из-за этого) От сюда вопрос - где можно взять обертку, чтобы все не сводилось к написанию на Си? |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереCIN там готовые. LabView как там видно 8. Можете вызывать функции wlcomp.dll через CallLibraryFunction - это будет без C, но с кучей лишних проводов на диаграмме... |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереХорошо, попробую зайти с другой стороны.
Библиотека виртуальных приборов для LabVIEW 7.1 " Программа работает с одним модулем E14-140M, так как VIs, находящиеся в библиотеке, не включают в себя параметров, отвечающих за уникальность модуля. Соответственно вопрос: каким наиболее "безболезненным" способом изменить программу для одновременной работы с 4-мя модулями E14-140M ? |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереЯ вижу два варианта:
На мой взгляд первый вариант проще, хотя и несколько
|
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереРоман, Вы меня простите за возможно глупые вопросы, но я "только учусь". В папке LVIEW_DLL, где находится библиотека lview.dll я нашел файл wlusbapi.cpp, в котором описаны функции, применяемые в labview. В принципе я уже понял, что нужно изменить в этом файле, чтобы заставить его работать с конкретным слотом. Не могли бы Вы мне подсказать как и чем теперь перекомпилировать библиотеку? Т.е. чем открыть все это окружение? |
|||
|
||||
|
|
Re: Несколько устройств E14-140M на одном компьютереДмитрий, перекомпилировать можно каким-нибудь компилятором C++, какой Вы используете. Например, MS Visual C++ или MinGW или каким-нибудь другим. Поскольку это DLL, в зависимости от компилятора может потребоваться подкорректировать настройки, отредактировать .def файл. Если что, подскажем. И должен пояснить насчет рекомендаций Романа. Просто добавить поддержку передачи номера слота как параметра в функцию открытия недостаточно, потому что в этой программе есть глобальные переменные, связанные с открытым модулем. То есть вызвать open два раза с разными слотами и потом работать с двумя модулями не получится.
Вариант (1) - сделать несколько экземпляров библиотеки - Роман предложил как <<ход конем>> для минимизации переписывания C-шного кода. Мысль в том, что можно оставить внутренний переменные глобальными, а просто передавать номер слота в функцию открытия, но тогда вся эта DLLка сможет работать одновременно (от open до close) с одним модулем. Если сделать несколько копий dll с разными именами (...1 ...2 ...3), то они будут загружаться отдельно и их данные будут различаться. Ну а функции импортировать надо будет динамически (через LoadLibrary / GetProcAddress), либо функции тоже переименовать.
|
|||
Страницы 1
Тема закрыта
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4
Многоканальный телефон:+7 (495) 785-95-25
Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск