USB3000 & LabView

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3486
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: USB3000 & LabView

Сообщение dadreamer »

Agat писал(а):Прошелся в ReadData0 по шагам - ошибка возникает в блоке StopRead...
Как-то уж слишком мало информации выдаёт 10-ка, даже имя сбойного модуля не написано. Два варианта: косяк в обёртках/dll или косяк в драйвере. Ошибка возникает сразу на первом блоке StopRead.vi? (5-й по счёту, идёт после SetInputPars.vi). В самом конце программы есть аналогичный StopRead.vi, стоит предпоследним, дальше ReleaseInstance.vi.
- В 32-битном :labview: на 32-битных библиотеках описанная ошибка возникает?
- Что выводится в консоль при запуске примера ReadData0 на отладочных (DBG) библиотеках? Скиньте, плиз, скрин или текст, если успеете скопировать (Пометить/Ctrl+M -> Enter).
- Покажите ещё панель ReadData0 целиком; желательно ещё глянуть панель StopRead после выполнения, чтобы проверить содержимое кластера ViStatusOut.

Agat
beginner
beginner
Сообщения: 28
Зарегистрирован: 16 янв 2019, 09:22
Репутация: 0
Версия LabVIEW: 18
Контактная информация:

Re: USB3000 & LabView

Сообщение Agat »

dadreamer писал(а):
Agat писал(а):Прошелся в ReadData0 по шагам - ошибка возникает в блоке StopRead...
Как-то уж слишком мало информации выдаёт 10-ка, даже имя сбойного модуля не написано. Два варианта: косяк в обёртках/dll или косяк в драйвере. Ошибка возникает сразу на первом блоке StopRead.vi? (5-й по счёту, идёт после SetInputPars.vi). В самом конце программы есть аналогичный StopRead.vi, стоит предпоследним, дальше ReleaseInstance.vi.
- В 32-битном :labview: на 32-битных библиотеках описанная ошибка возникает?
- Что выводится в консоль при запуске примера ReadData0 на отладочных (DBG) библиотеках? Скиньте, плиз, скрин или текст, если успеете скопировать (Пометить/Ctrl+M -> Enter).
- Покажите ещё панель ReadData0 целиком; желательно ещё глянуть панель StopRead после выполнения, чтобы проверить содержимое кластера ViStatusOut.
Да, ошибка в первом блоке StopRead.
В 32-битном labview ошибок нет, но результата выполнения тоже нет (
20190218_105552.JPG
Как посмотреть, что выводится в консоль?
ReadData0 целиком
Панель ReadData0.JPG
StopRead после выполнения не глянуть ) в момент ее выполнения вылетает синий экран..
Панель StopRead.JPG
следующий шаг будет синий экран..

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3486
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: USB3000 & LabView

Сообщение dadreamer »

Agat писал(а):В 32-битном labview ошибок нет, но результата выполнения тоже нет (
InitModule не проходит. Видите, лампочка напротив не горит? Возможно, опять CreateFile не выполняется. А 32-битные DLL'ки вы брали родные или из моего поста в этой теме? Если родные, то они не заработают на ОСях начиная с Win 8 и выше.
Agat писал(а):Как посмотреть, что выводится в консоль?
Замените Rtusbapi.dll и wrRtusbapi.dll на Debug-версии и запустите пример ReadData0.vi. Версии выложены на первой странице этой темы с пометкой DBG. При открытии :vi: отобразится окно консоли, куда будет выводиться информация о вызываемых функциях. Окно не закрывайте, :labview: закроет его сам, когда вы закроете основной :vi: . Мне нужен текст из консоли после выполнения ReadData0 (до StopRead, понятное дело). Как скопировать - ПКМ на заголовке окна -> Изменить -> Пометить -> выделяете мышью текст -> нажимаете Enter -> текст скопирован в буфер обмена.
2019-02-18_10-18-48.jpg
Agat писал(а):ReadData0 целиком
Забыл уточнить - после выполнения (или точнее, в процессе выполнения), пока система не ушла в БСОД. Как обычно, на StopRead прервите выполнение и заскриньте панель ReadData0.

Более отвлечённый вопрос - а на младших ОС (7 или XP) удалось получить какой-нибудь вменяемый ответ? Могли бы вы подставить 32-битные библиотеки из этой темы на 7/XP и проверить?.. Чтобы определиться, что не так всё-таки с новым вариантом библиотек.

Agat
beginner
beginner
Сообщения: 28
Зарегистрирован: 16 янв 2019, 09:22
Репутация: 0
Версия LabVIEW: 18
Контактная информация:

Re: USB3000 & LabView

Сообщение Agat »

dadreamer писал(а): А 32-битные DLL'ки вы брали родные или из моего поста в этой теме?
DLL'ки ваши.
dadreamer писал(а): Замените Rtusbapi.dll и wrRtusbapi.dll на Debug-версии и запустите пример ReadData0.vi. Версии выложены на первой странице этой темы с пометкой DBG. При открытии :vi: отобразится окно консоли, куда будет выводиться информация о вызываемых функциях.
консоль.txt
(15.38 КБ) 52 скачивания
dadreamer писал(а): Забыл уточнить - после выполнения (или точнее, в процессе выполнения), пока система не ушла в БСОД. Как обычно, на StopRead прервите выполнение и заскриньте панель ReadData0.
Панель.jpg
dadreamer писал(а): Более отвлечённый вопрос - а на младших ОС (7 или XP) удалось получить какой-нибудь вменяемый ответ? Могли бы вы подставить 32-битные библиотеки из этой темы на 7/XP и проверить?.. Чтобы определиться, что не так всё-таки с новым вариантом библиотек.
На ХР завтра попробую.

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3486
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: USB3000 & LabView

Сообщение dadreamer »

Agat, по консоли и скриншотам - ошибок никаких нет. Теперь надо как-то поймать вывод после захода в StopRead, т.е. всё, что будет написано после строки IDevPtr->SET_INPUT_PARS returned TRUE (OK). Полагаю, есть небольшое время между вызовом этого блока и крахом системы?.. Можно успеть сфоткать на фотоаппарат, при желании. Или нет?
По варианту 32 бит - нужно так же читать отладку, без неё не могу больше ничего сказать. Вывод там должен быть не такой большой, т.к. до InitModule дело не доходит.

Agat
beginner
beginner
Сообщения: 28
Зарегистрирован: 16 янв 2019, 09:22
Репутация: 0
Версия LabVIEW: 18
Контактная информация:

Re: USB3000 & LabView

Сообщение Agat »

dadreamer писал(а):Agat, по консоли и скриншотам - ошибок никаких нет. Теперь надо как-то поймать вывод после захода в StopRead, т.е. всё, что будет написано после строки IDevPtr->SET_INPUT_PARS returned TRUE (OK). Полагаю, есть небольшое время между вызовом этого блока и крахом системы?.. Можно успеть сфоткать на фотоаппарат, при желании. Или нет?
По варианту 32 бит - нужно так же читать отладку, без неё не могу больше ничего сказать. Вывод там должен быть не такой большой, т.к. до InitModule дело не доходит.
Лог консоли, который я скинул - это за один шаг до ошибки, после нажатия следующего шага labview замерает на несколько секунд и в логе ничего не менятся! после синий экран.
В 32-битной версии заработало!!! Изначально с модулями напутал.

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3486
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: USB3000 & LabView

Сообщение dadreamer »

Agat писал(а):В 32-битной версии заработало!!! Изначально с модулями напутал.
32-битные DLL из этой темы, 32-битный :labview: на Windows 10?

Agat
beginner
beginner
Сообщения: 28
Зарегистрирован: 16 янв 2019, 09:22
Репутация: 0
Версия LabVIEW: 18
Контактная информация:

Re: USB3000 & LabView

Сообщение Agat »

dadreamer писал(а):
Agat писал(а):В 32-битной версии заработало!!! Изначально с модулями напутал.
32-битные DLL из этой темы, 32-битный :labview: на Windows 10?
Так точно.

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3486
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: USB3000 & LabView

Сообщение dadreamer »

У меня такое ощущение, что уже в GetInputPars стэк портится, а когда программа в StopRead входит, :labview: просто падает с исключением. В StopRead всего одна функция вызывается, ничего "криминального" не должно быть. Ну, для 100%-ной дефектовки можно провести тест вот на такой программе:
ReadData-TEST.vi
lv2018
(21.27 КБ) 43 скачивания
Как видно из диаграммы, активированы три :vi: : CreateInstance, InitModule и ReleaseInstance. Три прочих :vi: - GetInputPars, SetInputPars и StopRead - отключены. Предлагаю выполнить серию запусков с фиксацией результата:
1. Исходное состояние, как есть - всё должно быть ок;
2. CreateInstance, InitModule, StopRead и ReleaseInstance;
3. CreateInstance, InitModule, GetInputPars и ReleaseInstance;
4. CreateInstance, InitModule, SetInputPars и ReleaseInstance;
5. CreateInstance, InitModule, GetInputPars, SetInputPars и ReleaseInstance.
Что происходит, когда все 6 :vi: работают, мы уже знаем. После каждого запуска желательно делать так: File -> Close All. Зачем? Чтобы явно вызвать падение :labview: , если память порушена (при закрытии :vi: :labview: выполняет очистку памяти и, "наступая на грабли" в стэке, легко падает, тогда как при открытом :vi: вылет может произойти далеко не сразу).

Спасибо, что всё ещё продолжаете заниматься этим нелёгким делом. Надеюсь, допилим-таки 64-битные либы до рабочего состояния. :wink:

Agat
beginner
beginner
Сообщения: 28
Зарегистрирован: 16 янв 2019, 09:22
Репутация: 0
Версия LabVIEW: 18
Контактная информация:

Re: USB3000 & LabView

Сообщение Agat »

dadreamer писал(а):Спасибо, что всё ещё продолжаете заниматься этим нелёгким делом. Надеюсь, допилим-таки 64-битные либы до рабочего состояния. :wink:
Мне спасибо? Это вам спасибо!
Ошибка возникает только в 5-ом варинте...
CreateInstance,InitModul,ReleaseInstance.txt
(9.06 КБ) 46 скачиваний
CreateInstance,InitModul,GetInputPars,ReleaseInstance.txt
(15.33 КБ) 48 скачиваний
CreateInstance,InitModul,SetInputPars,ReleaseInstance.txt
(10.16 КБ) 50 скачиваний
CreateInstance,InitModul,StopRead,ReleaseInstance.txt
(9.86 КБ) 49 скачиваний

Agat
beginner
beginner
Сообщения: 28
Зарегистрирован: 16 янв 2019, 09:22
Репутация: 0
Версия LabVIEW: 18
Контактная информация:

Re: USB3000 & LabView

Сообщение Agat »

Прошелся по шагам в конфигурации 5. CreateInstance, InitModule, GetInputPars, SetInputPars и ReleaseInstance.
Ошибка возникла при выполнении ReleaseInstance

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3486
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: USB3000 & LabView

Сообщение dadreamer »

Нашёл несколько однотипных "косяков" в коде GetInputPars, SetInputPars и ReleaseInstance. Не совсем корректно выполнялась работа с памятью для некоторых структур. Профиксил :vi: , перезалил - http://labviewportal.ru/viewtopic.php?p=80045#p80045 Прошу проверить и отписать результат.

Agat
beginner
beginner
Сообщения: 28
Зарегистрирован: 16 янв 2019, 09:22
Репутация: 0
Версия LabVIEW: 18
Контактная информация:

Re: USB3000 & LabView

Сообщение Agat »

dadreamer писал(а):Нашёл несколько однотипных "косяков" в коде GetInputPars, SetInputPars и ReleaseInstance. Не совсем корректно выполнялась работа с памятью для некоторых структур. Профиксил :vi: , перезалил - http://labviewportal.ru/viewtopic.php?p=80045#p80045 Прошу проверить и отписать результат.
Ура Работает!!! :1stplace: а как консоль убрать?
Спасибо вам большое! Надеюсь это понадобится не только мне.

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3486
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: USB3000 & LabView

Сообщение dadreamer »

Agat писал(а):Ура Работает!!! :1stplace: а как консоль убрать?
Замените Rtusbapi.dll и wrRtusbapi.dll на обычные версии (без пометки DBG).
Agat писал(а):Спасибо вам большое! Надеюсь это понадобится не только мне.
Пожалуйста! :wink: Я тоже на это надеюсь. :)

P.S.: если нужны исходники обёрток или основных библиотек, дайте знать.

Ответить

Вернуться в «Коммуникация с приборами»