MAX не может получить кадр из Ethernet камеры

Радиотехника, платы, схемы, оборудование, фото- видео- приборы, компьютеры
PAG
junior
junior
Сообщения: 66
Зарегистрирован: 27 ноя 2020, 15:51
Версия LabVIEW: 19
Благодарил (а): 13 раз
Поблагодарили: 3 раза
Контактная информация:

MAX не может получить кадр из Ethernet камеры

Сообщение PAG »

Всем привет.
Приспичило получать снимки из Ethernet-камеры Basler Ace.
Давно тому назад делал это же на Labview 2010. Теперь работаю на 2019 и нужно апгрейдить старую систему.
1. Подключил камеру к ethernet адаптеру, настроил интерфейс камеры, и проверил ее работу утилитой поставщика: отлично все работает.
2. Собрал простейшую пробную процедуру в LV: открыть - заснапить - показать картинку - закрыть.
Запускаю: дает ошибку невозможности получить картинку. Говорит камера не сконфигурена.
3. Посмотрел NiMAX: видит ли он камеру. Видит: вот она, имя корректное.
Пробую сделать снимок в нем же: ругается - говорит "не могу получить изображение. Попробуйте настроить адаптер на минимальный размер jumbo-фреймов."
Поковырял в свойствах адаптера - установил на минимум. С тем же результатом.

Где может быть затык?
Почему утилита видит "навтык", а инструменты LV - хрен большой? :(
Artem.spb

Activity Автор
professor
professor
Сообщения: 3495
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 54 раза
Поблагодарили: 185 раз
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение Artem.spb »

Тут читали? Все пункты сделаны?
PAG
junior
junior
Сообщения: 66
Зарегистрирован: 27 ноя 2020, 15:51
Версия LabVIEW: 19
Благодарил (а): 13 раз
Поблагодарили: 3 раза
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение PAG »

Артем, спасибо за полезную ссылку: не видел и не читал.
Работаю в LV2019 SP1.
VAS показывается в NI LM как 19.5 версии.
VDM у меня 2020 SP1
а вот VBAI 2010 SP1. Но им я уже давно не пользуюсь: нет необходимости. Он для начального изучения был очень полезен.
Поэтому пока не ясно: куды бежать, чтобы преодолеть ситуацию.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2244
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 30 раз
Поблагодарили: 30 раз

Re: MAX не может получить кадр из Ethernet камеры

Сообщение Borjomy_1 »

Ni MAX атрибуты камеры видит?
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 974
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 12 раз

Re: MAX не может получить кадр из Ethernet камеры

Сообщение Andrew Lunev »

Когда-то давно возился с камерами Basler. Если в сети видится камера, но изображения нет, то проблема чаще всего с Jumbo Frame. По умолчанию в Windows и большинстве роутеров отключена поддержка Jumbo Frame. Надо включить ее в свойствах адаптера. Весь видеопоток идет через Jumbo Frame.
Вложения
Jumbo.png
PAG
junior
junior
Сообщения: 66
Зарегистрирован: 27 ноя 2020, 15:51
Версия LabVIEW: 19
Благодарил (а): 13 раз
Поблагодарили: 3 раза
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение PAG »

Borjomy_1 писал(а): 29 сен 2023, 16:11 Ni MAX атрибуты камеры видит?
Да, видит нормально.
PAG
junior
junior
Сообщения: 66
Зарегистрирован: 27 ноя 2020, 15:51
Версия LabVIEW: 19
Благодарил (а): 13 раз
Поблагодарили: 3 раза
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение PAG »

Borjomy_1 писал(а): 29 сен 2023, 16:11 Ni MAX атрибуты камеры видит?
Проблема проявляется в простейшем тесте:
ImaqTest.png
Самое странное: утилита от Basler PilonViewer прекрасно получает кадры с этой камеры.
Но через LV - облом.
Протрассировал этот тестик и вижу, что ошибка возникает на первом же вызове функции из imaq.dll (imgInterfaceOpen_LV).
Т.е. enumerate прошла и имя камеры видно.
А открыть сессию не получается.
Идет ругалка:
"Error -1074397163 occurred at imgInterfaceOpen.vi
This error code is undefined.
Undefined errors might occur for a number of reasons.
For example, no one has provided a description for the code, or you might have wired a number that is not an error code to the error code input.
Additionally, undefined error codes might occur because the error relates to a third-party object, such as the operating system or ActiveX.
For these third-party errors, you might be able to obtain a description of the error by searching the Web for the error code (-1074397163) or for its hexadecimal representation (0xBFF60015)."
Что за фигня?
Basler через свои dll видит камеру и получает кадры, а NI через свои - нет :-(
Последний раз редактировалось PAG 02 окт 2023, 11:02, всего редактировалось 3 раза.
PAG
junior
junior
Сообщения: 66
Зарегистрирован: 27 ноя 2020, 15:51
Версия LabVIEW: 19
Благодарил (а): 13 раз
Поблагодарили: 3 раза
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение PAG »

У меня было подозрение, что форматы dll у NI и у драйверов Basler разные: наступал на эти грабли ранее.
У мелкомягкого они изменились где-то с появлением новых версий Винды.
Но проверил: и там и там 2019й. Несовместимости не должно быть.
Грустно то, что код ошибки - неверный аргумент функции открытия сессии.
Но она принимает единственный аргумент: имя камеры, которое я подставляю либо из EnumerateCameras либо ручками - все равно почему-то не нравится.
Но MAX видит и камеру и ее атрибуты, а снимок сделать тоже не может.
JumboFrame в адаптере разрешен и установлен на минимальный размер 2000.
Последний раз редактировалось PAG 02 окт 2023, 09:59, всего редактировалось 1 раз.
PAG
junior
junior
Сообщения: 66
Зарегистрирован: 27 ноя 2020, 15:51
Версия LabVIEW: 19
Благодарил (а): 13 раз
Поблагодарили: 3 раза
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение PAG »

Может быть моя проблема от того, что у меня все компоненты версии 2029 (или 2019.5),
а пакет Vision Development Module 2020 SP1?
Но вроде бы он не имеет отношения к захвату картинки из камеры...
Artem.spb

Activity Автор
professor
professor
Сообщения: 3495
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 54 раза
Поблагодарили: 185 раз
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение Artem.spb »

PAG писал(а): 02 окт 2023, 11:10 Может быть моя проблема от того, что у меня все компоненты версии 2029 (или 2019.5),
а пакет Vision Development Module 2020 SP1?
Но вроде бы он не имеет отношения к захвату картинки из камеры...
битность проверьте. 32/64 в большинстве случаев не дружат.
PAG
junior
junior
Сообщения: 66
Зарегистрирован: 27 ноя 2020, 15:51
Версия LabVIEW: 19
Благодарил (а): 13 раз
Поблагодарили: 3 раза
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение PAG »

Артем, они вроде бы все установлены в ProgrammFiles x86.
Но у меня на компе исторически три версии Labvew: LV2010, LV2019 32bit, LV2019 64 bit.
В 64-битной я практически ни разу не работал даже не пробовал. Ставил на всякий случай.
В основном работаю в 2019 32 бита. И 2010 использую для поддержки старых проектов.
Но я думаю, в этом подвоха нет: директории NI-IMAQ, NI-IMAQ-IO и NI-IMAQdx есть только в ветке ProgrammFiles x86. И все датируются 2019.
До недавнего времени все время работал с NI Vision под LV2010.
Неделю назад переустановил его и VisionAquisition для LV2019 для поднятия старых проектов. И вот, наступил на эти грабли.

Мне пока не ясно: как определить: из какой директории LV тянет DLL в функции-оболочке DLL?. Путь к ней обезличен.
Но, я думаю, битность тут ни при чем. Хотя, тот факт, что утилита Basler работает корректно, все же приходится пока грешить на вызов DLL из LV.
И как с этим определиться - х.з.

И тревожит тот файк, что NI MAX вроде как получает доступ к параметрам камеры. Но картину получить не может.
А в тестовом примерчике я просто пытаюсь вызвать функцию открытия сессии по имени камеры, и получаю облом...
Но это видимо - разные процессы чтения параметров и запрос картинки, работающие с разными DLL.
PAG
junior
junior
Сообщения: 66
Зарегистрирован: 27 ноя 2020, 15:51
Версия LabVIEW: 19
Благодарил (а): 13 раз
Поблагодарили: 3 раза
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение PAG »

С NI MAX договорился!
Я неверно понимал, что ему мешает. Оказывается размер буфера в сетевом адптере надо было увеличивать а не уменьшать, хотя в его рекомендациях присутствовала фраза об уменьшении буфера.
Т.е. в нем картинку я получаю, и в VisuualAssistant тоже получаю!
А вот в своем тестике из трех кубиков - облом с теми же ругалками. :-(.
К сожалению VA не генерит код для захвата картинки.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3495
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 54 раза
Поблагодарили: 185 раз
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение Artem.spb »

PAG писал(а): 02 окт 2023, 14:45 К сожалению VA не генерит код для захвата картинки.
Как так? Он же для этого и придуман
PAG
junior
junior
Сообщения: 66
Зарегистрирован: 27 ноя 2020, 15:51
Версия LabVIEW: 19
Благодарил (а): 13 раз
Поблагодарили: 3 раза
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение PAG »

Artem.spb писал(а): 02 окт 2023, 14:52
PAG писал(а): 02 окт 2023, 14:45 К сожалению VA не генерит код для захвата картинки.
Как так? Он же для этого и придуман
А вот так! Он работает исключительно с готовыми картинками. Он придуман не для захвата картинок, а для подбора алгоритма и параметров их обработки. Источник картинок ему по-барабану.
В нем есть инструмент захвата картинок из камеры, но результат не может быть помещен в генерируемый код, а только в собственный браузер, и дальше уже получается типа такого:
В прошлых проектах 10-летней давности я тоже имел какие-то грабли на этот счет. Но тогда, за неимением времени, просто слепил свою DLL на базе SDK от Basler-а и сам захватывал картинку и писал в bmp-файл.
В этом обновлении хотел сделать все едино в LV, но и все равно без граблей не обошлось. :-(
Вложения
VA_camTest.png
PAG
junior
junior
Сообщения: 66
Зарегистрирован: 27 ноя 2020, 15:51
Версия LabVIEW: 19
Благодарил (а): 13 раз
Поблагодарили: 3 раза
Контактная информация:

Re: MAX не может получить кадр из Ethernet камеры

Сообщение PAG »

Коллеги!
Нашел в библиотеке LV express-vi для захвата изображения из камеры.
Эта штука конфигурируется исключительно в диалоговом режиме (указать камеру, сколько штук кадров и тп).
НО ОНО РАБОТАЕТ! Показывает картинку из камеры.
Но мне надо конфигурить вручную :-(
И она мне неудобна. Что в самом первом примере у меня не так?
Почему я не могу открыть сессию по имени камеры, а эта штука чертова, когда я внутри все данные веду и потом запускаю - нормально захватывает и выводит картинку,
Что я делаю (или не делаю) нет так, когда все вручную? Может нужны предварительно еще какие-то манипуляции?
Ведь у меня облом - на самом первом кубике - IMAQ_Init.vi у которого единственный параметр: имя камеры.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Железо»