Страница 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
Blackman писал(а): Есть готовый драйвер для этого прибора GoodWill Instek GDS - 2000 series. 7 в названии это региональная адаптация: RU
Upd. LV9 Driver: https://www.gwinstek.com/en-global/prod ... /GDS-2000E
Проблема в том, что у меня 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, при открытии которых выдается ошибка, в библиотеку.
На всякий случай :wink:

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, при открытии которых выдается ошибка, в библиотеку.
На всякий случай :wink:
Прям большущее спасибо, буду разбираться. А на будущее - как вы переделываете библиотеку под старую версию? Чтобы я потом сам мог