Коммуникация через USB с прибором PPS3205T-3S

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Benzzopila
beginner
beginner
Сообщения: 25
Зарегистрирован: 19 июн 2014, 13:23
Версия LabVIEW: 2014
Откуда: Leoben, Austria
Контактная информация:

Коммуникация через USB с прибором PPS3205T-3S

Сообщение Benzzopila »

Здравствуйте! :help:
Есть источник питания PPS3205T-3S, выпущенный компанией Atten, надо с помощью LabVIEW программно контролировать его через USB. Библиотеки под этот источник питания я не нашел, по этому решил что общаться с ним придется через VISA USB. Порывшись в интернете я понял что для начала прибор должен видеть Measurement and Automation Explorer для того чтобы выделить VISA Resource name:
PPS3205T.jpg
Далее для связи с прибором необходимо было найти протокол коммуникации. Был найден протокол для серии Atten PPS3000:
Protocol.jpg
Вот тут заключается загвоздка. Я чувствую что не понимаю каких-то элементарных вещей, но не могу понять каких именно :dntknw:
На сколько я понимаю мне надо отсылать 24-ех байтные пакеты для управления прибором, тоесть отправить массив, а точнее кластер по скольку в протоколе имеются как численные так и стринговые значения, но ни на один вход инструментов VISA не подаются кластеры или массивы... Подскажите, пожалуйста, что можно подчитать по основам данного направления и каким образом отсылать этот пакет данных устройству. Заранее благодарен :thank:
Аватара пользователя
dadreamer

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

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение dadreamer »

Benzzopila писал(а):На сколько я понимаю мне надо отсылать 24-ех байтные пакеты для управления прибором, тоесть отправить массив, а точнее кластер по скольку в протоколе имеются как численные так и стринговые значения, но ни на один вход инструментов VISA не подаются кластеры или массивы... Подскажите, пожалуйста, что можно подчитать по основам данного направления и каким образом отсылать этот пакет данных устройству. Заранее благодарен :thank:
Ну, у вас конвертор FTDI FT232R USB UART, так что в системе должен присутствовать виртуальный COM-порт. В :labview: работаете с ним, как с обычным COM-портом, через инструменты VISA Serial (не USB), такие как VISA Configure Serial Port, VISA Read / Write, VISA Close. Инструменты чтения-записи работают со строкой, строка легко переводится в U8-массив и обратно через String To Byte Array / Byte Array To String. Почитайте/посмотрите материалы по связи через последовательный интерфейс, примеров очень много как на форумах NI, так и в рунете.
Benzzopila
beginner
beginner
Сообщения: 25
Зарегистрирован: 19 июн 2014, 13:23
Версия LabVIEW: 2014
Откуда: Leoben, Austria
Контактная информация:

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение Benzzopila »

Ну, у вас конвертор FTDI FT232R USB UART, так что в системе должен присутствовать виртуальный COM-порт. В :labview: работаете с ним, как с обычным COM-портом, через инструменты VISA Serial (не USB), такие как VISA Configure Serial Port, VISA Read / Write, VISA Close. Инструменты чтения-записи работают со строкой, строка легко переводится в U8-массив и обратно через String To Byte Array / Byte Array To String. Почитайте/посмотрите материалы по связи через последовательный интерфейс, примеров очень много как на форумах NI, так и в рунете.
Воспользовался Вашим советом получил вот такую прогу:
Прога.jpg
На сколько я понял VISA Write записывает байт за байтом, потом отсылает пакет из 24 байт на прибор... Я так понял что все надо переводить в двоичный код, по этому каждый байт, согласно протоколу что в нем должно быть, переводится в двоичный массив и отсылается на прибор, но прибор на это ни как не реагирует, подскажите в чем может быть проблема?
Аватара пользователя
dadreamer

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

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение dadreamer »

Benzzopila писал(а):Я так понял что все надо переводить в двоичный код, по этому каждый байт, согласно протоколу что в нем должно быть, переводится в двоичный массив и отсылается на прибор
Эти все преобразования, что у вас на картинке - лишние. Отправляйте уже сформированный массив U8 за один заход VISA Write. Чтобы записать каждый байт в HEX-нотации, нажмите ПКМ на любом элементе массива и выберите Visible Items -> Radix:
2017-12-18_18-22-03.jpg
2017-12-18_18-22-03.jpg (47.42 КБ) 8005 просмотров
Далее инструментом "рука" нажмите на появившемся Radix'е и выберите Hex:
2017-12-18_18-22-44.jpg
2017-12-18_18-22-44.jpg (30.32 КБ) 8005 просмотров
Теперь можете вписать в массив нужные данные. Можно поступить ещё проще - записать в порт строку без лишнего преобразования. Создайте строковую константу, нажмите на ней ПКМ -> Visible Items -> Display Style:
2017-12-18_18-23-42.jpg
2017-12-18_18-23-42.jpg (38.77 КБ) 8005 просмотров
Далее инструментом "рука" нажмите на появившемся Display Style и выберите Hex Display:
2017-12-18_18-24-41.jpg
2017-12-18_18-24-41.jpg (22.4 КБ) 8005 просмотров
Кроме того, на рисунке у вас не сконфигурирован COM-порт. Вместо VISA Open должно быть VISA Configure Serial Port и для этого :vi: должны быть заданы параметры порта, с которыми работает ваш прибор (скорость передачи, терминальный символ, паритет и т.д.). При некорректно заданных параметрах будут наблюдаться ошибки приёма-передачи и потери символов. Ещё интересно, что же такое A9CRV1PP::RAW? Если работаете с COM-портом, то должно быть написано COM 1, COM 2 и т.д.

Короче, если не использовать приём ответа от прибора, то у вас будет всего три блока: VISA Configure Serial Port -> VISA Write -> VISA Close. Задержек нигде не надо ставить. В рабочей программе при работе в цикле VISA Configure Serial Port и VISA Close должны находиться вне цикла, а VISA Write должен вызываться по какому-то условию (например, нажатие кнопки).
Benzzopila писал(а):На сколько я понял VISA Write записывает байт за байтом, потом отсылает пакет из 24 байт на прибор...
Не. Когда вызываете VISA Write, то сразу же пишете во входной буфер устройства (через драйвер ОСи и буфер контроллера порта, разумеется). Так что нет необходимости писать байт за байтом. Отправьте команду один раз и, если нужно, вызовите один раз VISA Read, чтобы получить ответ от прибора.
Benzzopila
beginner
beginner
Сообщения: 25
Зарегистрирован: 19 июн 2014, 13:23
Версия LabVIEW: 2014
Откуда: Leoben, Austria
Контактная информация:

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение Benzzopila »

Кроме того, на рисунке у вас не сконфигурирован COM-порт. Вместо VISA Open должно быть VISA Configure Serial Port и для этого :vi: должны быть заданы параметры порта, с которыми работает ваш прибор (скорость передачи, терминальный символ, паритет и т.д.). При некорректно заданных параметрах будут наблюдаться ошибки приёма-передачи и потери символов.
В том то и дело что я поначалу пользовал VISA Configure Serial Port, но он категорически отказывался работать какую бы я инфу туда не ставил(причем видно что сразу после него выходит ошибка) все значения которые я там ставил были согласно тому что написано в протоколе, а VISA Open при этом работает корректно(то есть ошибки нет).
Ещё интересно, что же такое A9CRV1PP::RAW? Если работаете с COM-портом, то должно быть написано COM 1, COM 2 и т.д.
Это часть VISA Resource Name - USB0::0x0403::0x6001::A9CRV1PP::RAW-:
PPS3205T.jpg
Аватара пользователя
dadreamer

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

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение dadreamer »

Benzzopila писал(а):В том то и дело что я поначалу пользовал VISA Configure Serial Port, но он категорически отказывался работать какую бы я инфу туда не ставил(причем видно что сразу после него выходит ошибка) все значения которые я там ставил были согласно тому что написано в протоколе, а VISA Open при этом работает корректно(то есть ошибки нет).
Потому и не работал, так как вы открываете не COM-порт, а "сырой" USB-интерфейс. Мне не совсем понятно, почему в системе не определился виртуальный COM-порт. Вы драйвер-то ставили?
http://www.ftdichip.com/Drivers/VCP.htm
Benzzopila
beginner
beginner
Сообщения: 25
Зарегистрирован: 19 июн 2014, 13:23
Версия LabVIEW: 2014
Откуда: Leoben, Austria
Контактная информация:

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение Benzzopila »

Спасибо за совет, теперь видит компорт, но все же это не устранило проблему с VISA Configure Serial Port, после него все еще выбивает ошибку, а так же за Вашим советом я переделал немного программу:
USB.jpg
Каждое значение с шестнадцетиричной системы перевел в десятеричную и записал в массив, добавил элемент VISA Read. Начало выбивать ошибку после VISA Read и все так же прибор не реагирует.
Аватара пользователя
dadreamer

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

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение dadreamer »

Benzzopila писал(а):но все же это не устранило проблему с VISA Configure Serial Port, после него все еще выбивает ошибку
Что за ошибка? Этот инструмент необходим, так как без него не получится правильно настроить сессию для связи с прибором. Задержки на вашей диаграмме лишние, т.к. при записи данные сразу же уходят на прибор, а при чтении блок VISA Read ждёт определённое время, как раз-таки задаваемое через VISA Configure Serial Port (по умолчанию 10 секунд). Если за это время данные не пришли, VISA Read выдаёт ошибку по таймауту. Можно обрабатывать событие таймаута, например, как здесь сделано. Но сначала надо разобраться, что не так с VISA Configure Serial Port.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение Blackman »

Здесь без VISA Configure Serial Port никак. ))
Вложения
Protocol.png
Benzzopila
beginner
beginner
Сообщения: 25
Зарегистрирован: 19 июн 2014, 13:23
Версия LabVIEW: 2014
Откуда: Leoben, Austria
Контактная информация:

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение Benzzopila »

Что за ошибка? Этот инструмент необходим, так как без него не получится правильно настроить сессию для связи с прибором. Задержки на вашей диаграмме лишние, т.к. при записи данные сразу же уходят на прибор, а при чтении блок VISA Read ждёт определённое время, как раз-таки задаваемое через VISA Configure Serial Port (по умолчанию 10 секунд). Если за это время данные не пришли, VISA Read выдаёт ошибку по таймауту. Можно обрабатывать событие таймаута, например, как здесь сделано. Но сначала надо разобраться, что не так с VISA Configure Serial Port.
Я Вам благодарен после того как перезагрузился комп все стало работать, с прибором нашли общий язык, без Вас вряд ли бы разобрался. Единственное что VISA Configure Serial Port не принимает data bits 9 максимально поставить можно 8, а в протоколе сказано что должно быть 9, хотя на самом приборе можно ставить как 9 так и 8... Мне интересно зачем создавать виртуальный компорт, почему не общаться с прибором непосредственно через USB. Посоветуйте, пожалуйста, что можно почитать общеобразовательное по :labview: или конкретно по данной тематике, может есть по Вашему мнению какие-то хорошие книги(можно и на англ) какие стоит прочитать. :1stplace:
Аватара пользователя
dadreamer

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

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение dadreamer »

Benzzopila писал(а):Единственное что VISA Configure Serial Port не принимает data bits 9 максимально поставить можно 8, а в протоколе сказано что должно быть 9, хотя на самом приборе можно ставить как 9 так и 8...
На картинке также написано, что можно использовать чётность/паритет (parity) = маркёр (mark), либо чётность/паритет (parity) = нет (none) и 2 стоповых бита.
Benzzopila писал(а):Мне интересно зачем создавать виртуальный компорт, почему не общаться с прибором непосредственно через USB.
Через USB драйвер FTDI общается, освобождая вас от этой трудоёмкой работы. Напрямую с USB работать стоит только в самых крайних случаях, когда нет других вариантов. Этот интерфейс довольно сложен и нужно понимать, как он работает, прежде чем налаживать связь. И даже зная азы работы USB, будет не так просто сделать то, что по последовательному протоколу делается 1-2 командами. Кроме того, мост USB-UART у вас встроен в саму "железку", так что COM-порт - "то, что доктор прописал".
Benzzopila писал(а):Посоветуйте, пожалуйста, что можно почитать общеобразовательное по :labview: или конкретно по данной тематике, может есть по Вашему мнению какие-то хорошие книги(можно и на англ) какие стоит прочитать. :1stplace:
Общая литература по :labview: - Трэвис и Блюм, ну и кое какие справочники типа Суранов. Конкретно по связи с приборами - на русском вряд ли есть, на инглише - надо искать на сайте NI. Ну, и смотрите примеры, поставляющиеся вместе с :labview: : 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.
JohnySC
interested
interested
Сообщения: 1
Зарегистрирован: 17 апр 2018, 11:31
Версия LabVIEW: 2016
Контактная информация:

Re: Коммуникация через USB с прибором PPS3205T-3S

Сообщение JohnySC »

Спасибо всем выше отписавшимся, благодаря этой информации, сделал свой вариант управления этим же прибором, кому интересно - архив с полностью проверенным VI во вложении
Вложения
БП.zip
(435.06 КБ) 201 скачивание
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»