Что творится с VISAй?

Простейшие вопросы в области инженерной разработки
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Что творится с VISAй?

Сообщение Юрий »

Посылаю команду. VISA Write даёт ошибку -1073807298 (Could not perform operation because of I/O error.). Но устройство отвечает совершенно адекватно команде. Что бы это могло быть? Раньше такого не было.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение dadreamer »

А параллельно с устройством никто не работает в этот момент (окно MAX, терминал, какие-то другие утилиты)?
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение Юрий »

Ничего. Сколько уж работал и всё нормально, а сегодня - на тебе. А работал так. Родную программу модема (устройство- это модем) отключаю и работаю со своей. И всё было нормально до сегодняшнего дня. Правда, есть интереснейшая ситуация, которая была изначально и до которой ещё руки не дошли разобраться. Диспетчер устройств показывает, что модем подключён к COM4, а при работе с VISA с этим устройством общаюсь через COM5. На COM4 VISA ругается. В общем заколдун.
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение Юрий »

Чего то сразу не сообразил. При подключённом другом устройстве выдаётся ошибка -1073807246 (The resource is valid, but VISA cannot currently access it.).
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение dadreamer »

Юрий
Вы правы, это я не сообразил, что ошибки разные получаются и в данном случае причина кроется в другом. У меня такое бывало, может, раза 2-3 за всё время пользования :labview: и возникало, когда с устройством работали то через одну утилиту, то через другую. Например, сперва подключались прогой от производителя, потом её закрывали, подключались из-под :labview: , закрывали так далее. Каждая программа по своему инициализирует подключение, иногда драйвер может "переклинить". Бывало, что приходилось перезапускать :labview: .

>> Диспетчер устройств показывает, что модем подключён к COM4, а при работе с VISA с этим устройством общаюсь через COM5.
Похоже на софтовую петлю (loopback), такое обычно делается при установке виртуального COM-порта (эмулятор порта). Модемный софт такое часто делает, причём используется порт, физически отсутствующий в системе. Вот здесь мы похожий случай разбирали: http://www.labviewportal.org/viewtopic. ... 519#p73519

Советов в сложившейся ситуации у меня немного. Попробуйте поменять режим работы VISA Write / Read на синхронный (ПКМ по узлу -> Synchronous I/O Mode). Также проверьте настройки VISA Configure Serial Port, может есть какие-то расхождения в инициализации в :labview: и в программе от поставщика. В идеале можно пройтись сниффером и сравнить оба результата. Можете попробовать удалить фантомные порты из системы: https://superuser.com/questions/408976/ ... rts-in-use Хотя это, скорее всего, никак не поможет.

>> Но устройство отвечает совершенно адекватно команде.
Я правильно понимаю, что несмотря на ошибку, всё работает? Если так, то может просто игнорить?
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение Юрий »

>>Я правильно понимаю, что несмотря на ошибку, всё работает? Если так, то может просто игнорить?
Это была первая мысль выхода из ситуации. Если не удастся разобраться, то так и сделаю. А пока так и не удаётся. Спасибо за ссылки с интересом посмотрел. Не догадываюсь, скорее, что не знаю, что имеется ввиду под "сниффером".
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение dadreamer »

>> Не догадываюсь, скорее, что не знаю, что имеется ввиду под "сниффером".
Вот здесь описано на русском: https://www.aggsoft.ru/serial-port-moni ... niffer.htm В составе :labview: есть сниффер NI IO Trace (ранее назывался NI Spy), его можно использовать для прослушивания вызовов через VISA. Скорее всего, программа от вендора написана не на :labview: , поэтому придётся взять сторонний сниффер на Windows API, типа Advanced Serial Port Monitor или другой, их очень много в природе. Из бесплатных: https://docs.microsoft.com/en-us/sysint ... ds/portmon (мануал: https://www.mathworks.com/matlabcentral ... erial-port) , https://freeserialanalyzer.com/ или https://www.serialmon.com/ . Вам надо проверить только параметры инициализации порта, т.е. увидеть, какую скорость, чётность, число битов и прочее выставляет программа от производителя, и потом сравнить с тем, что задаёте на инструменте VISA Configure.
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение Юрий »

dadreamer, спасибо. Advanced Serial Port Monitor в своё время использовал очень активно - отличная программа. С самого начала хотел ей ткнуться. Но, то ли лень, то ли внутренний голос говорил, что не в этом дело. В общем всё же её запустил, выставил настройки, но результат не изменился. Но, ведь, работало то нормально, но момент изменения ни с чем не могу связать.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение dadreamer »

Ну, у меня остались только глупые советы а ля переустановить/обновить Визу согласно этой таблице: http://www.ni.com/product-documentation/53413/en/ А если в MAX сделать простейший тест "запись-чтение", такая же ошибка выскочит?
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение Юрий »

VISA переустановил, ничего не изменилось. В MAX та же ситуация - выдаёт ошибку "VISA: (Hex 0xBFFF003E) Could not perform operation because of I/O error.", но устройство даёт правильный ответ (в MAXе).
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение dadreamer »

Хотя я лично не сталкивался, но возможно, это тот редкий случай, когда VISA не совсем подходит для этого конкретного устройства. Например, драйвер как-то нестандартно написан. Попробуйте альтернативу: http://www.mhst.de/downloads.htm (под 32-битный LV) Конечно, можете игнорить ошибку и работать дальше. Просто предлагаю work-around, если есть желание и время на эксперименты.
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение Юрий »

Всё время lvserial и использовал до того, как пересел на новый 64 разрядный ноутбук с Windows 8. Жаль, что он не 64 разрядный. Пока плюнул и игнорирую именно эту ошибку и раздумываю, что, может быть, для идентификации правильного посыла лучше будет использовать количество байт, которое выдаёт VISA Write. Т.е. оно должно быть равно количеству отсылаемых байт.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение dadreamer »

>> Жаль, что он не 64 разрядный
Я имел в виду, что :labview: должен быть 32 бита, а система может быть вполне 64. Сам давно уже сижу везде под 64-битными Виндами, на некоторых спокойно уживаются разные разрядности и версии :labview: .

Однако даже если :labview: 64 бита, ситуация не совсем безвыходная. Автор lvserial.dll выложил на сайте исходники на сях, можно попробовать скомпилировать под 64 бита. У меня, правда, сейчас студии нет под рукой, надо будет ставить. И похоже, придётся маленько обёртки править: хэндл на порт передаётся везде как U32, а не U64; возможно, есть и другие косяки.
Юрий
leader
leader
Сообщения: 526
Зарегистрирован: 28 фев 2010, 18:04
Версия LabVIEW: LV2018
Благодарил (а): 10 раз
Поблагодарили: 18 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение Юрий »

Решил посмотреть что же делается с другими устройствами. Кое что сделано на STM32, но не удачно в плане размещения компонентов - USB-шный кабель не лез чисто физически. Ситуация заставила его варварски доработать. В результате с этим устройством обсуждаемой ситуации нет - работает как по маслу, без ошибок. Жаль, что совершенно не могу вспомнить, что было на тот момент, когда стала появляться ошибка.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Что творится с VISAй?

Сообщение dadreamer »

>> Автор lvserial.dll выложил на сайте исходники на сях, можно попробовать скомпилировать под 64 бита.
Скомпилил: http://labviewportal.org/viewtopic.php?p=82105#p82105 Но толком не тестировал (нет сейчас железа), открыл порт, записал данные, закрыл порт - без ошибок.
Ответить

Вернуться в «Для чайников»