Страница 1 из 2

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

Добавлено: 18 янв 2020, 22:34
Юрий
Посылаю команду. VISA Write даёт ошибку -1073807298 (Could not perform operation because of I/O error.). Но устройство отвечает совершенно адекватно команде. Что бы это могло быть? Раньше такого не было.

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

Добавлено: 18 янв 2020, 23:15
dadreamer
А параллельно с устройством никто не работает в этот момент (окно MAX, терминал, какие-то другие утилиты)?

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

Добавлено: 19 янв 2020, 00:06
Юрий
Ничего. Сколько уж работал и всё нормально, а сегодня - на тебе. А работал так. Родную программу модема (устройство- это модем) отключаю и работаю со своей. И всё было нормально до сегодняшнего дня. Правда, есть интереснейшая ситуация, которая была изначально и до которой ещё руки не дошли разобраться. Диспетчер устройств показывает, что модем подключён к COM4, а при работе с VISA с этим устройством общаюсь через COM5. На COM4 VISA ругается. В общем заколдун.

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

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

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

Добавлено: 19 янв 2020, 15:21
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 Хотя это, скорее всего, никак не поможет.

>> Но устройство отвечает совершенно адекватно команде.
Я правильно понимаю, что несмотря на ошибку, всё работает? Если так, то может просто игнорить?

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

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

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

Добавлено: 21 янв 2020, 13:56
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.

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

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

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

Добавлено: 21 янв 2020, 23:14
dadreamer
Ну, у меня остались только глупые советы а ля переустановить/обновить Визу согласно этой таблице: http://www.ni.com/product-documentation/53413/en/ А если в MAX сделать простейший тест "запись-чтение", такая же ошибка выскочит?

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

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

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

Добавлено: 22 янв 2020, 23:22
dadreamer
Хотя я лично не сталкивался, но возможно, это тот редкий случай, когда VISA не совсем подходит для этого конкретного устройства. Например, драйвер как-то нестандартно написан. Попробуйте альтернативу: http://www.mhst.de/downloads.htm (под 32-битный LV) Конечно, можете игнорить ошибку и работать дальше. Просто предлагаю work-around, если есть желание и время на эксперименты.

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

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

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

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

Однако даже если :labview: 64 бита, ситуация не совсем безвыходная. Автор lvserial.dll выложил на сайте исходники на сях, можно попробовать скомпилировать под 64 бита. У меня, правда, сейчас студии нет под рукой, надо будет ставить. И похоже, придётся маленько обёртки править: хэндл на порт передаётся везде как U32, а не U64; возможно, есть и другие косяки.

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

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

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

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