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

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы

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

Postby Granados on 31 Jan 2019, 21:55

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

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

Postby Granados on 31 Jan 2019, 21:57

Версия LabView 2016
Granados
interested
interested
 
Posts: 7
Joined: 27 May 2018, 15:32
LabVIEW Version: 2013
Karma: 0

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

Postby dadreamer on 31 Jan 2019, 22:34

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
Last edited by dadreamer on 05 Feb 2019, 14:16, edited 1 time in total.
User avatar
dadreamer
professor
professor
 
Posts: 3310
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 844
I/O VIP vision internet

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

Postby Blackman on 01 Feb 2019, 01:06

Granados, основной косяк :vi: скорость не та. По умолчанию 9600, а надо 38400.
Если попытка чтения версии будет не работать ее можно отключить :wink:
Attachments
VISA_DigiMini_Test.png
Blackman
leader
leader
 
Posts: 882
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 259
VIP

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

Postby Granados on 01 Feb 2019, 13:13

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

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

Postby Granados on 03 Feb 2019, 15:41

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"
Буду очень благодарен, если найдёте время помочь !
Attachments
string hex.PNG
rs-232 - 1.vi
(15.62 KiB) Downloaded 21 times
Granados
interested
interested
 
Posts: 7
Joined: 27 May 2018, 15:32
LabVIEW Version: 2013
Karma: 0

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

Postby dadreamer on 03 Feb 2019, 16:41

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

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

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

Postby Blackman on 03 Feb 2019, 20:20

Granados, какой тип конвертора используете, длина кабеля связи? Если есть возможность попробуйте с другим типом конвертора.
Blackman
leader
leader
 
Posts: 882
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 259
VIP

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

Postby Kosist on 03 Feb 2019, 20:28

Попробуйте RealTerm (https://sourceforge.net/projects/realterm/) - отличный терминал для тестирования серийной коммуникации. Откроете порт, и будете смотреть, какие данные поступают от устройства. Если все будет работать, то тогда уже переносите все в :labview: .
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 968
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 270
CLAD I/O VIP students

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

Postby Granados on 04 Feb 2019, 22:30

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

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

Postby Granados on 04 Feb 2019, 22:42

Blackman, Если я правильно Вас понял. То я использую коннектор на чипе CH340, фото во вложении
rs-232 USB.PNG
rs-232 USB.PNG (103.96 KiB) Viewed 1720 times

Kosist, Спасибо большое, попробую !
Granados
interested
interested
 
Posts: 7
Joined: 27 May 2018, 15:32
LabVIEW Version: 2013
Karma: 0

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

Postby dadreamer on 05 Feb 2019, 13:57

Granados wrote:Может ли быть проблемы связаны с "плохими" драйверами на чип CH340 ?

Маловероятно, но исключать не стоит. Скорее, драйвер может быть не "плохой", а не с теми настройками, что необходимы для вашего устройства. Все такие настройки обычно можно изменить в диспетчере устройств.
Granados wrote:Также мне мой научный руководитель говорил, что датчики могут быть не рабочим (но он, мол, точно не знал какие). Есть вариант и их заменить на другие.

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

Да, попробуйте, чтобы исключить USB-конвертор из списка "виновников". Если есть аналогичный преобразователь на другом чипе, можно и с ним ещё попробовать.

Ещё может быть такое, что плата Digiflow Mini работает только с "железным" COM-портом (уровни напряжения -3В .. -12В и +3В .. +12В). А конвертор на CH340G (или мост USB-UART, по-другому) работает с TTL-уровнями (не более +5В). Мне не удалось найти полноценный мануал на плату в открытом доступе. Скиньте посмотреть, если есть возможность.
User avatar
dadreamer
professor
professor
 
Posts: 3310
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 844
I/O VIP vision internet

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

Postby Granados on 13 Feb 2019, 19:09

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 (фото во вложении), такое ощущение, что они запаяны.

Очень надеюсь на Вашу помощь и заранее спасибо.
Attachments
error.png
rs-232 - 1.vi
(16.03 KiB) Downloaded 21 times
DIGIFLOW-mini1-UM-1 02.pdf
(812.56 KiB) Downloaded 19 times
DIGIFLOW-mini1-AOUM-1 04.pdf
(206.61 KiB) Downloaded 17 times
DIGIFLOW and rs-232.jpg
front.jpg
Granados
interested
interested
 
Posts: 7
Joined: 27 May 2018, 15:32
LabVIEW Version: 2013
Karma: 0

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

Postby Blackman on 14 Feb 2019, 02:47

dadreamer wrote:1. Для начала нужно переключить тип интерфейса с CAN на RS-232 ...
:super:
Granados wrote: dadreamer, Добрый день. Попробовал выполнить все Ваши указания ...
:super:
Granados wrote:По поводу JMP 606 и 607 совершенно не знаю как через них осуществлять подключение RS-232 или CAN (фото во вложении), такое ощущение, что они запаяны...
:shok:
Паяльником переставить перемычки :wink:
Blackman
leader
leader
 
Posts: 882
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 259
VIP

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

Postby dadreamer on 14 Feb 2019, 11:25

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

:shok: Ваше упорство в этой задаче поражает. Как такое могло случиться?

Я бы сходу также попробовал переставить перемычки - делов на 5-10 минут. Смущает только то, что они обе в положении 1-2, что по мануалу соответствует RS-232. Что странновато, т.к. по дефолту должен быть активирован CAN интерфейс. Кроме того, данные по RS-232 передаются, если бы был активен CAN, то передача по RS-232 не имела бы смысла. Ну, попробуйте, хуже не будет. Только не спалите последнюю плату. :wink:
Granados wrote:при остановки работы программы отображается ошибка (фото во вложении, vi также прикладываю)

Framing Error говорит о том, что какие-то из параметров COM-порта не соответствуют реальным настройкам (часто это скорость передачи). Можете попробовать вставить Flush Buffers перед циклом. Уберите задержку в цикле, она там не нужна, VISA Read организует задержку, когда ожидает новых данных. Также вероятно, что порт может быть переполнен из-за того, что отправка идёт чаще, чем чтение. Укажите для VISA Read число байтов = 4096 (макс. размер входного буфера по умолчанию). Что происходит, когда подключаетесь через терминал? На вашем месте я бы уже давно написал производителю об этой проблеме. Вдруг это косяк данной ревизии... Возможно, есть какая-то сервисная программа от производителя для связи с платой?..
User avatar
dadreamer
professor
professor
 
Posts: 3310
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 844
I/O VIP vision internet


Return to Коммуникация с приборами

Who is online

Users browsing this forum: No registered users and 2 guests

cron