Коммуникация через USB с прибором PPS3205T-3S
-
- beginner
- Сообщения: 25
- Зарегистрирован: 19 июн 2014, 13:23
- Версия LabVIEW: 2014
- Откуда: Leoben, Austria
- Контактная информация:
Коммуникация через USB с прибором PPS3205T-3S
Здравствуйте!
Есть источник питания PPS3205T-3S, выпущенный компанией Atten, надо с помощью LabVIEW программно контролировать его через USB. Библиотеки под этот источник питания я не нашел, по этому решил что общаться с ним придется через VISA USB. Порывшись в интернете я понял что для начала прибор должен видеть Measurement and Automation Explorer для того чтобы выделить VISA Resource name: Далее для связи с прибором необходимо было найти протокол коммуникации. Был найден протокол для серии Atten PPS3000: Вот тут заключается загвоздка. Я чувствую что не понимаю каких-то элементарных вещей, но не могу понять каких именно
На сколько я понимаю мне надо отсылать 24-ех байтные пакеты для управления прибором, тоесть отправить массив, а точнее кластер по скольку в протоколе имеются как численные так и стринговые значения, но ни на один вход инструментов VISA не подаются кластеры или массивы... Подскажите, пожалуйста, что можно подчитать по основам данного направления и каким образом отсылать этот пакет данных устройству. Заранее благодарен
Есть источник питания PPS3205T-3S, выпущенный компанией Atten, надо с помощью LabVIEW программно контролировать его через USB. Библиотеки под этот источник питания я не нашел, по этому решил что общаться с ним придется через VISA USB. Порывшись в интернете я понял что для начала прибор должен видеть Measurement and Automation Explorer для того чтобы выделить VISA Resource name: Далее для связи с прибором необходимо было найти протокол коммуникации. Был найден протокол для серии Atten PPS3000: Вот тут заключается загвоздка. Я чувствую что не понимаю каких-то элементарных вещей, но не могу понять каких именно
На сколько я понимаю мне надо отсылать 24-ех байтные пакеты для управления прибором, тоесть отправить массив, а точнее кластер по скольку в протоколе имеются как численные так и стринговые значения, но ни на один вход инструментов VISA не подаются кластеры или массивы... Подскажите, пожалуйста, что можно подчитать по основам данного направления и каким образом отсылать этот пакет данных устройству. Заранее благодарен
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Коммуникация через USB с прибором PPS3205T-3S
Ну, у вас конвертор FTDI FT232R USB UART, так что в системе должен присутствовать виртуальный COM-порт. В работаете с ним, как с обычным COM-портом, через инструменты VISA Serial (не USB), такие как VISA Configure Serial Port, VISA Read / Write, VISA Close. Инструменты чтения-записи работают со строкой, строка легко переводится в U8-массив и обратно через String To Byte Array / Byte Array To String. Почитайте/посмотрите материалы по связи через последовательный интерфейс, примеров очень много как на форумах NI, так и в рунете.Benzzopila писал(а):На сколько я понимаю мне надо отсылать 24-ех байтные пакеты для управления прибором, тоесть отправить массив, а точнее кластер по скольку в протоколе имеются как численные так и стринговые значения, но ни на один вход инструментов VISA не подаются кластеры или массивы... Подскажите, пожалуйста, что можно подчитать по основам данного направления и каким образом отсылать этот пакет данных устройству. Заранее благодарен
-
- beginner
- Сообщения: 25
- Зарегистрирован: 19 июн 2014, 13:23
- Версия LabVIEW: 2014
- Откуда: Leoben, Austria
- Контактная информация:
Re: Коммуникация через USB с прибором PPS3205T-3S
Воспользовался Вашим советом получил вот такую прогу: На сколько я понял VISA Write записывает байт за байтом, потом отсылает пакет из 24 байт на прибор... Я так понял что все надо переводить в двоичный код, по этому каждый байт, согласно протоколу что в нем должно быть, переводится в двоичный массив и отсылается на прибор, но прибор на это ни как не реагирует, подскажите в чем может быть проблема?Ну, у вас конвертор FTDI FT232R USB UART, так что в системе должен присутствовать виртуальный COM-порт. В работаете с ним, как с обычным COM-портом, через инструменты VISA Serial (не USB), такие как VISA Configure Serial Port, VISA Read / Write, VISA Close. Инструменты чтения-записи работают со строкой, строка легко переводится в U8-массив и обратно через String To Byte Array / Byte Array To String. Почитайте/посмотрите материалы по связи через последовательный интерфейс, примеров очень много как на форумах NI, так и в рунете.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Коммуникация через USB с прибором PPS3205T-3S
Эти все преобразования, что у вас на картинке - лишние. Отправляйте уже сформированный массив U8 за один заход VISA Write. Чтобы записать каждый байт в HEX-нотации, нажмите ПКМ на любом элементе массива и выберите Visible Items -> Radix: Далее инструментом "рука" нажмите на появившемся Radix'е и выберите Hex: Теперь можете вписать в массив нужные данные. Можно поступить ещё проще - записать в порт строку без лишнего преобразования. Создайте строковую константу, нажмите на ней ПКМ -> Visible Items -> Display Style: Далее инструментом "рука" нажмите на появившемся Display Style и выберите Hex Display: Кроме того, на рисунке у вас не сконфигурирован COM-порт. Вместо VISA Open должно быть VISA Configure Serial Port и для этого должны быть заданы параметры порта, с которыми работает ваш прибор (скорость передачи, терминальный символ, паритет и т.д.). При некорректно заданных параметрах будут наблюдаться ошибки приёма-передачи и потери символов. Ещё интересно, что же такое A9CRV1PP::RAW? Если работаете с COM-портом, то должно быть написано COM 1, COM 2 и т.д.Benzzopila писал(а):Я так понял что все надо переводить в двоичный код, по этому каждый байт, согласно протоколу что в нем должно быть, переводится в двоичный массив и отсылается на прибор
Короче, если не использовать приём ответа от прибора, то у вас будет всего три блока: VISA Configure Serial Port -> VISA Write -> VISA Close. Задержек нигде не надо ставить. В рабочей программе при работе в цикле VISA Configure Serial Port и VISA Close должны находиться вне цикла, а VISA Write должен вызываться по какому-то условию (например, нажатие кнопки).
Не. Когда вызываете VISA Write, то сразу же пишете во входной буфер устройства (через драйвер ОСи и буфер контроллера порта, разумеется). Так что нет необходимости писать байт за байтом. Отправьте команду один раз и, если нужно, вызовите один раз VISA Read, чтобы получить ответ от прибора.Benzzopila писал(а):На сколько я понял VISA Write записывает байт за байтом, потом отсылает пакет из 24 байт на прибор...
-
- beginner
- Сообщения: 25
- Зарегистрирован: 19 июн 2014, 13:23
- Версия LabVIEW: 2014
- Откуда: Leoben, Austria
- Контактная информация:
Re: Коммуникация через USB с прибором PPS3205T-3S
В том то и дело что я поначалу пользовал VISA Configure Serial Port, но он категорически отказывался работать какую бы я инфу туда не ставил(причем видно что сразу после него выходит ошибка) все значения которые я там ставил были согласно тому что написано в протоколе, а VISA Open при этом работает корректно(то есть ошибки нет).Кроме того, на рисунке у вас не сконфигурирован COM-порт. Вместо VISA Open должно быть VISA Configure Serial Port и для этого должны быть заданы параметры порта, с которыми работает ваш прибор (скорость передачи, терминальный символ, паритет и т.д.). При некорректно заданных параметрах будут наблюдаться ошибки приёма-передачи и потери символов.
Это часть VISA Resource Name - USB0::0x0403::0x6001::A9CRV1PP::RAW-:Ещё интересно, что же такое A9CRV1PP::RAW? Если работаете с COM-портом, то должно быть написано COM 1, COM 2 и т.д.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Коммуникация через USB с прибором PPS3205T-3S
Потому и не работал, так как вы открываете не COM-порт, а "сырой" USB-интерфейс. Мне не совсем понятно, почему в системе не определился виртуальный COM-порт. Вы драйвер-то ставили?Benzzopila писал(а):В том то и дело что я поначалу пользовал VISA Configure Serial Port, но он категорически отказывался работать какую бы я инфу туда не ставил(причем видно что сразу после него выходит ошибка) все значения которые я там ставил были согласно тому что написано в протоколе, а VISA Open при этом работает корректно(то есть ошибки нет).
http://www.ftdichip.com/Drivers/VCP.htm
-
- beginner
- Сообщения: 25
- Зарегистрирован: 19 июн 2014, 13:23
- Версия LabVIEW: 2014
- Откуда: Leoben, Austria
- Контактная информация:
Re: Коммуникация через USB с прибором PPS3205T-3S
Спасибо за совет, теперь видит компорт, но все же это не устранило проблему с VISA Configure Serial Port, после него все еще выбивает ошибку, а так же за Вашим советом я переделал немного программу:
Каждое значение с шестнадцетиричной системы перевел в десятеричную и записал в массив, добавил элемент VISA Read. Начало выбивать ошибку после VISA Read и все так же прибор не реагирует.-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Коммуникация через USB с прибором PPS3205T-3S
Что за ошибка? Этот инструмент необходим, так как без него не получится правильно настроить сессию для связи с прибором. Задержки на вашей диаграмме лишние, т.к. при записи данные сразу же уходят на прибор, а при чтении блок VISA Read ждёт определённое время, как раз-таки задаваемое через VISA Configure Serial Port (по умолчанию 10 секунд). Если за это время данные не пришли, VISA Read выдаёт ошибку по таймауту. Можно обрабатывать событие таймаута, например, как здесь сделано. Но сначала надо разобраться, что не так с VISA Configure Serial Port.Benzzopila писал(а):но все же это не устранило проблему с VISA Configure Serial Port, после него все еще выбивает ошибку
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
-
- beginner
- Сообщения: 25
- Зарегистрирован: 19 июн 2014, 13:23
- Версия LabVIEW: 2014
- Откуда: Leoben, Austria
- Контактная информация:
Re: Коммуникация через USB с прибором PPS3205T-3S
Я Вам благодарен после того как перезагрузился комп все стало работать, с прибором нашли общий язык, без Вас вряд ли бы разобрался. Единственное что VISA Configure Serial Port не принимает data bits 9 максимально поставить можно 8, а в протоколе сказано что должно быть 9, хотя на самом приборе можно ставить как 9 так и 8... Мне интересно зачем создавать виртуальный компорт, почему не общаться с прибором непосредственно через USB. Посоветуйте, пожалуйста, что можно почитать общеобразовательное по или конкретно по данной тематике, может есть по Вашему мнению какие-то хорошие книги(можно и на англ) какие стоит прочитать.Что за ошибка? Этот инструмент необходим, так как без него не получится правильно настроить сессию для связи с прибором. Задержки на вашей диаграмме лишние, т.к. при записи данные сразу же уходят на прибор, а при чтении блок VISA Read ждёт определённое время, как раз-таки задаваемое через VISA Configure Serial Port (по умолчанию 10 секунд). Если за это время данные не пришли, VISA Read выдаёт ошибку по таймауту. Можно обрабатывать событие таймаута, например, как здесь сделано. Но сначала надо разобраться, что не так с VISA Configure Serial Port.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Коммуникация через USB с прибором PPS3205T-3S
На картинке также написано, что можно использовать чётность/паритет (parity) = маркёр (mark), либо чётность/паритет (parity) = нет (none) и 2 стоповых бита.Benzzopila писал(а):Единственное что VISA Configure Serial Port не принимает data bits 9 максимально поставить можно 8, а в протоколе сказано что должно быть 9, хотя на самом приборе можно ставить как 9 так и 8...
Через USB драйвер FTDI общается, освобождая вас от этой трудоёмкой работы. Напрямую с USB работать стоит только в самых крайних случаях, когда нет других вариантов. Этот интерфейс довольно сложен и нужно понимать, как он работает, прежде чем налаживать связь. И даже зная азы работы USB, будет не так просто сделать то, что по последовательному протоколу делается 1-2 командами. Кроме того, мост USB-UART у вас встроен в саму "железку", так что COM-порт - "то, что доктор прописал".Benzzopila писал(а):Мне интересно зачем создавать виртуальный компорт, почему не общаться с прибором непосредственно через USB.
Общая литература по - Трэвис и Блюм, ну и кое какие справочники типа Суранов. Конкретно по связи с приборами - на русском вряд ли есть, на инглише - надо искать на сайте NI. Ну, и смотрите примеры, поставляющиеся вместе с : Help -> Find Examples. Конкретно по последовательному интерфейсу - C:\Program Files\National Instruments\LabVIEW 2017\examples\Instrument IO\Serial. Можете поглядеть, как работать через Визу с USB (примеры самого общего плана) - C:\Program Files\National Instruments\LabVIEW 2017\examples\Instrument IO\VISA\USB.Benzzopila писал(а):Посоветуйте, пожалуйста, что можно почитать общеобразовательное по или конкретно по данной тематике, может есть по Вашему мнению какие-то хорошие книги(можно и на англ) какие стоит прочитать.
-
- interested
- Сообщения: 1
- Зарегистрирован: 17 апр 2018, 11:31
- Версия LabVIEW: 2016
- Контактная информация:
Re: Коммуникация через USB с прибором PPS3205T-3S
Спасибо всем выше отписавшимся, благодаря этой информации, сделал свой вариант управления этим же прибором, кому интересно - архив с полностью проверенным VI во вложении
- Вложения
-
- БП.zip
- (435.06 КБ) 202 скачивания
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 9 Ответы
- 1846 Просмотры
-
Последнее сообщение BARD
-
- 4 Ответы
- 621 Просмотры
-
Последнее сообщение Borjomy_1
-
- 4 Ответы
- 482 Просмотры
-
Последнее сообщение Eugene543210
-
- 4 Ответы
- 242 Просмотры
-
Последнее сообщение Embedder74