питание USB

Простейшие вопросы в области инженерной разработки
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

питание USB

Сообщение servk »

Всем здравствуйте.
Лет 5 назад на близком форуме пытался найти возможность управления питанием USB порта в среде LabVIEW. На то время решения никто не предложил, хотя советчиков-эрудитов вокруг да около было много :) Может быть сейчас кто знает о таком решении? Подчеркиваю нужно именно средствами LabVIEW и именно выхода питания (а не просто программного отключения конфигурации). В идеале буду признателен за готовый vi лучше в версии 7.1
Аватара пользователя
dadreamer

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

Re: питание USB

Сообщение dadreamer »

Программно нельзя снять +5 В с USB-порта, по крайней мере в Windows точно. Хочешь - не хочешь, а придётся использовать аппаратное реле, например, Cleware USB Connect или аналог. См. тему http://www.labviewportal.org/viewtopic. ... are#p65065
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

dadreamer писал(а):Программно нельзя снять +5 В с USB-порта, по крайней мере в Windows точно. Хочешь - не хочешь, а придётся использовать аппаратное реле, например, Cleware USB Connect или аналог. См. тему <!-- l --><a class="postlink-local" href="http://www.labviewportal.org/viewtopic. ... 65</a><!-- l -->
сходу пример http://safelyremove.com/blog/ru/usbsafe ... -4-4-final
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: питание USB

Сообщение Vitekkz88 »

пытался найти возможность управления питанием USB порта в среде LabVIEW
Это настолько ёмкий вопрос, даже не представляете. На метод, который подойдет для любой ОС, любой мат.платы и USB-контроллеров на ней можете не рассчитывать.
Отключение видимо должно поддерживаться драйвером USB-контроллера. А вот поддерживает ли ваш контроллер такую функцию - это другой вопрос.
Дать однозначную функцию типа: указали порт и питание ON/OFF "на все случаи жизни и железа" нельзя.
Можете попробовать использовать devcon.exe в случае винды. Возможно имеет смысл ввести промежуточное устройство, что-то типа USB-hub с поддержкой программного управления питанием подключенных устройств.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

вот еще пример c файлообмена : programma_dlya_otklyucheniya_napryajeniya_na_usb.rar
короче в Виндах можно стопудово, ищу решение в среде LabView. Прошу вокруг и около не предлагать для э
кономии времени. Если конечно кто знает
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: питание USB

Сообщение IvanLis »

dadreamer писал(а):Программно нельзя снять +5 В с USB-порта, по крайней мере в Windows точно.
В Linux можно, за редким исключением: http://sysadm.pp.ua/linux/usb.html

Про Windows вот что накопал, но попробовать нет возможности:
Devcon https://technet.microsoft.com/en-us/lib ... 75588.aspx
disable
The disable operation disables the specified devices.

Example 30: Disable devices by an ID pattern.
The following command disables the USB devices on the local computer. It identifies the device by a hardware ID pattern, USB*. This pattern will match an device whose hardware ID or compatible ID begins with "USB." The command includes the /r parameter, which reboots the system if it is necessary to make the disabling effective.
Caution
Before using an ID pattern to disable a device, determine which devices will be affected. To do so, use the pattern in a display command, such as devcon status USB* or devcon hwids USB*.

devcon /r disable USB*
In response, Devcon displays the instance IDs of the USB devices and reports that they are disabled. Although the command included the /r parameter, the system did not reboot because a reboot was not required to disable the devices.
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

Vitekkz88 писал(а):
пытался найти возможность управления питанием USB порта в среде LabVIEW
Это настолько ёмкий вопрос, даже не представляете. На метод, который подойдет для любой ОС, любой мат.платы и USB-контроллеров на ней можете не рассчитывать.
Отключение видимо должно поддерживаться драйвером USB-контроллера. А вот поддерживает ли ваш контроллер такую функцию - это другой вопрос.
Дать однозначную функцию типа: указали порт и питание ON/OFF "на все случаи жизни и железа" нельзя.
Можете попробовать использовать devcon.exe в случае винды. Возможно имеет смысл ввести промежуточное устройство, что-то типа USB-hub с поддержкой программного управления питанием подключенных устройств.
Уважаю емкость и мудрость ответа, если можете прислать рабочую vi даже для одного случая из жизни железа - буду безмерно рад. Найти железо будет моя проблема
Аватара пользователя
dadreamer

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

Re: питание USB

Сообщение dadreamer »

servk, ну тогда за чем дело встало? Используйте консольный USR или стандартное извлечение. Если, конечно, у вас обычная флэшка / съемный диск.
[b][color=#008000]IvanLis[/color][/b] писал(а):Про Windows вот что накопал, но попробовать нет возможности:
Devcon https://technet.microsoft.com/en-us/lib ... 75588.aspx
Devcon, по сути, тот же диспетчер устройств в Windows, ничего более он сделать не может. В частности, для USB варианты те же, что и в GUI-редакторе: отключить или удалить сам девайс (съемный диск, например), контроллер устройства, либо весь USB-концентратор. Но все эти изменения программные. Если само устройство требует физического переподключения, то единственный вариант - извлечь его и вставить обратно в порт. Это во-многом зависит от самого устройства, если для обычных флэшек можно сделать извлечение - возврат программным методом (как реализовано в USR), то для специфических чипов (как некоторые UART-мосты) такое может не прокатить (по своему опыту знаю, были устройства, которые ни devcon'ом, ни USR не возвращались к жизни, кроме как через физическое извлечение).
Последний раз редактировалось dadreamer 13 фев 2016, 20:53, всего редактировалось 1 раз.
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

коллеги, пожалейте время и электричество. Как писал в начале - ищу решение только в среде LabVIEW, советы от эрудитов как это сделать другими приемами конечно уважаю, но для конкретно моей задачи они бесполезны. Подобное многостраничное обсуждение темы уже пережил 5 лет назад. Ну как говорится на нет и суда нет
Аватара пользователя
dadreamer

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

Re: питание USB

Сообщение dadreamer »

servk, так мы за рамки :labview: и не выходим. Я полагаю, вы в курсе об инструментах System Exec, CLFN, .NET/ActiveX. Для поставленной задачи подойдёт либо 1, либо 2, а нативных средств (увы) нет.

Вообще, способ с реле наиболее простой и работающий на 100% на любом :labview: . Можно при желании и на ISA/PCI-платах реализовать. Но надо было начинать с простого: что за устройство используется и в каком режиме предполагается им управлять. Отсюда уже можно понять, достаточно ли программного механизма извлечения или нет.
Последний раз редактировалось dadreamer 13 фев 2016, 21:05, всего редактировалось 1 раз.
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

dadreamer писал(а):servk, так мы за рамки :labview: и не выходим. Я полагаю, вы в курсе об инструментах System Exec, CLFN, .NET/ActiveX. Для поставленной задачи подойдёт либо 1, либо 2, а нативных средств (увы) нет.
замечательно. Если Вы (в отличии от меня - чайника) все знаете и это так просто, пришлите плиз посмотреть рабочую vi (надеюсь понимаете о чем речь)
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: питание USB

Сообщение Vitekkz88 »

servk писал(а):ищу решение только в среде LabVIEW
Явного решения в виде .vi НЕТ!LabVIEW не умеет этого делать без танцев с бубном. Это хотели услышать?)
Надо либо функцию писать, оборачивать её в .dll, а затем вызывать из LabVIEW. Либо пользоваться вызовом сторонних сценариев или приложений, но в рамках LabVIEW(System Exec, CLFN, .NET/ActiveX).
Вам рекомендуют второй вариант, так как он проще. Первый тоже можно сделать - но это сложнее гораздо.
Аппаратное решение: использовать переходную железку с возможностью управления питанием подключенных устройств. И даже в этом случае чтобы протащить эту функцию в LabVIEW - придётся повозиться.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
servk
junior
junior
Сообщения: 62
Зарегистрирован: 13 фев 2016, 19:35
Версия LabVIEW: 8
Контактная информация:

Re: питание USB

Сообщение servk »

Vitekkz88 писал(а):
servk писал(а):ищу решение только в среде LabVIEW
Явного решения в виде .vi НЕТ!LabVIEW не умеет этого делать без танцев с бубном. Это хотели услышать?)
Надо либо функцию писать, оборачивать её в .dll, а затем вызывать из LabVIEW. Либо пользоваться вызовом сторонних сценариев или приложений, но в рамках LabVIEW(System Exec, CLFN, .NET/ActiveX).
Вам рекомендуют второй вариант, так как он проще. Первый тоже можно сделать - но это сложнее гораздо.
Аппаратное решение: использовать переходную железку с возможностью управления питанием подключенных устройств. И даже в этом случае чтобы протащить эту функцию в LabVIEW - придётся повозиться.
Вот это я и ожидал услышать. На нет и суда нет
Аватара пользователя
dadreamer

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

Re: питание USB

Сообщение dadreamer »

servk писал(а):замечательно. Если Вы (в отличии от меня - чайника) все знаете и это так просто, пришлите плиз посмотреть рабочую vi (надеюсь понимаете о чем речь)
Полагаю, USR у вас уже установлен. Если речь об обычной флэшке, то её можно извлечь так:
2016-02-13_23-11-04.jpg

Код: Выделить всё

C:\Program Files (x86)\USB Safely Remove\usr stop -d D:

Код: Выделить всё

C:\Program Files (x86)\USB Safely Remove\usr stop -n "UFD 2.0 Silicon-Power32G USB Device"
Здесь D: и UFD 2.0 Silicon-Power32G USB Device - это съёмный диск и имя контроллера (можно посмотреть через usr list).
Аватара пользователя
Vitekkz88

Activity Silver Автор
expert
expert
Сообщения: 1100
Зарегистрирован: 21 янв 2014, 15:45
Награды: 3
Версия LabVIEW: 12,13,14
Откуда: Томск
Контактная информация:

Re: питание USB

Сообщение Vitekkz88 »

Вот это я и ожидал услышать. На нет и суда нет
Я могу в отделе у программистов-железячников поинтерисоваться, может у них есть готовая функция в тексте. Если будет что, скину в качестве примера...
Я понял вашу логику: есть порт на мамке компа, его бы питания лишить и всего дел)А когда надо - включить. Что на порте будет висеть - без разницы.
Но и Вы поймите, не всё в руках программистов) Мать тоже играет роль, usb-контроллеры тоже.
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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