Передача и приём данных

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Передача и приём данных

Сообщение Sergey Ivanov »

Всем привет.
С микроконтроллера передаю 9 переменных, длина каждой переменной 4 байта (всего 36 байт). Передаю по RS232 со скоростью 19200 бит/с (24 байта/10 мс).
Передаю следующим образом:
1.PNG

Принимаю на ПК вот так:
2.PNG
Но, получается так, что данные теряется и я не могу понять где теряются . Или как правильнее организовать передачу данных без потери и с максимально возможносй скоростью ?
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Передача и приём данных

Сообщение Jakob Brontfeyn »

а почему не пеpeдать сразу всю строку 38 байт, потом пауза ну пусть 20мс ?
И прием будет проще сделать без всякой VISA
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Передача и приём данных

Сообщение Sergey Ivanov »

у меня пауза в микроконтроллере, который передаёт 10 мс (меньше нельзя). а передавать, скорее всего, придётся больше, чем 36 байт. (около 100, думаю). за 10 мс на скорости 19200 б/с можно передать только 24 байта, поэтому, и разделил по итерациям цикла
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Передача и приём данных

Сообщение Eugen Graf »

Нужно как то обозначить пакет, иначе будет туфта. Как ты хочешь понять что пакет начинается с определённого места? Ты ведь можешь начать принимать например с пятого символа, и как ты поймёшь где начало?

А пауза необязательна, можно передавать без паузы.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Передача и приём данных

Сообщение Jakob Brontfeyn »

загляни для информации
http://labviewportal.org/viewtopic.php? ... %8B#p41291
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Передача и приём данных

Сообщение Sergey Ivanov »

Eugen Graf писал(а):Нужно как то обозначить пакет, иначе будет туфта. Как ты хочешь понять что пакет начинается с определённого места? Ты ведь можешь начать принимать например с пятого символа, и как ты поймёшь где начало?

А пауза необязательна, можно передавать без паузы.
ну я пометил исходный пакет, который не был поделён началом (S) и концом (Z). или я так понял, что надо пометить кусок от пакета ?
Jakob Brontfeyn писал(а):загляни для информации
http://labviewportal.org/viewtopic.php? ... %8B#p41291
спасибо. поизучаю
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Передача и приём данных

Сообщение Eugen Graf »

Sergey Ivanov писал(а):
Eugen Graf писал(а):Нужно как то обозначить пакет, иначе будет туфта. Как ты хочешь понять что пакет начинается с определённого места? Ты ведь можешь начать принимать например с пятого символа, и как ты поймёшь где начало?

А пауза необязательна, можно передавать без паузы.
ну я пометил исходный пакет, который не был поделён началом (S) и концом (Z). или я так понял, что надо пометить кусок от пакета ?
Jakob Brontfeyn писал(а):загляни для информации
http://labviewportal.org/viewtopic.php? ... %8B#p41291
спасибо. поизучаю
Ну тогда нормально, при конфигурации поставь сверху Termination Character = "Z". А количество байт для чтения сделай чуть больше, чем размер пакета.
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Передача и приём данных

Сообщение Sergey Ivanov »

Eugen Graf писал(а): Ну тогда нормально, при конфигурации поставь сверху Termination Character = "Z". А количество байт для чтения сделай чуть больше, чем размер пакета.
а как это сделать ?
2.PNG
2.PNG (4.01 КБ) 4227 просмотров
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
IvanLis

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

Re: Передача и приём данных

Сообщение IvanLis »

Sergey Ivanov писал(а):а как это сделать ?
для твоего случая "Z"=90
1.png
1.png (12.23 КБ) 4215 просмотров
а почему в качестве терминатора не используешь символ окончания строки или перевода корретки
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Передача и приём данных

Сообщение Sergey Ivanov »

IvanLis писал(а):
Sergey Ivanov писал(а):а как это сделать ?
для твоего случая "Z"=90
1.png
а почему в качестве терминатора не используешь символ окончания строки или перевода корретки

Иван, подскажи, пожалуйста. Почему именно 90 ? Я сначала подумал, что это код в ASCII, но это вроде не так.

Ну можно и символ окончания строки, просто решил вот, используя Z
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
Oleg B.

Activity Professionalism
leader
leader
Сообщения: 674
Зарегистрирован: 25 сен 2011, 11:30
Награды: 2
Версия LabVIEW: 5 .. 2021
Откуда: Israel
Контактная информация:

Re: Передача и приём данных

Сообщение Oleg B. »

IvanLis писал(а):для твоего случая "Z"=90
Sergey Ivanov писал(а):Почему именно 90 ? Я сначала подумал, что это код в ASCII, но это вроде не так.
Именно, что так - "Z" = 90 (decimal) = 5A (hexadecimal)
veni, vidi, phallomorphi
Аватара пользователя
Sergey Ivanov

Activity Professionalism Gold Автор
expert
expert
Сообщения: 1217
Зарегистрирован: 01 мар 2009, 20:54
Награды: 5
Версия LabVIEW: 2018
Откуда: Санкт-Петербург, Кронштадт
Благодарил (а): 11 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Передача и приём данных

Сообщение Sergey Ivanov »

ну вот я тоже сначала так подумал, но потом таблицу в википедии посмотрел. это ошибка в таблице или я что-то не понимаю опять ? :shok:
66.PNG
Добро пожаловать на http://rk-stud.ru/
Аватара пользователя
IvanLis

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

Re: Передача и приём данных

Сообщение IvanLis »

Sergey Ivanov писал(а):ну вот я тоже сначала так подумал
1.png
1.png (9.92 КБ) 4201 просмотр
на счет приведенной таблицы ничего сказать не могу :wink:
но можно самому проверить: http://ascii.org.ru/
1.png
1.png (10.71 КБ) 4200 просмотров
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»