Страница 1 из 2

Проблема с VISA

Добавлено: 23 мар 2016, 00:59
MillyVolt
Всем привет!
Подскажите, пожалуйста, проблема с VISA, как мне представляется.
Делал пример их статьи уважаемого bomond http://easyelectronics.ru/znakomimsya-s-labview.html
При запуске программы возникает ошибка
Ошибка.jpg
Когда выставляю в инициализации порта COM3 в Measurement and Automation Explorer при попытке открытия VISA Test Panel для этого порта вылезает такая ошибка
Ошибка VISA.jpg
Хотя до выбора COM3 в инициализации порта тестовая панель открывалась нормально.
Ещё заметил, что при считывании с этого порта в тестовой панели первый раз всё нормально, считывает постоянно передаваемый байт 1С или 00011100
VISA Test Panel1.jpg
А начиная со второго раза при чтении с порта такая ошибка
VISA Test Panel2.jpg
Мне кажется, что проблема с VISA, смотрел с терминальных программ, байт исправно передаётся.
Может драйвера какие-то нужны?

Re: Проблема с VISA

Добавлено: 23 мар 2016, 09:53
Blackman
Проблема не c VISA, а c программой и возможно с девайсом.
1. Ошибка парсинга строки функцией Scan From String в программе. В этом случае может оказать помощь только телепат), который сможет посмотреть BD :vi: на расстоянии.
2. VISA добросовестно сообщает, что ресурс существует, но в данный момент кем то занят и поэтому у нее нет к нему доступа. Закройте все программы которые могут использовать этот ресурс, включая тестовую панель.
3. Если это реальный ответ от девайса на ID запрос то он или не понимает этой команды или работает с ошибкой. Если это просто Read, то что это означает?
4. Это ошибка передачи девайса.
5. Какие настройки порта и что за девайс?

Re: Проблема с VISA

Добавлено: 23 мар 2016, 10:13
Blackman
Посмотрел пример. Если сделано один в один: на выходе VISA Read должна быть ошибка таймаута -> Read buffer=Empty String (пустая строка) -> ошибка парсинга значения кода -> первый cкрин при Enable Automatic Error Handler.

При 9600 Baud: передача 1 байта = 1 ms с копейкой, читаем 200 байт = 200 ms с копейками, парсим один первый байт -> 1000 ms per second/ 200 ms = 5 отсчетов в секунду -> реальная скорость измерения (sample rate).

Re: Проблема с VISA

Добавлено: 23 мар 2016, 11:41
MillyVolt
А почему с девайсом, смотрел через 2 терминальные программы,, девайс передает постоянно байт 00011100, как я его и программировал,, также через Test Panel первый раз при нажатии Read видит эти байты 1С или 00011100.
Девайс точно ничем другим не занят, так как ошибка при попытке открытия Test Panel возникает только когда в программе указываешь порт COM3, если этого не сделать, то ошибки нет, тестовая панель открывается и первая команда Read проходит нормально, начиная со второй, как писал выше появляется ошибка в тестовой панели.
-------------------
Настройки порта стандартные, ничего не менял, такие же, как на меге16 настроен UART
9600
No parity
1 stop bit
------------------
А что такое BD VS изопервогоопунктаовашегоосообщения? :)
------------------
Девайс - МК мега16, подключен через USB посредством платы на FT232, стоят драйверы, то есть комп видит COM порт, который является виртуальным и устройство USB serial port.

Re: Проблема с VISA

Добавлено: 23 мар 2016, 23:07
MillyVolt
Заметил, что у меня не установлен пакет драйверов NI-DAQmx, он же в моём случае точно должен быть?
Или этот пакет нужен только для устройств от NI?

Re: Проблема с VISA

Добавлено: 24 мар 2016, 08:29
IvanLis
MillyVolt писал(а):Заметил, что у меня не установлен пакет драйверов NI-DAQmx, он же в моём случае точно должен быть?
Или этот пакет нужен только для устройств от NI?
Его назначение немного шире, о чем можно прочесть: http://sine.ni.com/nips/cds/view/p/lang/ru/nid/10181
Но Вам он не нужен, для работы с портами достаточно NI-VISA: https://www.ni.com/visa/

Re: Проблема с VISA

Добавлено: 24 мар 2016, 09:03
dadreamer
MillyVolt
1. Попробуйте безо всяких панелей сделать простое циклическое чтение данных из порта, без перевода из строки в число и логики, просто накопление строк и вывод на FP.
2. Обновите все дрова на ваш USB-переходник.
3. Попробуйте работать через функции FTD2XX.DLL: http://www.ftdichip.com/Support/Softwar ... abVIEW.htm (требуется драйвер D2XX) (это, если через Визу вообще никак не выходит).
4. Проверьте вашу программу на МК, может, там где-то собака зарыта.
5. Проверьте кабели и их распайку, мало ли.
MillyVolt писал(а):А что такое BD VS изпробелпервогопробелпунктапробелвашегопробелсообщения? :)
Не VS, а :vi: — Virtual Instrument / Виртуальный инструмент / Виртуальный прибор :wink:

Re: Проблема с VISA

Добавлено: 24 мар 2016, 09:04
Blackman
Делал пример ...
???
А что такое BD VI изопервогоопунктаовашегоосообщения? :)
:vi: - Virtual Instrument (программа)
BD - :vi: Block Diagram
FP - :vi: Front Panel

Ошибка на скрине 4 означает переполнение входного буфера FIFO виртуального COM порта. Это означает, что драйвер этого порта не смог переслать данные из FIFO в общую память системы, из которой их берут уже все остальные игроки, в том числе и VISA.
Используйте при работе с :vi: - NI IO Trace (старое название NI Spy) для более детального понимания, как взаимодействует VISA с системными драйверами.
P.S. Нельзя одновременно работать с Test Panel и программой. Только один игрок владеет мячом (портом)))

Re: Проблема с VISA

Добавлено: 26 мар 2016, 13:06
MillyVolt
Blackman писал(а):P.S. Нельзя одновременно работать с Test Panel и программой. Только один игрок владеет мячом (портом)))
Да, была такая мысль :)
При чтении последовательного порта функцией Scan from String ошибка, что не тот формат данных, not expected data format.
Но например кол-во байт в строке считает правильно, в програме (скрин прикреплен), что набросал, когда меняется число байтов для считывания функцией Read VISA, числовой индикатор Numeric возвращает это число байт в буфере.
Программа.jpg
------
Программа на МК всё, что делает, это посылает по UART байт 0x001C. Проверял 2мя терминальными программами и VISA Test Panel, байт приходит. Настройки UART те же, что и у порта COM3, с которым работаю в LabView.
------
на всякий уточню, что NI VISA у меня установлена 15я, последняя версия на офф сайте, может поставить более старую, какую-нибудь 5ю с копейками?
------
dadreamer писал(а):MillyVolt
1. Попробуйте безо всяких панелей сделать простое циклическое чтение данных из порта, без перевода из строки в число и логики, просто накопление строк и вывод на FP.
2. Обновите все дрова на ваш USB-переходник.
Дрова поставил буквально перед использованием устройства в LabView, собсно для того всё и мутил :)
Извиняюсь, если глупый вопрос, как вывести данные с выхода Read в формате строки?

Re: Проблема с VISA

Добавлено: 26 мар 2016, 13:29
dadreamer
MillyVolt писал(а):Извиняюсь, если глупый вопрос, как вывести данные с выхода Read в формате строки?
Так они у вас итак уже в строковом формате. Вот, на вашем скриншоте выше - розовый провод - это string. Заверните VISA Read в цикл While и сделайте накполение строк в сдвиговый регистр (если не таймаут; если таймаут, то ничего не делаем). Выведите на экран, чтобы посмотреть, какие данные приходят.
MillyVolt писал(а):на всякий уточню, что NI VISA у меня установлена 15я, последняя версия на офф сайте, может поставить более старую, какую-нибудь 5ю с копейками?
Зачем?

Re: Проблема с VISA

Добавлено: 26 мар 2016, 13:33
MillyVolt
То, что строковый я уже понял, просто в LabView я совсем нуб, это мой первый опыт, вопрос был в том, как именно вывести, в принципе именно это я и пытаюсь сделать :)
Сейчас попробую.. значит нужны сдвиговый регистр и экран..
Не могли бы подсказать, как называются в LabView эти компоненты?

Re: Проблема с VISA

Добавлено: 26 мар 2016, 13:47
MillyVolt
Уважаемый IvanLis, вас понял на будущее, а это сообщение напишу отдельно, чтобы тема обновилась.

Попробовал вывести string на индикатор, но он пуст, может что не правильно?
программа2.jpg

Re: Проблема с VISA

Добавлено: 26 мар 2016, 13:53
dadreamer
MillyVolt, попробуйте вот этот пример.

Re: Проблема с VISA

Добавлено: 26 мар 2016, 14:55
MillyVolt
Вот что получилось, видео с экрана, так проще) (пардон, последние секунд 20 лишние)
2016_03_26_14_51_40_1920x1080.rar
(1.03 МБ) 231 скачивание
В окне Input Data пусто, после 1го нажатия Stop появляется ошибка, после неё ползунок справа в окне Input Data не останавливается(до появления ошибки останавливался), а постоянно уходит вверх, то есть приходят пустые байты что-ли постоянно.

Для модератора: слетела подписка на тему, уже 2й раз; из-за этого, когда 1й раз слетела, увидел ответы только через 2 дня, подставон :)

Re: Проблема с VISA

Добавлено: 26 мар 2016, 16:39
Blackman
После первой же ошибки VISA Read уже не работает, так как на ее вход еггог in будет постоянно приходить ошибка из-за Shift Register, и VI будет "молотить" c максимально возможной скоростью нагружая проц.
А ошибка все та же. Покажите настройки COM3 на странице Advanced в Диспетчере Устройств, если такая страница есть для совместимости с UART.
Да, по поводу ошибки Scan From String. В прошлый раз упустил из виду. что передача в бинарном формате. В этом случае лучше всего конвертировать строку в массив U8 при помощи функции Tape Cast .