Форум:

Вы не вошли.

 Поиск | Регистрация | Вход 

#1 Re: Техническая поддержка » E502 + Python » 12.02.2020 13:48:16

Евгений Рогожкин пишет:

Низкий уровень на python - звучит странно.
Когда начнете получать данные с АЦП, если у вас частота дискретизации достаточно высокая или много каналов, то можете упереться в производительность питона при парсинге потока данных.
Правда я не изучал как там льются данные по USB - работаю с АЦП по  Ethernet, возможно вам и не придется ничего парсить. Но если данные льются упакованными так же как при передаче по Ethernet, то парсить придется. Рекомендую для получения массивов данных использовать массивы numpy, а не родные питоновские контейнеры.

При использовании numpy и deque нет проблем с обработкой потока с АЦП e14-140 на максимальной частоте (200 кГц), с одновременной отрисовкой графиков. И все на не самом мощном ноутбуке. Так что сделать обработку на python в принципе возможно.

#2 Re: Техническая поддержка » Подключение E14-140M к программе на Python » 30.01.2018 17:36:55

Спасибо, получил письмо с примером!

Скомпилированный пример действительно работает как надо в 64-битном режиме на Windows 7.
wlcomp.h для 64 бит отличается в том, что для hDll используется тип данных c_ulonglong вместо c_ulong в 32-битной версии.
Изменение типа данных однако не изменило картины для программы на питоне. Все так же, на семерке не работает, в XP работает.
В итоге поставил 32-битный питон, который заработал с 32-битной wlcomp.dll под 64-битной ОС. Благодарю за помощь.

#3 Re: Техническая поддержка » Подключение E14-140M к программе на Python » 30.01.2018 12:18:51

Благодарю! Файл получил!

Теперь библиотека wlcomp64 открывается. И работает, но только на Windows XP 64-bit и только с драйвером 6.0.2.5 от 20.12.2011.
Версии драйвера для E14-140 выше 6.0.2.5 не устанавливаются на Windows XP 64-bit (проверял версии 7.0.0.5 от 20.12.2017 и 7.0.0.4 от 04.06.2015).

При попытке запуска на Windows 7 64-bit происходит следующее:
Вызов LoadAPIDLL проходит без ошибок и я получаю указатель hDll.
При вызове CallCreateInstance возвращается код ошибки 2 вместо 0 и нулевой указатель hIfc.
Под Windows XP 64-bit на этом этапе код ошибки 0 и годный указатель hIfc.

Код, который запускался на обеих системах:

from ctypes import cdll, pointer, c_ulong
wl = cdll.wlcomp64
hDll = pointer(c_ulong(wl.LoadAPIDLL('lcomp64.dll')))
hErr = pointer(c_ulong())
print 'hDll', hDll.contents.value
hIfc = pointer(c_ulong(wl.CallCreateInstance(hDll, 0, hErr)))
print 'hIfc', hIfc.contents.value
print 'hErr', hErr.contents.value

Результат запуска на Windows 7 64-bit:

hDll 4200464384
hIfc 0
hErr 2

Результат запуска на Windows XP 64-bit:

hDll 187891712
hIfc 188361808
hErr 0

При этом на семерке работает штатная программа LGRAPH без проблем, с любой версией драйвера.
Целевая платформа, для которой разрабатывается программа - Windows 7 64-bit, установить туда XP не представляется возможным.
Прошу Вашей подсказки, что же нужно сделать, чтобы использовать E14-140 через wlcomp64 под Windows 7 64-bit.

#4 Re: Техническая поддержка » Подключение E14-140M к программе на Python » 29.01.2018 10:37:31

Спасибо, посмотрел wlcomp.dll, но при попытке ее использовать на 64-битной ОС появляется ошибка:

---------------------------------------------------------------------------
WindowsError                              Traceback (most recent call last)
<ipython-input-3-3b8c505be86b> in <module>()
      1 from ctypes import *
      2 
----> 3 wl = cdll.wlcomp
      4 
      5 hDll = pointer(c_ulong(wl.LoadAPIDLL('lcomp.dll')))

c:\Progs\anaconda2\lib\ctypes\__init__.pyc in __getattr__(self, name)
    434         if name[0] == '_':
    435             raise AttributeError(name)
--> 436         dll = self._dlltype(name)
    437         setattr(self, name, dll)
    438         return dll

c:\Progs\anaconda2\lib\ctypes\__init__.pyc in __init__(self, name, mode, handle, use_errno, use_last_error)
    364 
    365         if handle is None:
--> 366             self._handle = _dlopen(self._name, mode)
    367         else:
    368             self._handle = handle

WindowsError: [Error 193] %1 не является приложением Win32

Код, вызвавший ошибку:

from ctypes import *

wl = cdll.wlcomp

hDll = pointer(c_ulong(wl.LoadAPIDLL('lcomp.dll')))
hErr = pointer(c_ulong())

print 'hDll', hDll

hIfc = pointer(c_ulong(wl.CallCreateInstance(hDll, 0, hErr)))

print 'hIfc', hIfc
print 'hErr', hErr
print wl.OpenLDevice(hIfc)

Не могли бы вы выложить для скачивания 64-битную версию wlcomp.dll ?

#5 Техническая поддержка » Подключение E14-140M к программе на Python » 15.07.2017 11:25:34

Сергей 84
Ответов: 30

Прошу помощи при подключении модуля E14-140M к программе на Python под Windows либо через lcomp.dll, либо через lusbapi.dll.

Сейчас проблема в том, что не удается правильно описать интерфейс IDaqLDevice в программе на Python.

Работающий пример, который бы открывал плату и к примеру, читал бы ее серийный номер, был бы абсолютно достаточным.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25
Факс: +7 (495) 785-95-14

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск