Проблема с VISA
Re: Проблема с VISA
Вот скрины настроек COM3 (есть ещё USB Serial Port в контроллерах USB, тоже относится к этому устройству)
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Проблема с VISA
Здесь похоже конфликт между размерами буферов драйвера и VISA. Попробуй уменьшить входной буфер драйвера до 128 байтов.
Re: Проблема с VISA
Вот что получилось
Попробую изменить байт, посылаемый с контроллера, интересно, поменяется ли буква.
Причём в 1й раз с самого начала после нажатия стоп на FP вылезла ошибка связи, но больше её не было и самые первые буквы были не "Д", а "D", штук 15, далее только "Д".Попробую изменить байт, посылаемый с контроллера, интересно, поменяется ли буква.
Вот тут не очень понятно :)Blackman писал(а): Да, по поводу ошибки Scan From String. В прошлый раз упустил из виду. что передача в бинарном формате. В этом случае лучше всего конвертировать строку в массив U8 при помощи функции Tape Cast .
Почему очень часто? Скорость UART при инициализации задана 9600dadreamer писал(а): А как он вообще происходит? У него стоит 4096 на входной и на выходной буфер. И в по дефолту 4096 задаётся, если иного не укажешь (VISA Set I/O Buffer Size). Может, обычное переполнение со стороны МК? То есть, МК пишет по 1 байту очень часто и буфер переполняется.
Последний раз редактировалось MillyVolt 26 мар 2016, 17:34, всего редактировалось 3 раза.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Проблема с VISA
Ну, не пустые они, на самом деле.MillyVolt писал(а):то есть приходят пустые байты что-ли постоянно.
Если Display Style переключить на HEX или \, то будет видно. Посмотрите снова тот же мой пример, я его чуть переделал. И нажимать Run Continuously не надо - это вредная кнопка, лучше юзать обычный Run. И Abort'ом не останавливайте - сессия VISA не закрывается при таком останове. Либо поставьте галку Tools -> Options -> Environment -> Automatically close VISA sessions.MillyVolt писал(а):Программа на МК всё, что делает, это посылает по UART байт 0x001C.
Забыл ИЛИ вставить, чтоб по ошибке цикл вставал. Исправил.Blackman писал(а):После первой же ошибки VISA Read уже не работает, так как на ее вход еггог in будет постоянно приходить ошибка из-за Shift Register, и VI будет "молотить" c максимально возможной скоростью нагружая проц.
А как он вообще происходит? У него стоит 4096 на входной и на выходной буфер. И в по дефолту 4096 задаётся, если иного не укажешь (VISA Set I/O Buffer Size). Может, обычное переполнение со стороны МК? То есть, МК пишет по 1 байту очень часто и буфер переполняется.Blackman писал(а):Здесь похоже конфликт между размерами буферов драйвера и VISA. Попробуй уменьшить входной буфер драйвера до 128 байтов.
Re: Проблема с VISA
Теперь похоже на правду. Правда 1й раз опять ошибка эта обычная выскочила, но только один раз, и при перезапусках программы не было ошибок больше. (почему она всё-таки выскакивала?..)
Вернул параметр порта обратно, на 4096, всё работает также, ошибок пока не было.
В вашей программе для меня много непонятного, буду разбираться.
Почему изначально пример, по которому я повторил программу не заработал? Он вообще может заработать в таком виде?
С4 - то же самое показывает терминальная программа, а "Д" - тот же символ в ANCIIВернул параметр порта обратно, на 4096, всё работает также, ошибок пока не было.
В вашей программе для меня много непонятного, буду разбираться.
Почему изначально пример, по которому я повторил программу не заработал? Он вообще может заработать в таком виде?
Последний раз редактировалось MillyVolt 26 мар 2016, 17:58, всего редактировалось 1 раз.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Проблема с VISA
MillyVolt, у вас контроллер-то непрерывно данные "шлёпает"? Или вы его останавливаете? Попробуйте сперва запустить прогу в , а только потом уже запустить контроллер на передачу данных. Интересно, будет ли ошибка.
Re: Проблема с VISA
Да, МК передаёт непрерывно данные при включении. Сделаю передачу от нажатия кнопки, отпишусь)
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Проблема с VISA
Ну, вот, пока у вас прога в не запущена, а контроллер шлёт данные, буфер и переполняется время от времени, так как некому его разгребать. Нужно либо вводить синхронизацию по некоторому признаку, либо тупо чистить буфер перед началом работы (если не жалко накопленные данные).MillyVolt писал(а):Да, МК передаёт непрерывно данные при включении. Сделаю передачу от нажатия кнопки, отпишусь)
Не совсем в таком виде. Там инструмент ожидает число в строковом виде на входе. А пока что у вас идут от МК не числа, а непонятно что. Как только установите фиксированный протокол обмена (с собственной структурой), тогда начнёте парсить строку в согласно этому протоколу.MillyVolt писал(а):Почему изначально пример, по которому я повторил программу не заработал? Он вообще может заработать в таком виде?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 2 Ответы
- 662 Просмотры
-
Последнее сообщение Borjomy_1
-
- 4 Ответы
- 242 Просмотры
-
Последнее сообщение Embedder74
-
- 13 Ответы
- 1227 Просмотры
-
Последнее сообщение Boxa
-
- 1 Ответы
- 502 Просмотры
-
Последнее сообщение alerm