1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Проблемы при опросе при прибора по RS-232 (modbus RTU)

RS-485, ProfiBUS, 4-20 mA, Wi-Fi, GSM и так далее
Ответить

rwg
почётный участник форума
почётный участник форума
Сообщения: 1041
Зарегистрирован: 29 апр 2014, 09:57
Имя: Рыбкин Владимир Геннадьевич
Страна: Россия
город/регион: Тверь
Благодарил (а): 55 раз
Поблагодарили: 134 раза

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение rwg »

Ryzhij писал(а): 10 фев 2022, 08:57 При таких параметрах посылка запроса в 8 байт займёт 8*10/9600=83,3 мс
Здесь случайно нет ошибки в 10 раз? Я привык считать, что на 9600 передача байта занимает около 1мсек, ответ 7 байт - 7 мсек, пауза между байтами 4 мсек - для соблюдающих стандарт устройств - связь оборвалась, можно переходить к следующему опросу.

Сам. правда, на 9600 стараюсь не работать, предпочитаю 57600, там всё заметно быстрее.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17561
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 819 раз
Поблагодарили: 1648 раз

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение Jackson »

rwg писал(а): 13 фев 2022, 00:11 Здесь случайно нет ошибки в 10 раз?
Вроде нет.

Кстати, у нас же на форуме человек для примерной оценки вот такую штуку сделал: viewtopic.php?t=13674
По вопросам работы Форума можно обратиться по этим контактам.

rwg
почётный участник форума
почётный участник форума
Сообщения: 1041
Зарегистрирован: 29 апр 2014, 09:57
Имя: Рыбкин Владимир Геннадьевич
Страна: Россия
город/регион: Тверь
Благодарил (а): 55 раз
Поблагодарили: 134 раза

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение rwg »

Jackson писал(а): 13 фев 2022, 00:46 человек для примерной оценки вот такую штуку сделал: viewtopic.php?t=13674

Смешная штучка. Для скорости 19200 пишет "Data rate: 13963 bits per second. Round read time: 0.193 seconds". 0,193 * 13963 = 2965 битов в сообщении, 337 байтов. Из них 8 байтов - запрос, 7 байтов - это ответ, ещё 7 байт - две стандартные паузы по времени как 3,5 байта между ними. А для чего нужны остальные 315 байтов? Я проще считаю - для скорости 19200 - один бит 50мкс, в запросе 8байт - 80 бит - 4 мсек, в ответе примерно столько же и две паузы по 3,5 мсек, всего 15мсек, в 9 раз быстрее.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5632
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 600 раз
Поблагодарили: 756 раз

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение Ryzhij »

rwg писал(а): 13 фев 2022, 08:34 Здесь случайно нет ошибки в 10 раз?
Асинхронная посылка состоит из поля данных (8 бит), опционального бита контроля четности, одного стартового бита, стоповых бит (0; 1; 1,5 или 2).
При мощности алфавита в 2 знака скорость передачи в бодах равна скорости передачи в битах.
Итак, при имеющихся настройках у нас каждый байт информации передается посылкой длиною в 10 бит.
Запрос 8 байт. Скорость 9600 бод.
Время отправки запроса клиентом 8*10/9600=83.3 мсек.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение keysansa »

Ryzhij писал(а): 12 фев 2022, 20:46 Да, вот с такой вот фигнёй мы и работаем.
Не верите?
Читайте доку сами. Ссылка у Вас есть.
Прочитал. По документации период опроса не нормируется. Нет "пауза на ожидание ответа слейва", есть пауза между запросом и ответом и отдельно есть таймаут ожидания ответа

Отправлено спустя 8 минут 28 секунд:
rwg писал(а): 13 фев 2022, 08:34 Смешная штучка. Для скорости 19200 пишет "Data rate: 13963 bits per second. Round read time: 0.193 seconds"
Ryzhij, правильно объяснил в предыдущем сообщении, добавлю только, что при использовании 2/3-проводной связи, добавляются небольшие тайминги для определения начала передачи.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

rwg
почётный участник форума
почётный участник форума
Сообщения: 1041
Зарегистрирован: 29 апр 2014, 09:57
Имя: Рыбкин Владимир Геннадьевич
Страна: Россия
город/регион: Тверь
Благодарил (а): 55 раз
Поблагодарили: 134 раза

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение rwg »

Ryzhij писал(а): 13 фев 2022, 14:59 Время отправки запроса клиентом 8*10/9600=83.3 мсек.
8*10/9600=8.33 мсек.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение keysansa »

rwg писал(а): 13 фев 2022, 16:11 8*10/9600=8.33 мсек.
Но не в мс был же вопрос? А в том, что скорость передачи 19200 - это не 19200 бит/с информации для получателя и отправителя.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

rwg
почётный участник форума
почётный участник форума
Сообщения: 1041
Зарегистрирован: 29 апр 2014, 09:57
Имя: Рыбкин Владимир Геннадьевич
Страна: Россия
город/регион: Тверь
Благодарил (а): 55 раз
Поблагодарили: 134 раза

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение rwg »

keysansa писал(а): 13 фев 2022, 16:35 Но не в мс был же вопрос?
Для меня вопрос изначально был в мс. Зачем делать таймауты 50 и тем более 200 мс, если весь обмен информацией с исправным устройством укладывается в 15-20 мсек, а перерыв в обмене в 2-4 мсек (если скорость не 1200, а чуть быстрее) - признак отказа канала связи.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение keysansa »

rwg писал(а): 13 фев 2022, 16:44 Зачем делать таймауты 50
Между запросом и ответом должен быть таймаут. Обычно 10-50мс, в зависимости от контроллера. В остальном - согласен.
ЗЫ. Согласен, если расстояния до 100м.
Последний раз редактировалось keysansa 13 фев 2022, 16:59, всего редактировалось 1 раз.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

rwg
почётный участник форума
почётный участник форума
Сообщения: 1041
Зарегистрирован: 29 апр 2014, 09:57
Имя: Рыбкин Владимир Геннадьевич
Страна: Россия
город/регион: Тверь
Благодарил (а): 55 раз
Поблагодарили: 134 раза

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение rwg »

keysansa писал(а): 13 фев 2022, 16:51 Между запросом и ответом должен быть таймаут. Обычно 10-50мс, в зависимости от контроллера.
50-100 мсек - это если у контроллера "Modbus RTU - совместимый" протокол. Стандартное Modbus-устройство, которое не в состоянии в заданное времени подготовить ответ, в течение выделенного для этого времени пришлёт ошибку 05 — "Ведомое устройство приняло запрос и обрабатывает его, но это требует много времени" или 06 "Ведомое устройство занято обработкой команды. Ведущее устройство должно повторить сообщение позже, когда ведомое освободится".
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение keysansa »

rwg писал(а): 13 фев 2022, 16:58 50-100 мсек - это если у контроллера "Modbus RTU - совместимый" протокол.
Если он совместимый, значит совместимый.
rwg писал(а): 13 фев 2022, 16:58 Стандартное Modbus-устройство, которое не в состоянии в заданное времени подготовить ответ, в течение выделенного для этого времени пришлёт ошибку 05 — "Ведомое устройство приняло запрос и обрабатывает его, но это требует много времени" или 06 "Ведомое устройство занято обработкой команды.
Вы путаете время между отправкой ответа из памяти, или например, задержку на обработку АЦП, запрос к базе данных.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

rwg
почётный участник форума
почётный участник форума
Сообщения: 1041
Зарегистрирован: 29 апр 2014, 09:57
Имя: Рыбкин Владимир Геннадьевич
Страна: Россия
город/регион: Тверь
Благодарил (а): 55 раз
Поблагодарили: 134 раза

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение rwg »

keysansa писал(а): 13 фев 2022, 17:05 Вы путаете время между отправкой ответа из памяти, или например, задержку на обработку АЦП, запрос к базе данных.
Modbus-Slave в моём понимании - это чаще всего датчик или контроллер, у которого запрашивают содержимое конкретных регистров. На подготовку такого ответа современным микроконтроллерам обычно хватает нескольких микросекунд, таймаут длительностью в миллисекунды - память о незабвенным микроконтроллерах 8080 и 8051. Но создатели некоторых устройств смотрят намного шире меня и по запросу содержимого ячейки памяти могут запускать всевозможные длительные процессы типа запуска медленного АЦП. Специально для них, чтобы не снижать скорость работы системы в целом, авторы стандарта придумали ошибки 05 и 06. Что-то не так?
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение keysansa »

Тонкость в одном, часто это НЕ современные контроллеры. Подумайте, зачем этот параметр был введен? И почему это не константа, а параметр?
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

rwg
почётный участник форума
почётный участник форума
Сообщения: 1041
Зарегистрирован: 29 апр 2014, 09:57
Имя: Рыбкин Владимир Геннадьевич
Страна: Россия
город/регион: Тверь
Благодарил (а): 55 раз
Поблагодарили: 134 раза

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение rwg »

keysansa писал(а): 13 фев 2022, 17:41 Тонкость в одном, часто это НЕ современные контроллеры. Подумайте, зачем этот параметр был введен? И почему это не константа, а параметр?
Какой именно параметр? Если длительность таймаута, то она введена для того, чтобы техника 70х годов успевала распознавать конец передачи и успевать переключаться с приёма на передачу и обратно. Уже 20 лет назад шли разговоры, что супертормозной протокол Modbus окончательно устарел и в течение ближайших нескольких лет окончательно вымрет. Появившиеся тогда AVRы легко позволяли усовершенствовать протокол, уменьшить этот таймаут на больших скоростях до 100-500мкс. Сегодняшние ARMы стали ещё быстрее, но благодаря непрофессионализму некоторых программистов приходится опасаться десяти-стократного роста его тормознутности.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17561
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 819 раз
Поблагодарили: 1648 раз

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение Jackson »

rwg писал(а): 13 фев 2022, 08:34
Jackson писал(а): 13 фев 2022, 00:46 человек для примерной оценки вот такую штуку сделал: viewtopic.php?t=13674

Смешная штучка. Для скорости 19200 пишет "Data rate: 13963 bits per second. Round read time: 0.193 seconds". 0,193 * 13963 = 2965 битов в сообщении, 337 байтов. Из них 8 байтов - запрос, 7 байтов - это ответ, ещё 7 байт - две стандартные паузы по времени как 3,5 байта между ними. А для чего нужны остальные 315 байтов? Я проще считаю - для скорости 19200 - один бит 50мкс, в запросе 8байт - 80 бит - 4 мсек, в ответе примерно столько же и две паузы по 3,5 мсек, всего 15мсек, в 9 раз быстрее.
Вопросы к автору. В соответствующем топике их и задать наверное лучше, а не здесь.

Отправлено спустя 2 минуты 16 секунд:
rwg писал(а): 13 фев 2022, 17:56 Уже 20 лет назад шли разговоры, что супертормозной протокол Modbus окончательно устарел и в течение ближайших нескольких лет окончательно вымрет.
Ну да, ну да. Уже и иных говоривших нет, а Модбас жив и помирать не собирается. :)
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Проблемы при опросе при прибора по RS-232 (modbus RTU)

Сообщение keysansa »

Jackson писал(а): 13 фев 2022, 21:53 Ну да, ну да. Уже и иных говоривших нет, а Модбас жив и помирать не собирается. :)
Он просто не тормозной... RTU в смысле. ASCII - да, страдает избыточностью.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Ответить

Вернуться в «Интерфейсы, протоколы, связь»