Приходят не все данные
-
- user
- Сообщения: 74
- Зарегистрирован: 29 апр 2016, 09:22
- Версия LabVIEW: 8.6
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Приходят не все данные
Использую осциллограф GDS-72204. Почему-то порой приходят данные вроде "#510000вфапф" - т.е. я должен получить 10000 точек, а получаю только 5 (число меняется, может быть 3, а может быть и 200, перезапускаешь программу и он собирает все 10000 точек). Щупы новые. Подключение по USB (в программе определяется как COM4 со скоростью 9600). Закономерностей выявить не смог. С чем такое может быть связано?
LabVIEW 8.6
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Приходят не все данные
Точка - это сколько?
Сколько вы их ждёте и как вычитываете?
Очень примитивный расчёт (без учёта служебных символов и пр).
9600 бод ~ 1200 байт/сек.
если "точка"= байт, то на ваш пакет нужно до 10с.
если там числа с плавающей точкой, то значение 2-4 байта, т.е. пакет нужно ждать 20-40с.
но такими кусками я бы не рискнул читать, лучше по частям. Не известно, какой у вас буфер порта, может он не все 10000 значений вмещает.
Сколько вы их ждёте и как вычитываете?
Очень примитивный расчёт (без учёта служебных символов и пр).
9600 бод ~ 1200 байт/сек.
если "точка"= байт, то на ваш пакет нужно до 10с.
если там числа с плавающей точкой, то значение 2-4 байта, т.е. пакет нужно ждать 20-40с.
но такими кусками я бы не рискнул читать, лучше по частям. Не известно, какой у вас буфер порта, может он не все 10000 значений вмещает.
-
- user
- Сообщения: 74
- Зарегистрирован: 29 апр 2016, 09:22
- Версия LabVIEW: 8.6
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Приходят не все данные
Как я понимаю, точка это точка (из графика осциллограммы).
Я отправляю через 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
Я отправляю через 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
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Приходят не все данные
Я совсем не понимаю, как на скорости 9600 вы за полсекунды получаете пачку 10000 точек.
ошибка есть, когда данных меньше?
ошибка есть, когда данных меньше?
-
- user
- Сообщения: 74
- Зарегистрирован: 29 апр 2016, 09:22
- Версия LabVIEW: 8.6
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Приходят не все данные
Вот тестовая программа. На том самом return count (из VISA Read) он выдает это меняющееся число
UPD: возможно это связано с масштабом графика и его смещению по высоте
UPD: возможно это связано с масштабом графика и его смещению по высоте
- Вложения
-
- test2.vi
- (38.17 КБ) 130 скачиваний
LabVIEW 8.6
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Приходят не все данные
Без прибора проверить нереально.
Странно, что ошибки нет.
попробуйте не закрывать порт, а повторить попытку чтения.
Странно, что ошибки нет.
попробуйте не закрывать порт, а повторить попытку чтения.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Приходят не все данные
Когда принимаете данные от прибора надо отключать terminal char.
Есть готовый драйвер для этого прибора GoodWill Instek GDS - 2000 series. 7 в названии это региональная адаптация: RU
Upd. LV9 Driver: https://www.gwinstek.com/en-global/prod ... /GDS-2000E
Есть готовый драйвер для этого прибора GoodWill Instek GDS - 2000 series. 7 в названии это региональная адаптация: RU
Upd. LV9 Driver: https://www.gwinstek.com/en-global/prod ... /GDS-2000E
-
- user
- Сообщения: 74
- Зарегистрирован: 29 апр 2016, 09:22
- Версия LabVIEW: 8.6
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Приходят не все данные
Проблема в том, что у меня LV8.6. Кстати, существует ли возможность пересохранить библиотеку под эту версию?Blackman писал(а): Есть готовый драйвер для этого прибора GoodWill Instek GDS - 2000 series. 7 в названии это региональная адаптация: RU
Upd. LV9 Driver: https://www.gwinstek.com/en-global/prod ... /GDS-2000E
А где именно отключать? Он у меня включен в Write, в Read такой функции нетBlackman писал(а):Когда принимаете данные от прибора надо отключать terminal char.
Последний раз редактировалось GT21 10 июл 2019, 09:08, всего редактировалось 1 раз.
LabVIEW 8.6
-
- user
- Сообщения: 74
- Зарегистрирован: 29 апр 2016, 09:22
- Версия LabVIEW: 8.6
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Приходят не все данные
Посмотрел еще: вот сейчас пришло 11 символов - "#510000\003\00\n", в конце есть \n, значит это конец сообщения. Но если перезапустить, то снова получу 10к символов
LabVIEW 8.6
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Приходят не все данные
Driver GDS - 72024 version LabVIEW 85
- Вложения
-
- GWInstek GDS2000E Series Folder 85.zip
- Version LabVIEW 85
- (1.31 МБ) 148 скачиваний
-
- user
- Сообщения: 74
- Зарегистрирован: 29 апр 2016, 09:22
- Версия LabVIEW: 8.6
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Приходят не все данные
Большое спасибо. А от серии 2000Е подойдет для 2000А? Потому что у меня 72204, это серия А, а не ЕBlackman писал(а):Driver GDS - 72024 version LabVIEW 85
Можете его переделать https://www.gwinstek.com/en-global/prod ... /GDS-2000A ?
UPD: к сожалению та ваша версия открывается, но не запускается, в ошибках пишет "This VI's owning library is missing"
UPD2: заметил, что в примерах в начале команды указывается ":", например ":RUN", а я не указывал. Это может как-то влиять на работу?
LabVIEW 8.6
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Приходят не все данные
Серия Е более продвинутая и возможно там больше VI для работы с математикой и т.д.
Добавьте VI, при открытии которых выдается ошибка, в библиотеку.
На всякий случай
Добавьте VI, при открытии которых выдается ошибка, в библиотеку.
На всякий случай
- Вложения
-
- GWInstek GDS2000A Series_20180119_85.zip
- Version LabVIEW 85
- (1.48 МБ) 154 скачивания
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Приходят не все данные
VISA Configure Serial Port VIGT21 писал(а):А где именно отключать? Он у меня включен в Write, в Read такой функции нет
Вход Enable Termination Char, по умолчанию True, Вам необходимо подключить константу и установить значение False
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- user
- Сообщения: 74
- Зарегистрирован: 29 апр 2016, 09:22
- Версия LabVIEW: 8.6
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Приходят не все данные
Прям большущее спасибо, буду разбираться. А на будущее - как вы переделываете библиотеку под старую версию? Чтобы я потом сам могBlackman писал(а):Серия Е более продвинутая и возможно там больше VI для работы с математикой и т.д.
Добавьте VI, при открытии которых выдается ошибка, в библиотеку.
На всякий случай
LabVIEW 8.6
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 3 Ответы
- 631 Просмотры
-
Последнее сообщение IvanLis