Maxmems Posted November 20, 2020 Share Posted November 20, 2020 Приветствую! Проблема в следующем, при подключении внешних устройств к MOXA UPORT 1650-16/1650-8 на скорости интерфейса RS-485 4w 921600 бит/с, происходит непрерывный пропуск пакетов, при этом, с каждым последующим подключенным устройством, увеличивается пропуск пакетов и далее датчики перестают определяться. Более простыми словами. Подключаю датчик №1 к MOXA (тип преобразователя интерфейса RS-485 4w, скорость 921600 бит/с) происходит пропуск пакетов, порядка 5 в 10сек. Далее подключаем датчик №2, пропуск пакетов увеличивается и так далее. Причем после подключения датчика №4 они (датчики) и вовсе перестают определяться. Link to comment
Знайка Posted November 20, 2020 Share Posted November 20, 2020 Добрый день! Подключаете к USB 2.0, я полагаю? Не к 1? Link to comment
Maxmems Posted November 20, 2020 Author Share Posted November 20, 2020 1 минуту назад, Знайка сказал: Добрый день! Подключаете к USB 2.0, я полагаю? Не к 1? Кабелем входящим в комплект Hi-Speed 2.0 в USB компьютера 3.0 Link to comment
Знайка Posted November 20, 2020 Share Posted November 20, 2020 52 minutes ago, Maxmems said: Кабелем входящим в комплект Hi-Speed 2.0 в USB компьютера 3.0 Что то пока идей нет. Серийный номер UPort сможете назвать? Я так понял вы пробовали 2 устройства, 1650-16 и 1650-8? Поведение прям идентичное? Link to comment
Maxmems Posted November 23, 2020 Author Share Posted November 23, 2020 В 20.11.2020 в 16:49, Знайка сказал: Что то пока идей нет. Серийный номер UPort сможете назвать? Я так понял вы пробовали 2 устройства, 1650-16 и 1650-8? Поведение прям идентичное? Да, всё верно, имеется 2 преобразователя один на 8 портов, другой на 16 с одинаковой проблемой. Серийные номера: UPort 1650-8 (TBZAB1102264); UPort 1650-16 (TBZAB1102309). p.s. также имеется преобразователь FTDI, с ним проблем не наблюдается. Link to comment
Знайка Posted November 23, 2020 Share Posted November 23, 2020 1 hour ago, Maxmems said: Да, всё верно, имеется 2 преобразователя один на 8 портов, другой на 16 с одинаковой проблемой. Серийные номера: UPort 1650-8 (TBZAB1102264); UPort 1650-16 (TBZAB1102309). p.s. также имеется преобразователь FTDI, с ним проблем не наблюдается. Спасибо. Написал разработчикам, посмотрим что ответят. Link to comment
Знайка Posted November 24, 2020 Share Posted November 24, 2020 Добрый день. Есть мнение попробовать отключить буфер UART FIFO в разделе Ports Configuration. Изменится ли поведение? Link to comment
Maxmems Posted November 24, 2020 Author Share Posted November 24, 2020 8 часов назад, Знайка сказал: Добрый день. Есть мнение попробовать отключить буфер UART FIFO в разделе Ports Configuration. Изменится ли поведение? Добрый день! К сожалению, не помогло. Думаю, стоит описать, что нам необходимо прогнать через преобразовать MOXA, для более детального разбора проблемы. Наш датчик, подключенный к преобразователю MOXA, формирует наборный пакет из n параметров 88 байт ~ 880 бит и итоговая скорость при 1кГц составляет 880000 бит/сек., что составляет ~95,5% от скорости интерфейса MOXA 921600 бит/сек. Link to comment
Знайка Posted November 24, 2020 Share Posted November 24, 2020 1 minute ago, Maxmems said: Добрый день! К сожалению, не помогло. Думаю, стоит описать, что нам необходимо прогнать через преобразовать MOXA, для более детального разбора проблемы. Наш датчик, подключенный к преобразователю MOXA, формирует наборный пакет из n параметров 88 байт ~ 880 бит и итоговая скорость при 1кГц составляет 880000 бит/сек., что составляет ~95,5% от скорости интерфейса MOXA 921600 бит/сек. Пришлите, пожалуйста, принтскрин раздела Ports Configuration. И вот тут поясните - 880000 бит/сек это конечно хорошо, а с какой бодностью оy отдаёт их в интерфейс? Link to comment
Maxmems Posted November 24, 2020 Author Share Posted November 24, 2020 25 минут назад, Знайка сказал: Пришлите, пожалуйста, принтскрин раздела Ports Configuration. И вот тут поясните - 880000 бит/сек это конечно хорошо, а с какой бодностью оy отдаёт их в интерфейс? Отправляем пакет 88 байт в 1 мсек Link to comment
Знайка Posted November 24, 2020 Share Posted November 24, 2020 Ага, спасибо. Какую ОС используете? Если оправляете "88 байт в 1 мсек" то почему используется 921600? Link to comment
Maxmems Posted November 24, 2020 Author Share Posted November 24, 2020 5 часов назад, Знайка сказал: Ага, спасибо. Какую ОС используете? Если оправляете "88 байт в 1 мсек" то почему используется 921600? OC Windows. Возможно мы не совсем понимаем друг друга, но как я писал выше "формирует пакет из n параметров 88 байт ~ 880 бит и итоговая скорость при 1кГц составляет 880000 бит/сек., что составляет ~95,5% от скорости интерфейса MOXA 921600 бит/сек". Т.е. передаётся пакет 88 байт слитно каждую мсек. Какая по Вашему мнению должна быть скорость? Также повторюсь, что имеется преобразователь на FTDI "USB2-H-6008-M" с ним проблем нет, работает на 921600бит/сек, и да, если его настроить, допустим, на 500000бит/сек, то также идёт пропуск пакетов. Т.е. по работе MOXA, на первый взгляд, складывается впечатление, что не хватает пропускной способности. Link to comment
Знайка Posted November 25, 2020 Share Posted November 25, 2020 8 hours ago, Maxmems said: OC Windows. Шикарный ответ Я возьму на вооружение А можно чуточку подробнее? Link to comment
Знайка Posted November 25, 2020 Share Posted November 25, 2020 8 hours ago, Maxmems said: Возможно мы не совсем понимаем друг друга, но как я писал выше "формирует пакет из n параметров 88 байт ~ 880 бит и итоговая скорость при 1кГц составляет 880000 бит/сек., что составляет ~95,5% от скорости интерфейса MOXA 921600 бит/сек". Т.е. передаётся пакет 88 байт слитно каждую мсек. Какая по Вашему мнению должна быть скорость? Также повторюсь, что имеется преобразователь на FTDI "USB2-H-6008-M" с ним проблем нет, работает на 921600бит/сек, и да, если его настроить, допустим, на 500000бит/сек, то также идёт пропуск пакетов. Т.е. по работе MOXA, на первый взгляд, складывается впечатление, что не хватает пропускной способности. RS-485 это асинхронный интерфейс. Для его корректной работы так называемый boudrate на на устройствах не должен отличаться более чем на 3,75%. Если это интересно, то можно почитать про подробности приёма фронта start бита и смещение относительно центра stop бита. Это справедливо для 8-N-1, разумеется. Приводимый здесь величины (880000 и 921600) отличаются друг от друга на ~9,55%. Такой интерфейс корректно работать не будет. Забыл ещё одну мысль: если реальный boudrate 880000, как заявлялось ранее, то почему вы открываете COM на 921600? По идее, UPort 1650 поддерживают работу с нестандартными boudrate, попробуйте работать на 880000. Link to comment
Maxmems Posted November 25, 2020 Author Share Posted November 25, 2020 3 часа назад, Знайка сказал: Шикарный ответ Я возьму на вооружение А можно чуточку подробнее? Windows 10 Pro x64. 3 часа назад, Знайка сказал: RS-485 это асинхронный интерфейс. Для его корректной работы так называемый boudrate на на устройствах не должен отличаться более чем на 3,75%. Если это интересно, то можно почитать про подробности приёма фронта start бита и смещение относительно центра stop бита. Это справедливо для 8-N-1, разумеется. Приводимый здесь величины (880000 и 921600) отличаются друг от друга на ~9,55%. Такой интерфейс корректно работать не будет. Забыл ещё одну мысль: если реальный boudrate 880000, как заявлялось ранее, то почему вы открываете COM на 921600? По идее, UPort 1650 поддерживают работу с нестандартными boudrate, попробуйте работать на 880000. Причина не в этом, т.к. датчики с пакетом в 32 байта, т.е. меньшего размера, но при остальных равных параметрах, работают нормально. Скинул Вам в лс протокол взаимодействия с изделием, которое подключаем к UPort 1650-8/16. Link to comment
Знайка Posted November 25, 2020 Share Posted November 25, 2020 То есть 880000 это параметр Fвых? Или что это? Бит, который определяет скорость основного интерфейса в каком значении стоит? 0? Я тогда не очень понимаю, как на USB2-H-6008-M могут данные на 500000 бод приниматься вообще? Link to comment
Maxmems Posted November 25, 2020 Author Share Posted November 25, 2020 27 минут назад, Знайка сказал: как на USB2-H-6008-M могут данные на 500000 бод приниматься вообще Это я писал как пример того, что если ограничить скорость на USB2-H-6008-M до значений 500000 бит/сек, то будет ситуация с пропуском пакетов, аналогичная той, которая наблюдается на UPort-1650. Link to comment
Знайка Posted November 25, 2020 Share Posted November 25, 2020 Каким образом производится ограничение? Это мне просто интересно. А по ситуации я задал вопрос разработчикам, пока думают, я думаю что попрошу их провести нагрузочное тестирование с целью понять реальную пропускную способность. Link to comment
Maxmems Posted November 25, 2020 Author Share Posted November 25, 2020 У нас своё ПО в котором задаётся скорость интерфейса подключения к датчику из числа стандартных значений. В отправленном протоколе есть инфа по ним (значениям). Link to comment
Знайка Posted November 25, 2020 Share Posted November 25, 2020 Задаётся скорость на интерфейсе или ПО само как то осуществляет фильтрацию? Что то я пока ничего не понимаю Link to comment
Maxmems Posted November 26, 2020 Author Share Posted November 26, 2020 17 часов назад, Знайка сказал: Задаётся скорость на интерфейсе или ПО само как то осуществляет фильтрацию? Что то я пока ничего не понимаю На интерфейсе задается baudrate 921600. На нашем устройстве тоже задается baudrate 921600. Каждую 1 мс с устройства отправляется пакет в 88 байт. При настройках порта, указанных на скрине получается, что каждую 1 мс идет передача 880 бит (88*8=704 бита – данные + 88*2=176 стартовый и стоповый биты каждого передаваемого байта). В теории между пакетами всегда остается еще ~45мкс, но периодически возникает ситуация, что последние 1-2 байта пакета на ПК не принимается. И тем больше таких пропусков, чем больше портов на uport 1650-8 работает. То есть, если подключено одно наше устройство, потери возникают на 1-2 пакетах в секунду. Но если таких устройств 8, на каждом из открытых портов uport 1650-8 каждую секунду теряются данные в 50-100 пакетах. Link to comment
Знайка Posted November 26, 2020 Share Posted November 26, 2020 Это понятно. Поясните пожалуйста, как осуществляется ограничение до 500000 бит/сек при использовании USB2-H-6008-M? Link to comment
Maxmems Posted November 26, 2020 Author Share Posted November 26, 2020 14 минут назад, Знайка сказал: Это понятно. Поясните пожалуйста, как осуществляется ограничение до 500000 бит/сек при использовании USB2-H-6008-M? 20 часов назад, Maxmems сказал: Это я писал как пример того, что если ограничить скорость на USB2-H-6008-M до значений 500000 бит/сек Слово "ограничить" можно взять в ковычки) Это просто как пример, видимо неудачный Link to comment
Знайка Posted November 26, 2020 Share Posted November 26, 2020 Да как вы это сделали то?? Link to comment
Maxmems Posted November 26, 2020 Author Share Posted November 26, 2020 Я подразумевал просто задать одинаковый baudrate со стороны ПК и устройства, при котором данные не будут успевать проходить. В данном случае при 500000 880 бит в 1мс проходить не будут. Неудачно сформулировал, наверное. Никакой магии с программным ограничением битрейта мы не творили Вся проблема здесь: 5 часов назад, Maxmems сказал: На интерфейсе задается baudrate 921600. На нашем устройстве тоже задается baudrate 921600. Каждую 1 мс с устройства отправляется пакет в 88 байт. При настройках порта, указанных на скрине получается, что каждую 1 мс идет передача 880 бит (88*8=704 бита – данные + 88*2=176 стартовый и стоповый биты каждого передаваемого байта). В теории между пакетами всегда остается еще ~45мкс, но периодически возникает ситуация, что последние 1-2 байта пакета на ПК не принимается. И тем больше таких пропусков, чем больше портов на uport 1650-8 работает. То есть, если подключено одно наше устройство, потери возникают на 1-2 пакетах в секунду. Но если таких устройств 8, на каждом из открытых портов uport 1650-8 каждую секунду теряются данные в 50-100 пакетах. Весь вопрос состоит в том, какая загрузка канала при 921600 на практике является предельной чтобы не было потерь. И можно ли ее как-то повысить. Так что ждем ответа от разработчиков Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now