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

Простейшие вопросы в области инженерной разработки

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

Postby dakishi on 14 Feb 2020, 11:22

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

Как сделать так, чтобы не я занимался определением порта устройства при запуске программы VI, а сам VI его определял автоматически (например, подцепляя параметры устройства из файла и по ним производя поиск) ?
dakishi
junior
junior
 
Posts: 67
Joined: 05 Sep 2019, 21:01
LabVIEW Version: 2016
Karma: 0

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

Postby dadreamer on 14 Feb 2020, 12:04

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

Простое решение: viewtopic.php?p=73401#p73401 :vi: : viewtopic.php?p=73514#p73514 Для учёбной задачи некоторыми нюансами этого метода можно пренебречь.
Альтернативные варианты (если важна надёжность):
viewtopic.php?p=73437#p73437
viewtopic.php?p=73465#p73465
viewtopic.php?p=73472#p73472
Перед использованием рекомендую полностью прочитать тему.
User avatar
dadreamer
professor
professor
 
Posts: 3418
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 858
I/O VIP vision internet

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

Postby dakishi on 21 Feb 2020, 19:54

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

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

Спасибо за полезные ссылки, посмотрел. Хотел в простом случае написать программу и понять, как работает сама VISA F - но получилась ошибка.
У меня два COM устройства различающиеся только port description (то самое имя в диспетчере) и bound rate. У первого bound rate = 9600, у второго 115200. (См. рисунки).
Но, при использовании VISA F - она оба находит по bound rate == 9600, при 115200 выдает ошибку. Можете сказать, в чем причина ?
Attachments
NI MAX 1.JPG
NI MAX 2.JPG
VISA F.JPG
test.vi
(8.83 KiB) Downloaded 2 times
dakishi
junior
junior
 
Posts: 67
Joined: 05 Sep 2019, 21:01
LabVIEW Version: 2016
Karma: 0

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

Postby dadreamer on 21 Feb 2020, 20:19

>> Но, при использовании VISA F - она оба находит по bound rate == 9600, при 115200 выдает ошибку. Можете сказать, в чем причина ?
Не смогу на 100% сказать, т.к. этим способом предпочитаю не пользоваться по причинам, изложенным в теме. Попробуйте поставить search mode = Include All Aliases. Обе скорости вы выставляли через MAX, потом проверяли в программе? MAX записывает эти данные в настроечный файл, VISA Find потом читает этот файл. Если по-прежнему не будет находить, значит, на скорость полагаться нельзя. По идее этот параметр не является стабильным, в отличие от идентификатора, потому что каждая программа, работающая с портом, выставляет собственные настройки. Скорее всего, MAX должен помнить собственные настройки, просто по какой-то причине они не установились. У меня дома нет NI-VISA, поставить и проверить пока не могу.
User avatar
dadreamer
professor
professor
 
Posts: 3418
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 858
I/O VIP vision internet

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

Postby dakishi on 21 Feb 2020, 21:13

[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 - т.е. название в диспетчере задач в качестве надежного определителя ?
dakishi
junior
junior
 
Posts: 67
Joined: 05 Sep 2019, 21:01
LabVIEW Version: 2016
Karma: 0

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

Postby dadreamer on Yesterday, 09:46

>> Вы имеете ввиду Port description в NI MAX - т.е. название в диспетчере задач в качестве надежного определителя ?
Да, или наименование из диспетчера устройств (Interface Information:Interface Description может отличаться от наименования порта из диспетчера). При одном условии - одновременно не должно быть подключено более одной аналогичной железки. Иначе придётся думать, как их различать между собой.
User avatar
dadreamer
professor
professor
 
Posts: 3418
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 858
I/O VIP vision internet

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

Postby dakishi on Yesterday, 12:08

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

Можете подсказать, что можно сделать с тем, что все названия на русском языке (названия в VI, после исполнения вывод port description типа "устройство с последовательным интерфейсом USB") выводятся как абракадабра ?
Attachments
Altertative to VISA F.JPG
dakishi
junior
junior
 
Posts: 67
Joined: 05 Sep 2019, 21:01
LabVIEW Version: 2016
Karma: 0

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

Postby dadreamer on Yesterday, 12:44

dakishi, я бы порекомендовал вот это: viewtopic.php?p=64602#p64602 , но есть некоторые сомнения. У вас локаль в системе русская стоит? Запостите строку с кракозябрами сюда, чтобы я её мог скопировать. И назовите :vi: , который использовали.
User avatar
dadreamer
professor
professor
 
Posts: 3418
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 858
I/O VIP vision internet

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

Postby dakishi on Yesterday, 13:49

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

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

VI Ваш - ListCOMs
Attachments
List COMs - 2 (3).vi
(58.22 KiB) Downloaded 1 time
dakishi
junior
junior
 
Posts: 67
Joined: 05 Sep 2019, 21:01
LabVIEW Version: 2016
Karma: 0

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

Postby dadreamer on Yesterday, 14:27

>> Язык ОС - англ, как и 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.
User avatar
dadreamer
professor
professor
 
Posts: 3418
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 858
I/O VIP vision internet

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

Postby dakishi on Yesterday, 17:34

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

Так вот она и через чистый VISA тоже самое делает.
Attachments
FISA F Krakazabra.JPG
dakishi
junior
junior
 
Posts: 67
Joined: 05 Sep 2019, 21:01
LabVIEW Version: 2016
Karma: 0

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

Postby dadreamer on Yesterday, 19:57

Просто на скриншоте выше по-русски было написано описание порта.
NI MAX 1.JPG
В таком случае не остаётся других вариантов, кроме предложенного. Я не знаю, как заставить систему понимать русский, если он не используется для локализации.
User avatar
dadreamer
professor
professor
 
Posts: 3418
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 858
I/O VIP vision internet


Return to Для чайников

Who is online

Users browsing this forum: Yandex and 17 guests

cron