Автоматическое определение порта устройства с VISA

Простейшие вопросы в области инженерной разработки
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Автоматическое определение порта устройства с VISA

Сообщение dakishi »

Добрый день!
У меня есть USB устройство с определенными характеристиками (такие как скорость передачи данных, ширина отдельного пакета - всё в соответствии протоколом общения с устройством) и название устройства под которым видит его система (Windows 10). Распознается устройство как COM-порт.

Как сделать так, чтобы не я занимался определением порта устройства при запуске программы VI, а сам VI его определял автоматически (например, подцепляя параметры устройства из файла и по ним производя поиск) ?
Аватара пользователя
dadreamer

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

Re: Автоматическое определение порта устройства с VISA

Сообщение dadreamer »

Нужно получить номер порта по его имени из Диспетчера устройств?
Если так, то...

Простое решение: http://labviewportal.org/viewtopic.php?p=73401#p73401 :vi: : http://labviewportal.org/viewtopic.php?p=73514#p73514 Для учёбной задачи некоторыми нюансами этого метода можно пренебречь.
Альтернативные варианты (если важна надёжность):
http://labviewportal.org/viewtopic.php?p=73437#p73437
http://labviewportal.org/viewtopic.php?p=73465#p73465
http://labviewportal.org/viewtopic.php?p=73472#p73472
Перед использованием рекомендую полностью прочитать тему.
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Автоматическое определение порта устройства с VISA

Сообщение dakishi »

[quote=="dadreamer"]Нужно получить номер порта по его имени из Диспетчера устройств?
Если так, то...

Простое решение: http://labviewportal.org/viewtopic.php?p=73401#p73401 :vi: : http://labviewportal.org/viewtopic.php?p=73514#p73514 Для учёбной задачи некоторыми нюансами этого метода можно пренебречь.
Альтернативные варианты (если важна надёжность):
http://labviewportal.org/viewtopic.php?p=73437#p73437
http://labviewportal.org/viewtopic.php?p=73465#p73465
http://labviewportal.org/viewtopic.php?p=73472#p73472
Перед использованием рекомендую полностью прочитать тему.[/quote]

Спасибо за полезные ссылки, посмотрел. Хотел в простом случае написать программу и понять, как работает сама VISA F - но получилась ошибка.
У меня два COM устройства различающиеся только port description (то самое имя в диспетчере) и bound rate. У первого bound rate = 9600, у второго 115200. (См. рисунки).
Но, при использовании VISA F - она оба находит по bound rate == 9600, при 115200 выдает ошибку. Можете сказать, в чем причина ?
Вложения
NI MAX 1.JPG
NI MAX 2.JPG
VISA F.JPG
test.vi
(8.83 КБ) 129 скачиваний
Аватара пользователя
dadreamer

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

Re: Автоматическое определение порта устройства с VISA

Сообщение dadreamer »

>> Но, при использовании VISA F - она оба находит по bound rate == 9600, при 115200 выдает ошибку. Можете сказать, в чем причина ?
Не смогу на 100% сказать, т.к. этим способом предпочитаю не пользоваться по причинам, изложенным в теме. Попробуйте поставить search mode = Include All Aliases. Обе скорости вы выставляли через MAX, потом проверяли в программе? MAX записывает эти данные в настроечный файл, VISA Find потом читает этот файл. Если по-прежнему не будет находить, значит, на скорость полагаться нельзя. По идее этот параметр не является стабильным, в отличие от идентификатора, потому что каждая программа, работающая с портом, выставляет собственные настройки. Скорее всего, MAX должен помнить собственные настройки, просто по какой-то причине они не установились. У меня дома нет NI-VISA, поставить и проверить пока не могу.
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Автоматическое определение порта устройства с VISA

Сообщение dakishi »

[quote=="dadreamer"]>> Но, при использовании VISA F - она оба находит по bound rate == 9600, при 115200 выдает ошибку. Можете сказать, в чем причина ?
Не смогу на 100% сказать, т.к. этим способом предпочитаю не пользоваться по причинам, изложенным в теме. Попробуйте поставить search mode = Include All Aliases. Обе скорости вы выставляли через MAX, потом проверяли в программе? MAX записывает эти данные в настроечный файл, VISA Find потом читает этот файл. Если по-прежнему не будет находить, значит, на скорость полагаться нельзя. По идее этот параметр не является стабильным, в отличие от идентификатора, потому что каждая программа, работающая с портом, выставляет собственные настройки. Скорее всего, MAX должен помнить собственные настройки, просто по какой-то причине они не установились. У меня дома нет NI-VISA, поставить и проверить пока не могу.[/quote]

[quote=="dadreamer"]
Если по-прежнему не будет находить, значит, на скорость полагаться нельзя.[/quote]
Теперь VISA F выдает оба COM устройства (т.е и с bound rate = 9600).

>> идентификатор
Вы имеете ввиду Port description в NI MAX - т.е. название в диспетчере задач в качестве надежного определителя ?
Аватара пользователя
dadreamer

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

Re: Автоматическое определение порта устройства с VISA

Сообщение dadreamer »

>> Вы имеете ввиду Port description в NI MAX - т.е. название в диспетчере задач в качестве надежного определителя ?
Да, или наименование из диспетчера устройств (Interface Information:Interface Description может отличаться от наименования порта из диспетчера). При одном условии - одновременно не должно быть подключено более одной аналогичной железки. Иначе придётся думать, как их различать между собой.
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Автоматическое определение порта устройства с VISA

Сообщение dakishi »

[quote=="dadreamer"]
Да, или наименование из диспетчера устройств (Interface Information:Interface Description может отличаться от наименования порта из диспетчера). При одном условии - одновременно не должно быть подключено более одной аналогичной железки. Иначе придётся думать, как их различать между собой.[/quote]

Можете подсказать, что можно сделать с тем, что все названия на русском языке (названия в VI, после исполнения вывод port description типа "устройство с последовательным интерфейсом USB") выводятся как абракадабра ?
Вложения
Altertative to VISA F.JPG
Аватара пользователя
dadreamer

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

Re: Автоматическое определение порта устройства с VISA

Сообщение dadreamer »

dakishi, я бы порекомендовал вот это: http://labviewportal.org/viewtopic.php?p=64602#p64602 , но есть некоторые сомнения. У вас локаль в системе русская стоит? Запостите строку с кракозябрами сюда, чтобы я её мог скопировать. И назовите :vi: , который использовали.
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Автоматическое определение порта устройства с VISA

Сообщение dakishi »

[quote=="dadreamer"]dakishi, я бы порекомендовал вот это: http://labviewportal.org/viewtopic.php?p=64602#p64602 , но есть некоторые сомнения. У вас локаль в системе русская стоит? Запостите строку с кракозябрами сюда, чтобы я её мог скопировать. И назовите :vi: , который использовали.[/quote]

Язык ОС - англ, как и LabVIew.
Строка копируется сюда нормально: Устройство с последовательным интерфейсом USB (COM3)

VI Ваш - ListCOMs
Вложения
List COMs - 2 (3).vi
(58.22 КБ) 119 скачиваний
Аватара пользователя
dadreamer

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

Re: Автоматическое определение порта устройства с VISA

Сообщение dadreamer »

>> Язык ОС - англ, как и LabVIew.
В этом и проблема. Хотите поддержку русского языка - меняйте локаль на русскую.
https://www.isunshare.com/windows-10/ch ... ws-10.html
2020-02-22_16-25-03.jpg
У меня вот так отображается:
2020-02-22_16-23-40.jpg
Или работайте только с VISA.
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Автоматическое определение порта устройства с VISA

Сообщение dakishi »

[quote=="dadreamer"]
Или работайте только с VISA.[/quote]

Так вот она и через чистый VISA тоже самое делает.
Вложения
FISA F Krakazabra.JPG
Аватара пользователя
dadreamer

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

Re: Автоматическое определение порта устройства с VISA

Сообщение dadreamer »

Просто на скриншоте выше по-русски было написано описание порта.
NI MAX 1.JPG
В таком случае не остаётся других вариантов, кроме предложенного. Я не знаю, как заставить систему понимать русский, если он не используется для локализации.
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Автоматическое определение порта устройства с VISA

Сообщение dakishi »

[quote=="dadreamer"]Просто на скриншоте выше по-русски было написано описание порта.
NI MAX 1.JPG
В таком случае не остаётся других вариантов, кроме предложенного. Я не знаю, как заставить систему понимать русский, если он не используется для локализации.[/quote]

Хорошо, спасибо за ответы! Возможно, можно просто скопировать абракадабру для поиска - это тоже символы, идентификаторы машины, просто в другой кодировке.
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Автоматическое определение порта устройства с VISA

Сообщение dakishi »

Вопрос такой еще возник. Если VISA F выдает строку с описанием ресурса, то при подаче на VISA O выполняется неявное преобразование типов. Как в явном виде преобразовать String в Visa resource name ?
dakishi
assistant
assistant
Сообщения: 120
Зарегистрирован: 05 сен 2019, 21:01
Версия LabVIEW: 2019
Контактная информация:

Re: Автоматическое определение порта устройства с VISA

Сообщение dakishi »

И, также я провел тест. Открыл с помощью VISA O ресурс на время с помощью вспомогательного VI и оставил работать. Этот же ресурс, пока этот VI работает, я открыл VISA O и получил дескриптор ресурса (программа поиска имён представленная мною перед вашем последним сообщением). Выходит - я могу получить доступ к ресурсу пока сессия для него открыта в другом месте т.е. прибор занят ?

Если убрать в property node (Intf Inst Name) игнорирование ошибок (помечено красным в углу как ?!) - будет то же самое.
Вложения
FISA F Simultaneosly access.JPG
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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