Страница 1 из 2
Приходят не все данные
Добавлено: 09 июл 2019, 13:47
GT21
Использую осциллограф GDS-72204. Почему-то порой приходят данные вроде "#510000вфапф" - т.е. я должен получить 10000 точек, а получаю только 5 (число меняется, может быть 3, а может быть и 200, перезапускаешь программу и он собирает все 10000 точек). Щупы новые. Подключение по USB (в программе определяется как COM4 со скоростью 9600). Закономерностей выявить не смог. С чем такое может быть связано?
Re: Приходят не все данные
Добавлено: 09 июл 2019, 14:09
Artem.spb
Точка - это сколько?
Сколько вы их ждёте и как вычитываете?
Очень примитивный расчёт (без учёта служебных символов и пр).
9600 бод ~ 1200 байт/сек.
если "точка"= байт, то на ваш пакет нужно до 10с.
если там числа с плавающей точкой, то значение 2-4 байта, т.е. пакет нужно ждать 20-40с.
но такими кусками я бы не рискнул читать, лучше по частям. Не известно, какой у вас буфер порта, может он не все 10000 значений вмещает.
Re: Приходят не все данные
Добавлено: 09 июл 2019, 15:05
GT21
Как я понимаю, точка это точка (из графика осциллограммы).
Я отправляю через VISA Write "acq1:mem?\n", потом идет блок VISA Read со считыванием 11000 символов. В итоге я получаю 10008 симоволов (7 - длина данных, и последний - конец строки). Но иногда получаю, например, только 10.
Это 10000 точек осциллограммы (как я понял, это hex-числа, получаемые в виде текста; я декодирую их через String To Byte Array, он преобразует их в U8-формат, т.е. 0-255 на точку). Таймаут у меня не установлен, значит должен действовать по-умолчанию. Правда, если я правильно понял, осциллограф выдает каждую точку в виде двух байт, т.е. фактических точек - 5000.
Да и, как я уже сказал, обычно он получает все 10000, и на это уходит полсекунды. Меньше точек я редко
Вот пример получаемого, в виде текста в формате " '\' Codes Display": #510000\002\00\\\00[\00c\00\n
Re: Приходят не все данные
Добавлено: 09 июл 2019, 15:23
Artem.spb
Я совсем не понимаю, как на скорости 9600 вы за полсекунды получаете пачку 10000 точек.
ошибка есть, когда данных меньше?
Re: Приходят не все данные
Добавлено: 09 июл 2019, 15:37
GT21
Ошибки нет
Re: Приходят не все данные
Добавлено: 09 июл 2019, 15:42
GT21
Вот тестовая программа. На том самом return count (из VISA Read) он выдает это меняющееся число
UPD: возможно это связано с масштабом графика и его смещению по высоте
Re: Приходят не все данные
Добавлено: 09 июл 2019, 16:07
Artem.spb
Без прибора проверить нереально.
Странно, что ошибки нет.
попробуйте не закрывать порт, а повторить попытку чтения.
Re: Приходят не все данные
Добавлено: 09 июл 2019, 18:02
Blackman
Когда принимаете данные от прибора надо отключать
terminal char.
Есть готовый драйвер для этого прибора GoodWill Instek GDS - 2000 series. 7 в названии это региональная адаптация: RU
Upd. LV9 Driver:
https://www.gwinstek.com/en-global/prod ... /GDS-2000E
Re: Приходят не все данные
Добавлено: 10 июл 2019, 08:10
GT21
Проблема в том, что у меня LV8.6. Кстати, существует ли возможность пересохранить библиотеку под эту версию?
Blackman писал(а):Когда принимаете данные от прибора надо отключать terminal char.
А где именно отключать? Он у меня включен в Write, в Read такой функции нет
Re: Приходят не все данные
Добавлено: 10 июл 2019, 08:28
GT21
Посмотрел еще: вот сейчас пришло 11 символов - "#510000\003\00\n", в конце есть \n, значит это конец сообщения. Но если перезапустить, то снова получу 10к символов
Re: Приходят не все данные
Добавлено: 10 июл 2019, 09:50
Blackman
Driver GDS - 72024 version LabVIEW 85
Re: Приходят не все данные
Добавлено: 10 июл 2019, 10:14
GT21
Blackman писал(а):Driver GDS - 72024 version LabVIEW 85
Большое спасибо. А от серии 2000Е подойдет для 2000А? Потому что у меня 72204, это серия А, а не Е
Можете его переделать
https://www.gwinstek.com/en-global/prod ... /GDS-2000A ?
UPD: к сожалению та ваша версия открывается, но не запускается, в ошибках пишет "This VI's owning library is missing"
UPD2: заметил, что в примерах в начале команды указывается ":", например ":RUN", а я не указывал. Это может как-то влиять на работу?
Re: Приходят не все данные
Добавлено: 10 июл 2019, 13:10
Blackman
Серия Е более продвинутая и возможно там больше VI для работы с математикой и т.д.
Добавьте VI, при открытии которых выдается ошибка, в библиотеку.
На всякий случай
Re: Приходят не все данные
Добавлено: 10 июл 2019, 13:30
IvanLis
GT21 писал(а):А где именно отключать? Он у меня включен в Write, в Read такой функции нет
VISA Configure Serial Port VI
Вход
Enable Termination Char, по умолчанию
True, Вам необходимо подключить константу и установить значение
False
Re: Приходят не все данные
Добавлено: 10 июл 2019, 13:37
GT21
Blackman писал(а):Серия Е более продвинутая и возможно там больше VI для работы с математикой и т.д.
Добавьте VI, при открытии которых выдается ошибка, в библиотеку.
На всякий случай
Прям большущее спасибо, буду разбираться. А на будущее - как вы переделываете библиотеку под старую версию? Чтобы я потом сам мог