Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Е14-140М и lview.dll - не останавливается сбор!

Вы не вошли.

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

Растопов Станислав
07.10.2009 14:55:43
#1

Гость

Е14-140М и lview.dll - не останавливается сбор!

В новой lusbapi_e154_e140_e440_e2010_labview.zip в библиотеке lview.dll функция LV_StopRealTimeAdcSampling выдает 0 (не останавливает сбор в реальном времени).При следующем старте, естественно, модуль не обнаруживается и восстановить его можно только горячей перезагрузкой. Проверено на поставляемой Oscillograph.vi - при стопе сбора больше не запускается. Оставил в программе только скелет - все равно не работает. Вернее, работает, но с вероятностью 20%, лучше бы 100% не работала - можно было бы на железо грешить. Подставление функции останова из старой e140_lview.dll не помогает. Автор DLL-ки - срочно отзовись!!!

07.10.2009 15:17:57
#2

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 136

Re: Е14-140М и lview.dll - не останавливается сбор!

LV_StopRealTimeAdcSampling возвращает 0 в единственном случае - если при сборе данных в реальном времени возникла какая - либо ошибка.

Для прояснения ситуации хотелось бы знать следующее:
1. Lusbapi.dll какой версии?
2. Параметры сбора данных при запуске   LV_StartRealTimeAdcSampling такие же как в примере?
3. Что возвращает LV_StartRealTimeAdcSampling?

Растопов Станислав
07.10.2009 16:01:46
#3

Гость

Re: Е14-140М и lview.dll - не останавливается сбор!

Спасибо за скорый ответ, может быть сейчас разберемся! 1)Lusbapi.dll - из новейшей lusbapi_e154_e140_e440_e2010_labview.zip, от 31.07.2009, размер 374765. 2) Параметры сбора - какие были, LV_StartRealTimeAdcSampling не ругается, строго 1, переполнения буфера при чтении нет, осциллограммы нормальные, без пропусков в массиве.
Что интересно: при работе той же программы с Е14-440 - стоп проходит нормально, только данные с жуткими пропусками (3- 5 разрывов в массиве при макс. частоте сбора. Очень удачные были e154_lview_library.zip - Е154 работает отлично. Почему нет версии в том же виде для Е14-140М. Или для просто 140-й сделать в dll задержку 5 мкс - чтобы с "М" можно было работать?

07.10.2009 18:17:14
#4

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 136

Re: Е14-140М и lview.dll - не останавливается сбор!

1. Насчет пропусков при работе с Е14-440 я не понял. В чем это выражается?
2. Для всех плат теперь одна универсальная библиотека.
Попробуйте E154 в режиме осциллографа.

Растопов Станислав
07.10.2009 21:32:28
#5

Гость

Re: Е14-140М и lview.dll - не останавливается сбор!

Попробовал все на другом компе. То же самое. На обоих при запуске Lgraph1 плата определяется как ОК, но тут же появляется сообщение "Floating point division by zero", на этом все стоит. В программе LV (oscillograph.vi) все запускается отлично, но только один раз. Посмотрел: при остановке цикла сбора данных программа зависает на 0 - 5 сек именно в программе LV_GetRealTimeAdcData.vi, а уже потом переходит в окно, где остановка сбора и выдает ошибку остановки. Откуда она знает, что к ней обращаются последний раз, а потом закроют. Мистика. А Lgraph1 по-началу работал с Е140М, правда, я не проверял старт-стоп в одиночном режиме, сразу закрывал. На новом компе сразу отказалась работать под Lgrapg1. И еще: при останове сбора под LV индикуатор на плате тут же перестает мигать, а программа думает еще несколько сек, а потом выдает 0 в модуле останова.
По пропускам Е440- отдельная тема, потом с ней, сейчас нужно со 140М разобраться, очень срочно. Вообще, я работаю практически со всеми вашими модулями, кроме крейтовых. С драйвером для L780/783 в свое время разобрался. А тут даже не за что дергать. Еще раз: программа для Е154 - никаких нареканий. Почему не повторить ее для Е140М?

08.10.2009 10:03:16
#6

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Е14-140М и lview.dll - не останавливается сбор!

Станислав, какая версия прошивки?

Попробуйте обновиться до http://www.lcard.ru/download/e140flash_v304.zip
О результатах, пожалуйста, напишите.

08.10.2009 10:41:26
#7

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 136

Re: Е14-140М и lview.dll - не останавливается сбор!

Станислав, что вы понимаете под остановкой?
oscillograph.vi имеет 2 кнопки: "power" и "start/stop".

Опишите подробней процесс остановки. Должно быть так. При нажатии на кнопку "stop" выполняется LV_StopRealTimeAdcSampling.vi и программа остается в цикле ожидания до нажатия кнопки "start". В цикле ожидания LV_GetRealTimeAdcData.vi естественно не вызывается.

08.10.2009 11:27:57
#8

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Е14-140М и lview.dll - не останавливается сбор!

В версиях меньше 3.03 был точно такой баг: если во время подачи команды останова не завершены запросы на чтение (сочетание overlapped read + CancelIo *после* ADC_STOP), то при определенном везении  можно повесить USB порт устройства.

Станислав, прошивайте firmware 3.04, должно спасти.

Растопов Станислав
08.10.2009 14:02:44
#9

Гость

Re: Е14-140М и lview.dll - не останавливается сбор!

По oscillograph.vi : открыл ее как была - идет сбор данных. Нажимаю на СТОР - остановилась. Нажимаю еще раз на СТАРТ - думает 0 - 3 сек и выдает Can/'t read ADC data, т.е. остановился на фазе сбора данных. Убрал из программы все лишнее, GetData в цикле, при его останове должен сразу пойти на StopRealTime... А сбой, действительно, идет от GetData, но уже без всякого сообщения.
А почему LGraph1 не запускается (выдает деление на 0 и больше на кнопки не реагирует, приходится из него выходить)? В первый-то день запустился.
По частоте сбоев: oscillograph.vi ни разу не запустился второй раз. Урезанная программа может работать раза 2 - 4, потом все равно выскакивает.

По прошивке: Плату купил несколько дней назад, думаю, там прошивка последняя. А где ее посмотреть?

Растопов Станислав
08.10.2009 14:21:16
#10

Гость

Re: Е14-140М и lview.dll - не останавливается сбор!

Прошил V304 (была302). Программы LV заработали! Правда, LGraph1 все равно ошибку деления выдает, наверное, просто надо переустановить. Сейчас буду тестировать LV.
Александр, большое Спасибо!

По буферу USB: считываю 2048 точек на канал, 50 КГц на канал,2 канала, буфер USB 2048. Частота измерений (массивов) 24 Гц - как и должно быть. Уменьшаю буфер в 2 раза - частота падает в 2 раза. При увеличении частоты до 100 КГц/кан буфер приходится увеличивать до 4096. Не хватает скорости USB1.1? А увеличение буфера приводит к увеличению физической задержки измерений?

08.10.2009 14:27:18
#11

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Е14-140М и lview.dll - не останавливается сбор!

Прошивка там на момент наладки и тестирования конкретной партии модулей. Посмотреть версию можно в той же утилите обновления, например. Она сначала пишет, что найдено на борту.

08.10.2009 14:40:04
#12

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Е14-140М и lview.dll - не останавливается сбор!

USB 1.1 больше мегабайта в секунду, 200 кГц по 2 байта на отсчет дает поток 400K. Если одновременно не идет потоковый вывод на ЦАП на максимальной скорости (800К), то USB не должна быть bottleneck/'ом. Размеры буферов, о которых идет речь, относятся к прикладной программе на labview, здесь точнее ответит Роман.

08.10.2009 14:58:27
#13

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 136

Re: Е14-140М и lview.dll - не останавливается сбор!

Станислав, о каком буфере и каких точках идет речь?
Если речь идет о oscillograph.vi, то ни размер буфера(buffer size), ни размер пакета(packet size)  менять не нужно. Назначение этих двух параметров описано в документации на виртуальные приборы.

Растопов Станислав
08.10.2009 15:55:52
#14

Гость

Re: Е14-140М и lview.dll - не останавливается сбор!

Я считываю массивы 2048 точек по 2-м каналам. Размер buffer size - чем больше, тем надежнее будет вывод без пропуска данных, он сейчас достаточно большой (на Е154 был всего 4096), он на задержку данных не влияет, если я успеваю считывать. Packet size - буфер USB - когда небольшой - USB не успевает поставлять данные в буфер программы, цикл ждет заполнения буфера - частота измерений падает.

Гораздо важнее: в Е154 мне приходилось вручную подавать массивы на обработку поочередно с половинок буфера процессора, чтобы поток был непрерывным. Сейчас это все уже внутри реализовано, т.е. с GetData поток непрерывный, правильно?

08.10.2009 16:13:50
#15

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Е14-140М и lview.dll - не останавливается сбор!

Станислав, не пойму - Вы экспериментируете с программой на LabView или пишете на C++ с использованием lusbapi.dll?

Растопов Станислав
08.10.2009 18:46:58
#16

Гость

Re: Е14-140М и lview.dll - не останавливается сбор!

Я не программист, а просто физик. Поэтому работаю только в LV (лицензионная). В С++ ничего не понимаю. Просто беру ваши dll в примерах и пишу программу на LV.

09.10.2009 10:22:05
#17

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 136

Re: Е14-140М и lview.dll - не останавливается сбор!

Станислав, опишите подробнее свою задачу и программу.
В начале топика был помянут Oscillograph.vi. Вы его используете или написали что то свое?

Растопов Станислав
09.10.2009 11:44:17
#18

Гость

Re: Е14-140М и lview.dll - не останавливается сбор!

Пишу свои программы, их уже полсотни. Главное, чтобы драйвера железа были. С вашими сейчас все нормально, спасибо.