Периметр «Перитест 300» (прибор для проверки поля зрения) |
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
Эта идиотская проблема отняла два дня моей жизни, так что оставлю это тут, для тех кто будет гуглить также как это делал я и ничего не найдет.
Ключевые слова для поиска:
— Задержки при чтении из ком порта и рс-232
— Низкая скорость обмена по ком порту и рс-232
— read delays com port RS-232
— winapi c# serialport port driver
— COMMPROP COMMTIMEOUTS FTDI Latency time
Суть проблемы — писал программу по общению железки с компьютером через виртуальный ком порт (FTDI). Общение — небольшими пактами по несколько байт. На прием каждого пакета уходило около 20 мс. При этом мне необходимо передавать около 200 пакетов в секунду, что значит, что задержка на один пакет не должна превышать 5мс, а лучше — меньше. Стал смотреть в чем дело — задержка возникала при чтении из ком порта с помощью стандартного класса serial port .NET Стал копаться дальше — стало понятно, что проблема с буферизацией и таймаутами. В драйвере есть некоторый софтверный буфер и о принятых байтах драйвер сообщает не сразу, а когда этот буфер заполняется или когда проходит таймаут после последнего принятого байта. Стал копать в сторону таймаутов. Функционал класса serialport далеко не безупречен и не позволяет полностью контролировать настройки драйвера, в то время как стандартные функции winapi позволяют. Стал копать в сторону реализации класса для работы с ком портом на основе импортированных из winapi функций. С учетом того что я на C#, да и вообще под винду на PC прогаю вторую неделю как — это было не очень просто для понимания. Нашел сторонний класс, прикрутил к своей программе и, ничего не изменилось. Стал смотреть дальше — в настройках ком порта, если нажать на кнопочку «дополнительно» то можно увидеть такое окошко:
Поначалу я больше обращал внимание на размер буфера, но потом увидел, что если поменять «Время ожидания» на 1мс, то передача становится практически мгновенной. Отлично, осталось найти, как это значение поменять из программы. написал импорт функций винапи, которые позволили загрузить и посмотреть все структуры для настройки ком порта. Посмотрел — нигде нет этих пресловутых 16мс. Стал гуглить на русском — ноль информации, кроме как советы снизить «время ожидания» вручную. Нашел как окошко выглядит на английском, поле называется Latency time. Это очень быстро привело к ответу на все вопросы. Оказывается это поле есть только у ком портов FTDI. Настроить ее через винапи и тем более класс serialport .NET нельзя!
Зато можно вот так:
В самом FTDI пишут:
http://www.ftdichip.com/Support/Knowledgebase/index.html?an232b_04adjlatency.htm
FTDI’s R, C and BM series chips allow the latency timer to be changed from 16 milliseconds to any value from 1 to 255 milliseconds, in 1 millisecond increments. When using the FTDI Virtual COM Port driver the latency timer can be set in the port properties page. In Windows, the port properties page is accessed via the Control Panel > System > Device Manager. For Windows 2000 and XP, the initial value of the latency timer can also be pre-configured in ftdiport.inf by changing the value of the last number in the following line:
[FtdiPort.NT.HW.AddReg]
HKR,,»LatencyTimer»,0x00010001,16
where again, 16 milliseconds is the default value.
Есть ли такая радость у других преобразователей — не знаю, если кто проверит на CP2102 и прочих — скажу спасибо
Итого:
Плюсы:
-решил проблему;
-узнал много нового про то как работает винда, идет взаимодействие с драйверами и т.п.;
-немного поработал с winapi:
Минусы:
-чуть не сломал мозг;
-потратил на эту хрень два дня жизни.
П.С. Что интересно — если гуглить про задержки при работе с ком портом — можно найти несколько подобных проблем, возникавших у людей, причем практически все они без решения. Но нигде, нигде я не видел упоминаний про FTDI или про latency timer.
П.С.2 особенно доставили некоторые комментаторы, толком не разбирающиеся в вопросах, но пишущие на форумах что-то вроде «ком порт — очень медленное устройство, при работе с современными компьютерами проблем с задержками быть не может». Ха-ха. Компьютер конечно быстрее, но только сделано все слишком уж громоздко. МК отвечает на запрос компьютера за несколько десятков микросекунд максимум. Компьютер с виндой, которой до реального времени как до луны — отвечает в течение миллисекунд — минимум!
П.С.3 Попробуйте создать файл с именем com1.txt, на рабочем столе, например
UPD: Грязный хак! Как гласит документация на FTDI — сигналом для отправки буфера кроме всего вышеописанного является изменение одной из хардверных линий — CTS/DSR/DCD/RI. Соответственно достаточно дергать одну из этих линий в конце каждого пакета или же, поступить еще брутальнее — просто закоротить эту линию с RX. Проверенно, работает
Эволюция от RS232 до USB
В старые времена персональных компьютеров одним из основных доступных соединений был последовательный порт RS232. Помимо параллельного порта, он был основным средством подключения внешнего устройства. Разъем был уменьшен с 25-контактного до 9-контактного (D-sub 9 pin), но порты RS232 оставались на каждом компьютере в течение многих лет. Встроенные в ПК COM порты имеют прямое отображение на память и работают с высоким приоритетом. Данные практически перетекали непосредственно в программное обеспечение, которое осуществляло доступ к последовательному порту, и из него. В 1996 году стандарт универсальной последовательной шины (USB) был введен в качестве замены последовательного разъема и других типов разъемов, которые обычно находились на задней панели компьютеров. USB обеспечивает меньшие размеры разъемов и большую пропускную способность, чем последовательный и параллельный интерфейсы, которые он заменил. Устройства USB имеют высокую пропускную способность, но они используют общую шину данных. Данные упаковываются и передаются в пакетах. Для обработки пакетов и перемещения данных в программу, обращающуюся к USB-устройству, и из нее, необходим программный драйвер. Драйвер программного обеспечения находится между аппаратным обеспечением и компьютерной программой, которую Вы используете, и он должен быть установлен и работать правильно.
Необходимость адаптера
• Благодаря широкому распространению USB большинство компьютеров, продаваемых в настоящее время, не имеют COM порта. Поэтому для подключения устройства RS232 (такого как, например, CR1000) к компьютеру необходимо использовать переходник USB-RS232, такой как адаптер KS-is KS-141. Хотя адаптеры USB RS232 выполняют необходимую функцию, у них есть некоторые ограничения. Например, существует три типа проблем, с которыми Вы можете столкнуться при использовании переходника USB-RS232:
• Проблемы с драйверами
• Аппаратные проблемы
• Проблемы с производительностью
Проблема № 1: Драйвер
Самая частая проблема, с которой наши клиенты сталкиваются при переходе с USB на RS232, — это установка правильного драйвера. Драйвер должен соответствовать микросхеме внутри переходника, а не его производителю. Для чипов USB-RS232 существует два основных производителя: Prolific и FTDI. Поскольку нестандартные микросхемы с плохими драйверами ненадежны, мы рекомендуем использовать переходники USB KS-is RS232:
• KS-141 (на микросхеме FTDI)
• KS-213 (на микросхеме Prolific)
Мы выбрали данные адаптеры, потому что они используют микросхемы с сертифицированным драйвером, доступным в Центре обновления Windows. Совет: протестируйте свои USB-адаптеры в офисе на своем компьютере. Когда Вы находитесь в поле, компьютер не будет иметь подключения к Интернету для автоматической загрузки и установки драйвера. Если драйвер для Вашего адаптера не устанавливается автоматически или не может быть установлен с компакт-диска, Вам необходимо определить микросхему в переходнике и найти драйвер в Интернете. Некоторые производители указывают на своей упаковке, какой чип используется внутри их адаптера. Вы также можете определить чип переходника в диспетчере устройств Windows, выполнив следующие действия:
1. В диспетчере устройств Windows щелкните правой кнопкой мыши на Вашем устройство из списка.
2. В раскрывающемся меню выберите Свойства.
3. В диалоговом окне «Свойства» выберите вкладку «Сведения».
4. В поле «Свойства» выберите «Аппаратные идентификаторы» в раскрывающемся меню.
5. В поле «Значение» указаны VID (идентификатор поставщика) и PID (идентификатор продукта). Эти идентификаторы соответственно указывают производителя и модель чипа.
6. В приведенном выше примере быстрый интернет-поиск показал, что это чип FT4232 производства FTDI. После того, как Вы знаете свой тип чипа и производителя, Вы можете найти и скачать правильный драйвер для Вашей версии Microsoft Windows.
Проблема № 2: Аппаратное обеспечение
Переходники USB-RS232 являются стандартными компонентами компьютерной техники. Как бы нам ни хотелось, чтобы все было так же надежно, как KS-is KS-141, все адаптерные кабели в конечном итоге выходят из строя. Хотя есть две основные компании, которые производят чипы для переходников с USB на RS232, есть много производителей адаптеров, которые предлагают различные уровни качества кабелей. Промышленные модели более высокого качества должны работать дольше, но со временем они изнашиваются, как и любой полевой инструмент. В плохо сконструированном переходнике могут быть компоненты, которые выходят из строя в течение короткого периода времени — возможно, даже к моменту получения адаптера. Мы видели несколько случаев, когда старые переходники больше не могли обрабатывать 115200 бод, но они все еще работали на низких скоростях. Было еще много случаев, когда USB-кабель перестал работать на полпути в полевых условиях. Совет. Если Ваш полевой участок находится далеко от офиса, возьмите с собой два переходника USB-RS232. Потерянное время в поле может быть намного дороже, чем цена покупки второго кабеля.
Проблема № 3: Производительность
Как упоминалось ранее, USB использует общую шину данных с пакетной связью. Пакетная связь привнесла некоторое время ожидания (время передачи данных), которого не было со встроенными портами RS232. К сожалению, задержка имеет заметное значение, когда Вы загружаете большие объемы данных или загружаете новую операционную систему. Драйвер для чипов FTDI позволяет снизить время ожидания пакетов. Для этого Вы можете использовать поле таймера задержки, доступ к которому осуществляется через диспетчер устройств Windows. Следуй этим шагам:
1. В диспетчере устройств Windows щелкните правой кнопкой мыши свое устройство из списка.
2. В раскрывающемся меню выберите Свойства.
3. Перейдите на вкладку «Настройки порта».
4. Нажмите кнопку Дополнительно …
5. В окне «Дополнительные параметры» перейдите к полю «Таймер задержки» и уменьшите значение параметра до 1 для достижения максимальной производительности.
В дополнение к снижению времени задержки, мы также рекомендуем отключить опцию Selective Suspend для Вашего переходника. Параметр «Выборочная приостановка» позволяет Windows перевести оборудование в спящий режим, что может привести к повреждению пакетов данных. Чтобы отключить параметр «Выборочная приостановка», снимите флажок «Включить выборочную приостановку» в окне «Дополнительные параметры» для вашего устройства.
Примечание: параметр «Выборочная приостановка» по умолчанию уже отключен в драйвере FTDI.
Вывод
Новые конструкции регистраторов данных, такие как, например, CR6, предназначенных для считывания, обработки и передачи сигналов электрических датчиков, имеют встроенное USB-соединение. Однако многие устройства будут иметь интерфейс RS232 на долгие годы, и нам для работы с ними нужно будет продолжать использовать переходники USB-RS232.
Добрый день.
Попробую еще раз задать вопрос на форуме, хотя уже и без особой надежды на ответ.
Есть задача — научиться подавать в ПЛИС длинные последовательности бит (от 10^6 байт по 6 бит).
Имеется отладочная плата Actel, на которой установлена микросхема USB->RS232, а на PC установлен виртуальным COM-порт. Таким образом физически RS232 нигде не существует, однако для всех приложений существует COM-порт, в который я могу писать данные, а для ПЛИС существует 2 контакта RX и ТХ для передачи данных.
Теперь собственно к проблеме.
Поскольку физические ограничения на скорость существует только по USB, я пишу данные со скорость 1.5МБит секунду.
В среде Матлаб это выглядит так
s = serial('COM2'); s.BaudRate=1.5*10^6; fopen(s); fwrite(s,'!&!'); fclose(s);
Данные пишутся как надо, на осциллографе я вижу требуемые сигналы, длительной одного байта — 4.8 мкс.
Пакеты данных так же передаются как надо, без трудностей,байт за байтом
fwrite(s,'ABCDEFGHIJKLM');
Далее, задача состоит в том, чтобы организовать обмен данными между ПЛИС и PC
Прием->Передача->Прием->Передача
Для чистоты опыта задача прием пока выключен, то есть я пробую выполнить 2 команды передачи последовательно
fwrite(s,'A');
fwrite(s,’B’);
И вот тут случается странное. Длительность байт не меняется, однако между самими байтами возникает интервал в 80мс. То есть 4мкс порт занят передачей, потом 80мс ждет, потом передает следующий байт.
Откуда возникает эта задержка и как с ней бороться? Одно из временных решений — увеличить размер входного буфера до 1024 бит, и тогда передача будет идти не 4 мкс, а 4 мс, пауза сохранится прежней 80мс. Но КПД по прежнему просто несерьезный.
Где узкое место и чего дожидается система?
-
Granados
- interested
- Сообщения: 7
- Зарегистрирован: 27 май 2018, 15:32
- Версия LabVIEW: 2013
- Контактная информация:
NI VISA USB (RS-232 на CH340) Ошибка в read
Всем добрый вечер.
В рамках своего дипломного проекта пришлось заниматься тем, чем некогда раньше не занимался, а именно разработать систему, которая будет считывать данные с аналогового интерфейса, подключенного к ультразвуковому расходомеру.
Программа должна считывать информацию из канала передачи данных RS-232.
Подключение аналогового интерфейса к ПК осуществлялось через переходник RS-232 в USB на чипе CH340, я использовал простую программ (vi прикладываю). В соответствии с инструкцией на интерфейс (файл во вложении) я должен получать строку из 55 ASCII символов каждые 100мс, однако получил лишь набор неопределённых символов (фото во вложении)
Питание аналогового интерфейса корректное, драйвер на чип CH340 я установил, ПК COM порт обнаружил (система windows 10).
Чувствую, что решение простое, однако поиск на форумах не принёс результата. Буду очень благодарен, если кто-нибудь откликнется на мой зов о помощи. Время на завершение диплома остаётся у меня очень мало…
- Вложения
-
- rs-232 — 1.vi
- (10.99 КБ) 173 скачивания
-
- DIGIFLOW-mini1-CAN and RS-232.pdf
- RS-232, стр 12
- (206.61 КБ) 125 скачиваний
-
-
Granados
- interested
- Сообщения: 7
- Зарегистрирован: 27 май 2018, 15:32
- Версия LabVIEW: 2013
- Контактная информация:
-
dadreamer
- professor
- Сообщения: 3873
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 10 раз
- Поблагодарили: 98 раз
- Контактная информация:
Re: NI VISA USB (RS-232 на CH340) Ошибка в read
Сообщение
dadreamer » 31 янв 2019, 22:34
1. Для начала нужно переключить тип интерфейса с CAN на RS-232:
2. Затем корректно сконфигурировать сессию VISA через VISA Configure Serial Port:
Не забываем активировать терминатор (termination character) — у вас задан 0xA (Line Feed):
3. Дальше убираем VISA Bytes At Port, оставляем только VISA Read, ставим обычную кнопку «стоп» для остановки цикла (вместо того условия, что сейчас), переключаем строковый индикатор в режим HEX и смотрим, что приходит. Описание формата посылки на странице 12-13.
кросс-пост на ni.com
Последний раз редактировалось dadreamer 05 фев 2019, 14:16, всего редактировалось 1 раз.
-
Granados
- interested
- Сообщения: 7
- Зарегистрирован: 27 май 2018, 15:32
- Версия LabVIEW: 2013
- Контактная информация:
Re: NI VISA USB (RS-232 на CH340) Ошибка в read
Сообщение
Granados » 01 фев 2019, 13:13
Blackman, dadreamer, спасибо большое, что откликнулись на мой зов о помощи. Приятно осознавать, что есть такие люди)
Прошу прощения скинул не тот VI, в другом у меня стояли настройки VISA Configure Serial Port согласно manual на интерфейс.
Как доберусь до экспериментального стенда обязательно попробую выполнить и другие рекомендуемые действия.
-
Granados
- interested
- Сообщения: 7
- Зарегистрирован: 27 май 2018, 15:32
- Версия LabVIEW: 2013
- Контактная информация:
Re: NI VISA USB (RS-232 на CH340) Ошибка в read
Сообщение
Granados » 03 фев 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»
Буду очень благодарен, если найдёте время помочь !
- Вложения
-
-
- rs-232 — 1.vi
- (15.62 КБ) 121 скачивание
-
dadreamer
- professor
- Сообщения: 3873
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 10 раз
- Поблагодарили: 98 раз
- Контактная информация:
Re: NI VISA USB (RS-232 на CH340) Ошибка в read
Сообщение
dadreamer » 03 фев 2019, 16:41
Granados, структура данных, отправляемых преобразователем, не соответствует структуре, описанной в документации. Длина посылки должна составлять 54 байта (55-й — терминатор, он удаляется из посылки после приёма), на картинке же 100 байт, а вся посылка, скорее всего, больше, т.к. заказали для VISA Read 100 байт. Нигде в данных не наблюдается 0xA (Line Feed). Части посылки должны быть разделены символом 0x20, которого также нигде не видно. + Ещё ряд мелких несоответствий. Поэтому бессмысленно вытаскивать данные об измерениях из такой посылки.
Попробуйте связаться с прибором через терминал (NI MAX или какой-то сторонний), посмотрите данные в HEX. Отправьте команду V<cr>, должна прийти информация о серийном номере и прошивке платы. Попробуйте отключить датчик и посмотрите, изменится ли что-нибудь во входящих данных. Загляните также в диспетчер устройств, посмотрите, какие настройки стоят у USB-конвертора. В крайнем случае свяжитесь с производителем платы, возможно, необходимо обновить ПО.
-
Granados
- interested
- Сообщения: 7
- Зарегистрирован: 27 май 2018, 15:32
- Версия LabVIEW: 2013
- Контактная информация:
Re: NI VISA USB (RS-232 на CH340) Ошибка в read
Сообщение
Granados » 04 фев 2019, 22:30
dadreamer, понял, спасибо, отрицательный результат тоже результат.
NI Max показал ошибку при попытке протестить порт. На досуге попробую поиграться с командами.
Может ли быть проблемы связаны с «плохими» драйверами на чип CH340 ?
Также мне мой научный руководитель говорил, что датчики могут быть не рабочим (но он, мол, точно не знал какие). Есть вариант и их заменить на другие.
Стоит ли пробовать подключать напрямую через RS-232, а не через переходник RS-232->USB (у меня на моноблоке нет разъёма RS-232, но поищу системник с необходимой платой расширения) ?
-
Granados
- interested
- Сообщения: 7
- Зарегистрирован: 27 май 2018, 15:32
- Версия LabVIEW: 2013
- Контактная информация:
Re: NI VISA USB (RS-232 на CH340) Ошибка в read
Сообщение
Granados » 04 фев 2019, 22:42
Blackman, Если я правильно Вас понял. То я использую коннектор на чипе CH340, фото во вложении
- rs-232 USB.PNG (103.96 КБ) 5280 просмотров
Kosist, Спасибо большое, попробую !
-
dadreamer
- professor
- Сообщения: 3873
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 10 раз
- Поблагодарили: 98 раз
- Контактная информация:
Re: NI VISA USB (RS-232 на CH340) Ошибка в read
Сообщение
dadreamer » 05 фев 2019, 13:57
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
- Сообщения: 7
- Зарегистрирован: 27 май 2018, 15:32
- Версия LabVIEW: 2013
- Контактная информация:
Re: NI VISA USB (RS-232 на CH340) Ошибка в read
Сообщение
Granados » 13 фев 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 (фото во вложении), такое ощущение, что они запаяны.
Очень надеюсь на Вашу помощь и заранее спасибо.
- Вложения
-
-
- rs-232 — 1.vi
- (16.03 КБ) 114 скачиваний
-
- DIGIFLOW-mini1-UM-1 02.pdf
- (812.56 КБ) 104 скачивания
-
- DIGIFLOW-mini1-AOUM-1 04.pdf
- (206.61 КБ) 105 скачиваний
-
-
-
Blackman
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: NI VISA USB (RS-232 на CH340) Ошибка в read
Сообщение
Blackman » 14 фев 2019, 02:47
dadreamer писал(а):1. Для начала нужно переключить тип интерфейса с CAN на RS-232 …
Granados писал(а): dadreamer, Добрый день. Попробовал выполнить все Ваши указания …
Granados писал(а):По поводу JMP 606 и 607 совершенно не знаю как через них осуществлять подключение RS-232 или CAN (фото во вложении), такое ощущение, что они запаяны…
Паяльником переставить перемычки
-
dadreamer
- professor
- Сообщения: 3873
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 10 раз
- Поблагодарили: 98 раз
- Контактная информация:
Re: NI VISA USB (RS-232 на CH340) Ошибка в read
Сообщение
dadreamer » 14 фев 2019, 11:25
Granados писал(а):Некоторое время экспериментировал, сжёг попутно две платы (оставшись с последней рабочей)
Ваше упорство в этой задаче поражает. Как такое могло случиться?
Я бы сходу также попробовал переставить перемычки — делов на 5-10 минут. Смущает только то, что они обе в положении 1-2, что по мануалу соответствует RS-232. Что странновато, т.к. по дефолту должен быть активирован CAN интерфейс. Кроме того, данные по RS-232 передаются, если бы был активен CAN, то передача по RS-232 не имела бы смысла. Ну, попробуйте, хуже не будет. Только не спалите последнюю плату.
Granados писал(а):при остановки работы программы отображается ошибка (фото во вложении, vi также прикладываю)
Framing Error говорит о том, что какие-то из параметров COM-порта не соответствуют реальным настройкам (часто это скорость передачи). Можете попробовать вставить Flush Buffers перед циклом. Уберите задержку в цикле, она там не нужна, VISA Read организует задержку, когда ожидает новых данных. Также вероятно, что порт может быть переполнен из-за того, что отправка идёт чаще, чем чтение. Укажите для VISA Read число байтов = 4096 (макс. размер входного буфера по умолчанию). Что происходит, когда подключаетесь через терминал? На вашем месте я бы уже давно написал производителю об этой проблеме. Вдруг это косяк данной ревизии… Возможно, есть какая-то сервисная программа от производителя для связи с платой?..
-
- 6 Ответы
- 708 Просмотры
-
Последнее сообщение Artem.spb
11 дек 2022, 23:09
-
- 3 Ответы
- 765 Просмотры
-
Последнее сообщение Artem.spb
17 сен 2022, 18:38
-
- 1 Ответы
- 640 Просмотры
-
Последнее сообщение alerm
16 ноя 2022, 23:42
-
- 3 Ответы
- 298 Просмотры
-
Последнее сообщение rsv
30 мар 2023, 14:51