Приходят не все данные

Захват, обработка и генерирование сигнала
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Приходят не все данные

Сообщение GT21 »

Использую осциллограф GDS-72204. Почему-то порой приходят данные вроде "#510000вфапф" - т.е. я должен получить 10000 точек, а получаю только 5 (число меняется, может быть 3, а может быть и 200, перезапускаешь программу и он собирает все 10000 точек). Щупы новые. Подключение по USB (в программе определяется как COM4 со скоростью 9600). Закономерностей выявить не смог. С чем такое может быть связано?
LabVIEW 8.6
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Приходят не все данные

Сообщение Artem.spb »

Точка - это сколько?
Сколько вы их ждёте и как вычитываете?
Очень примитивный расчёт (без учёта служебных символов и пр).
9600 бод ~ 1200 байт/сек.
если "точка"= байт, то на ваш пакет нужно до 10с.
если там числа с плавающей точкой, то значение 2-4 байта, т.е. пакет нужно ждать 20-40с.
но такими кусками я бы не рискнул читать, лучше по частям. Не известно, какой у вас буфер порта, может он не все 10000 значений вмещает.
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Приходят не все данные

Сообщение 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
LabVIEW 8.6
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Приходят не все данные

Сообщение Artem.spb »

Я совсем не понимаю, как на скорости 9600 вы за полсекунды получаете пачку 10000 точек.
ошибка есть, когда данных меньше?
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Приходят не все данные

Сообщение GT21 »

Ошибки нет
LabVIEW 8.6
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Приходят не все данные

Сообщение GT21 »

Вот тестовая программа. На том самом return count (из VISA Read) он выдает это меняющееся число
UPD: возможно это связано с масштабом графика и его смещению по высоте
Вложения
test2.vi
(38.17 КБ) 127 скачиваний
LabVIEW 8.6
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Приходят не все данные

Сообщение Artem.spb »

Без прибора проверить нереально.
Странно, что ошибки нет.
попробуйте не закрывать порт, а повторить попытку чтения.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Приходят не все данные

Сообщение Blackman »

Когда принимаете данные от прибора надо отключать terminal char.
Есть готовый драйвер для этого прибора GoodWill Instek GDS - 2000 series. 7 в названии это региональная адаптация: RU
Upd. LV9 Driver: https://www.gwinstek.com/en-global/prod ... /GDS-2000E
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Приходят не все данные

Сообщение 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 такой функции нет
Последний раз редактировалось GT21 10 июл 2019, 09:08, всего редактировалось 1 раз.
LabVIEW 8.6
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Приходят не все данные

Сообщение GT21 »

Посмотрел еще: вот сейчас пришло 11 символов - "#510000\003\00\n", в конце есть \n, значит это конец сообщения. Но если перезапустить, то снова получу 10к символов
LabVIEW 8.6
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Приходят не все данные

Сообщение Blackman »

Driver GDS - 72024 version LabVIEW 85
Вложения
GWInstek GDS2000E Series Folder 85.zip
Version LabVIEW 85
(1.31 МБ) 145 скачиваний
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Приходят не все данные

Сообщение 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", а я не указывал. Это может как-то влиять на работу?
LabVIEW 8.6
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Приходят не все данные

Сообщение Blackman »

Серия Е более продвинутая и возможно там больше VI для работы с математикой и т.д.
Добавьте VI, при открытии которых выдается ошибка, в библиотеку.
На всякий случай :wink:
Вложения
GWInstek GDS2000A Series_20180119_85.zip
Version LabVIEW 85
(1.48 МБ) 150 скачиваний
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: Приходят не все данные

Сообщение IvanLis »

GT21 писал(а):А где именно отключать? Он у меня включен в Write, в Read такой функции нет
VISA Configure Serial Port VI
Вход Enable Termination Char, по умолчанию True, Вам необходимо подключить константу и установить значение False
GT21
user
user
Сообщения: 74
Зарегистрирован: 29 апр 2016, 09:22
Версия LabVIEW: 8.6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Приходят не все данные

Сообщение GT21 »

Blackman писал(а):Серия Е более продвинутая и возможно там больше VI для работы с математикой и т.д.
Добавьте VI, при открытии которых выдается ошибка, в библиотеку.
На всякий случай :wink:
Прям большущее спасибо, буду разбираться. А на будущее - как вы переделываете библиотеку под старую версию? Чтобы я потом сам мог
LabVIEW 8.6
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Обработка сигнала»