NI VISA USB (RS-232 на CH340) Ошибка в read

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Granados
interested
interested
Сообщения: 7
Зарегистрирован: 27 май 2018, 15:32
Версия LabVIEW: 2013
Контактная информация:

NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Granados »

Всем добрый вечер.
В рамках своего дипломного проекта пришлось заниматься тем, чем некогда раньше не занимался, а именно разработать систему, которая будет считывать данные с аналогового интерфейса, подключенного к ультразвуковому расходомеру.
Программа должна считывать информацию из канала передачи данных RS-232.
Подключение аналогового интерфейса к ПК осуществлялось через переходник RS-232 в USB на чипе CH340, я использовал простую программ (vi прикладываю). В соответствии с инструкцией на интерфейс (файл во вложении) я должен получать строку из 55 ASCII символов каждые 100мс, однако получил лишь набор неопределённых символов (фото во вложении)
Питание аналогового интерфейса корректное, драйвер на чип CH340 я установил, ПК COM порт обнаружил (система windows 10).
Чувствую, что решение простое, однако поиск на форумах не принёс результата. Буду очень благодарен, если кто-нибудь откликнется на мой зов о помощи. Время на завершение диплома остаётся у меня очень мало...
Вложения
rs-232 - 1.vi
(10.99 КБ) 196 скачиваний
DIGIFLOW-mini1-CAN and RS-232.pdf
RS-232, стр 12
(206.61 КБ) 153 скачивания
Read buffer.jpg
Granados
interested
interested
Сообщения: 7
Зарегистрирован: 27 май 2018, 15:32
Версия LabVIEW: 2013
Контактная информация:

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Granados »

Версия LabView 2016
Аватара пользователя
dadreamer

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

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение dadreamer »

1. Для начала нужно переключить тип интерфейса с CAN на RS-232:
2019-02-01_0-23-29.jpg
2. Затем корректно сконфигурировать сессию VISA через VISA Configure Serial Port:
2019-02-01_0-24-48.jpg
Не забываем активировать терминатор (termination character) - у вас задан 0xA (Line Feed):
2019-02-01_0-28-15.jpg
3. Дальше убираем VISA Bytes At Port, оставляем только VISA Read, ставим обычную кнопку "стоп" для остановки цикла (вместо того условия, что сейчас), переключаем строковый индикатор в режим HEX и смотрим, что приходит. Описание формата посылки на странице 12-13.

кросс-пост на ni.com
Последний раз редактировалось dadreamer 05 фев 2019, 14:16, всего редактировалось 1 раз.
Blackman

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

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Blackman »

Granados, основной косяк :vi: скорость не та. По умолчанию 9600, а надо 38400.
Если попытка чтения версии будет не работать ее можно отключить :wink:
Вложения
VISA_DigiMini_Test.png
Granados
interested
interested
Сообщения: 7
Зарегистрирован: 27 май 2018, 15:32
Версия LabVIEW: 2013
Контактная информация:

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Granados »

Blackman, dadreamer, спасибо большое, что откликнулись на мой зов о помощи. Приятно осознавать, что есть такие люди)
Прошу прощения скинул не тот VI, в другом у меня стояли настройки VISA Configure Serial Port согласно manual на интерфейс.
Как доберусь до экспериментального стенда обязательно попробую выполнить и другие рекомендуемые действия.
Granados
interested
interested
Сообщения: 7
Зарегистрирован: 27 май 2018, 15:32
Версия LabVIEW: 2013
Контактная информация:

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Granados »

dadreamer, Добрый день. Попробовал выполнить все Ваши указания и получил следующую информацию (скрин во вложении), также прикладываю VI.
Я получаю набор данных в hex, мне нужно из них вытащить значение "mmmmmm", т.е. "mean flow calculated over 1second in ASCII (range: -99.999 ml bis +99.999 ml)", нашёл на форуме Ваше указание как это сделать и попытался выполнить с помощью "Spreadsheet string to array", однако разбить по частям не удалось и желаемую величину вытащить также не удалось. Чувствую, что проблема в неправильном определении "format string"
Буду очень благодарен, если найдёте время помочь !
Вложения
string hex.PNG
rs-232 - 1.vi
(15.62 КБ) 145 скачиваний
Аватара пользователя
dadreamer

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

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение dadreamer »

Granados, структура данных, отправляемых преобразователем, не соответствует структуре, описанной в документации. Длина посылки должна составлять 54 байта (55-й - терминатор, он удаляется из посылки после приёма), на картинке же 100 байт, а вся посылка, скорее всего, больше, т.к. заказали для VISA Read 100 байт. Нигде в данных не наблюдается 0xA (Line Feed). Части посылки должны быть разделены символом 0x20, которого также нигде не видно. + Ещё ряд мелких несоответствий. Поэтому бессмысленно вытаскивать данные об измерениях из такой посылки.

Попробуйте связаться с прибором через терминал (NI MAX или какой-то сторонний), посмотрите данные в HEX. Отправьте команду V<cr>, должна прийти информация о серийном номере и прошивке платы. Попробуйте отключить датчик и посмотрите, изменится ли что-нибудь во входящих данных. Загляните также в диспетчер устройств, посмотрите, какие настройки стоят у USB-конвертора. В крайнем случае свяжитесь с производителем платы, возможно, необходимо обновить ПО.
Blackman

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

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Blackman »

Granados, какой тип конвертора используете, длина кабеля связи? Если есть возможность попробуйте с другим типом конвертора.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Kosist »

Попробуйте RealTerm (https://sourceforge.net/projects/realterm/) - отличный терминал для тестирования серийной коммуникации. Откроете порт, и будете смотреть, какие данные поступают от устройства. Если все будет работать, то тогда уже переносите все в :labview: .
Мы делили апельсин - много наших полегло...
Granados
interested
interested
Сообщения: 7
Зарегистрирован: 27 май 2018, 15:32
Версия LabVIEW: 2013
Контактная информация:

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Granados »

dadreamer, понял, спасибо, отрицательный результат тоже результат.
NI Max показал ошибку при попытке протестить порт. На досуге попробую поиграться с командами.
Может ли быть проблемы связаны с "плохими" драйверами на чип CH340 ?
Также мне мой научный руководитель говорил, что датчики могут быть не рабочим (но он, мол, точно не знал какие). Есть вариант и их заменить на другие.
Стоит ли пробовать подключать напрямую через RS-232, а не через переходник RS-232->USB (у меня на моноблоке нет разъёма RS-232, но поищу системник с необходимой платой расширения) ?
Granados
interested
interested
Сообщения: 7
Зарегистрирован: 27 май 2018, 15:32
Версия LabVIEW: 2013
Контактная информация:

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Granados »

Blackman, Если я правильно Вас понял. То я использую коннектор на чипе CH340, фото во вложении
rs-232 USB.PNG
rs-232 USB.PNG (103.96 КБ) 5661 просмотр
Kosist, Спасибо большое, попробую !
Аватара пользователя
dadreamer

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

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение dadreamer »

Granados писал(а):Может ли быть проблемы связаны с "плохими" драйверами на чип CH340 ?
Маловероятно, но исключать не стоит. Скорее, драйвер может быть не "плохой", а не с теми настройками, что необходимы для вашего устройства. Все такие настройки обычно можно изменить в диспетчере устройств.
Granados писал(а):Также мне мой научный руководитель говорил, что датчики могут быть не рабочим (но он, мол, точно не знал какие). Есть вариант и их заменить на другие.
Если датчик вышел из строя и не отдаёт данные (или отдаёт какую-то ерунду), то структура посылки не должна изменяться. Просто в текущих показаниях должны быть некорректные данные (нули или та самая ерунда). Я уже советовал отключить датчик, чтобы отдефектовать этот случай.
Granados писал(а):Стоит ли пробовать подключать напрямую через RS-232, а не через переходник RS-232->USB (у меня на моноблоке нет разъёма RS-232, но поищу системник с необходимой платой расширения) ?
Да, попробуйте, чтобы исключить USB-конвертор из списка "виновников". Если есть аналогичный преобразователь на другом чипе, можно и с ним ещё попробовать.

Ещё может быть такое, что плата Digiflow Mini работает только с "железным" COM-портом (уровни напряжения -3В .. -12В и +3В .. +12В). А конвертор на CH340G (или мост USB-UART, по-другому) работает с TTL-уровнями (не более +5В). Мне не удалось найти полноценный мануал на плату в открытом доступе. Скиньте посмотреть, если есть возможность.
Granados
interested
interested
Сообщения: 7
Зарегистрирован: 27 май 2018, 15:32
Версия LabVIEW: 2013
Контактная информация:

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Granados »

dadreamer, Добрый день. Некоторое время экспериментировал, сжёг попутно две платы (оставшись с последней рабочей) и установил следующие:
1) Замена датчиков и плат-интерфейсов не влияет на подачу информации;
2) Работа через RS-232 напрямую , а не через конвертер, также не избавляет от проблемы.
3) При отключении датчика подача информации через RS-232 прекращается.
В завершении всего получаю всё тот же набор не читаемых символов и при остановки работы программы отображается ошибка (фото во вложении, vi также прикладываю)
Начинаю думать, что ошибка где-то в реализации самого подключения, ниже подробно его опишу, надеюсь найдёте время и поможите мне найти ошибку. Все имеющиеся файлы на интерфейс DIGIFLOW-MINI1 прилагаю, фото осуществляемого подключения прилагаю.
Через коннектор P102 я подключаю следующие:
1) Питание 3,3 В подаю на PIN 2, нулевой потенциал (GND) на PIN 4;
2) Нулевой потенциал PIN 5 подключаю к 5 (GND) выводу female RS-232, PIN 6 (TxD) коннектора P102 подключаю к 2 (TxD) выводу RS-232, PIN 7 (RxD) коннектора P102 подключаю к 3 (RxD) выводу RS-232. Такое подключение было выбрано, ввиду того, что потом данная система подключалась в male RS-232.
По поводу JMP 606 и 607 совершенно не знаю как через них осуществлять подключение RS-232 или CAN (фото во вложении), такое ощущение, что они запаяны.

Очень надеюсь на Вашу помощь и заранее спасибо.
Вложения
error.png
rs-232 - 1.vi
(16.03 КБ) 134 скачивания
DIGIFLOW-mini1-UM-1 02.pdf
(812.56 КБ) 125 скачиваний
DIGIFLOW-mini1-AOUM-1 04.pdf
(206.61 КБ) 126 скачиваний
DIGIFLOW and rs-232.jpg
front.jpg
Blackman

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

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение Blackman »

dadreamer писал(а):1. Для начала нужно переключить тип интерфейса с CAN на RS-232 ...
:super:
Granados писал(а): dadreamer, Добрый день. Попробовал выполнить все Ваши указания ...
:super:
Granados писал(а):По поводу JMP 606 и 607 совершенно не знаю как через них осуществлять подключение RS-232 или CAN (фото во вложении), такое ощущение, что они запаяны...
:shok:
Паяльником переставить перемычки :wink:
Аватара пользователя
dadreamer

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

Re: NI VISA USB (RS-232 на CH340) Ошибка в read

Сообщение dadreamer »

Granados писал(а):Некоторое время экспериментировал, сжёг попутно две платы (оставшись с последней рабочей)
:shok: Ваше упорство в этой задаче поражает. Как такое могло случиться?

Я бы сходу также попробовал переставить перемычки - делов на 5-10 минут. Смущает только то, что они обе в положении 1-2, что по мануалу соответствует RS-232. Что странновато, т.к. по дефолту должен быть активирован CAN интерфейс. Кроме того, данные по RS-232 передаются, если бы был активен CAN, то передача по RS-232 не имела бы смысла. Ну, попробуйте, хуже не будет. Только не спалите последнюю плату. :wink:
Granados писал(а):при остановки работы программы отображается ошибка (фото во вложении, vi также прикладываю)
Framing Error говорит о том, что какие-то из параметров COM-порта не соответствуют реальным настройкам (часто это скорость передачи). Можете попробовать вставить Flush Buffers перед циклом. Уберите задержку в цикле, она там не нужна, VISA Read организует задержку, когда ожидает новых данных. Также вероятно, что порт может быть переполнен из-за того, что отправка идёт чаще, чем чтение. Укажите для VISA Read число байтов = 4096 (макс. размер входного буфера по умолчанию). Что происходит, когда подключаетесь через терминал? На вашем месте я бы уже давно написал производителю об этой проблеме. Вдруг это косяк данной ревизии... Возможно, есть какая-то сервисная программа от производителя для связи с платой?..
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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