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

ModBus RTU паритет EVEN и NONE будут дружить?

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

Модератор: Глоб.модераторы

Ответить

Автор темы
Sergy6661
специалист
специалист
Сообщения: 655
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 20 раз
Поблагодарили: 89 раз

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Sergy6661 »

Всем привет, Товарищи.
Тут вопрос нарисовался- на шине RS 485 ModBus RTU работает устройство (расходомер) с фиксированными параметрами 8-E-1, на эту же шину необходимо добавить еще один расходомер, но у него тоже фикс. параметры 8-N-1, собственно вопрос- будут работать устройства на одной шине с разными настройками паритета?

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

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Ryzhij »

Это ещё не протокол Modbus. Это пока ещё канальный уровень последовательного асинхронного интерфейса.
И нет, устройства с такими настройками дружить не будут.

Отправлено спустя 3 минуты 5 секунд:
Мастер перед опросом второго прибора должен будет изменить настройки связи своего порта.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

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

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Jackson »

Ryzhij писал(а): 19 дек 2023, 17:21 Мастер перед опросом второго прибора должен будет изменить настройки связи своего порта.
А потом изменить настройки порта обратно под первое устройство. И так каждый раз инициализировать порт с новыми настройками. Не всякое устройство (мастер) способно это делать на лету.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

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

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение keysansa »

Jackson писал(а): 23 дек 2023, 12:52 А потом изменить настройки порта обратно под первое устройство. И так каждый раз инициализировать порт с новыми настройками. Не всякое устройство (мастер) способно это делать на лету.
Но это не "на лету", Это опрос двух устройств. Адрес меняется, почему бы не менять и настройки?
Но, возможно будет проблемма. Так как бит четности изменяется, возможно первое устройство воспримет часть посылки второго устройства, как свой адрес.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

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

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Ryzhij »

Jackson писал(а): 23 дек 2023, 12:52 Так как бит четности изменяется, возможно первое устройство воспримет часть посылки второго устройства, как свой адрес.
Абсолютно нелогичный вывод. Бит чётности будет воспринят либо как стоп-бит, либо приводëт к ошибке приëма.
Повторю ещё раз:
- До протокола Modbas и разбора всей посылки с определением адреса дело даже не дойдёт.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

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

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Jackson »

keysansa писал(а): 05 янв 2024, 21:13 Но это не "на лету", Это опрос двух устройств. Адрес меняется, почему бы не менять и настройки?
А Вы попробуйте. В компе получится, а в половине ПЛК и панелей - нет.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1737
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 78 раз
Поблагодарили: 235 раз

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение petr2off »

Может карма у меня плохая, но в случае Modbus rtu у меня все вразу получалось наверно в 20% случаях. Остальные 80% это танцы с бубном. Посмотрите к примеру панель Weintek - теоретически одного драйвера Modbus RTU достаточноЮ но их там больше. Потому как у каждого производителя может быть свое понятие Modbus RTU. К примеру,сто бы прикрутить панель Weintek к контроллеру Контар - пришлось у них докупать их драйвер. Как щас помню - 5000 рублей отдали.
Идея садить на одну веревку девайсы от разных производителей - идея прямо скажем, так себе и 100 пудово карантирует танцы с бубном, даже при идентичных параметрах последовательного порта. А если еще и параметры разные - то это уже какие то Половецкие пляски будут.
Как сказал Jackson - пробуйте, может и получится, главное в бубен бить сиильно и ритмично :)

I_m
не первый раз у нас
не первый раз у нас
Сообщения: 396
Зарегистрирован: 28 сен 2022, 15:26
Имя: Андрей
Благодарил (а): 12 раз
Поблагодарили: 54 раза

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение I_m »

petr2off писал(а): 07 янв 2024, 11:47 Идея садить на одну веревку девайсы от разных производителей - идея прямо скажем, так себе и 100 пудово карантирует танцы с бубном
Прям уж 100? Не преувеличивайте.
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1737
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 78 раз
Поблагодарили: 235 раз

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение petr2off »

Это я приуменьшаю.
Аватара пользователя

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

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение keysansa »

petr2off писал(а): 07 янв 2024, 20:19 Это я приуменьшаю.
Трудности - закаляют.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

petr2off
эксперт
эксперт
Сообщения: 1737
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Страна: Россия
город/регион: Красноярск
Благодарил (а): 78 раз
Поблагодарили: 235 раз

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение petr2off »

Ага, еще как закаляют.
Допустим, у меня есть контроллер Контар и Теплосчетчик - какой то. Я подкачиваю драйвер контара,для простоты пусть будет у меня стандартный Modbus RTU на счетчике. И я все это нат одну веревку вешаю, COM1, Естественно мне нужно будет 2 контроллера в проекте заводит, с разными драйверами и на COM1 оба вешать. Есть у меня глубокие сомнения - что эта схема заработает. Скорей всего нужно бутет писать матерый скрипт - работы с COM портом, где периодически выполнять коннект и дискогннект с разными параметрами и самому разбирать пакеты ввода - вывода.
Есть такая байка чем старый инженер отличается от молодого.
У молодого куча вопросов - как, зачем, почему, а если так ?
У старого один вопрос - Нахрена ?
Вешаешь на 2 веревки COM1 и COM2, на каждую свой, работающий драйвер, и тратишь усилия на решения проблемы управления устройством, а не на нетривиальные интерфейсные задачи.

Joshua
здесь недавно
здесь недавно
Сообщения: 98
Зарегистрирован: 21 мар 2023, 02:12
Имя: Владимир
Страна: РФ
город/регион: Псков
Благодарил (а): 2 раза
Поблагодарили: 21 раз

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Joshua »

"Дружба" устройств с разными настройками чётности сильно зависит от самих устройств, как они обрабатывают биты на шине.
Мне кажется, с настройками 8-E-1 должны заработать оба устройства. Просто устройство с дефолтными 8-N-1 будет игнорировать проверку бита чётности, главное, чтобы выдавалось 11 бит на символ.
Modbus_over_serial_line_V1_02.jpg
Прямо сейчас у меня есть два устройства одного турецкого производителя, один работает только с 8-N-2. А второму что 8-N-1, что 8-N-2. Если поставить второму 8-x-1 и бит чётности выставить неважно какой (even-odd-none-mark-space) - всё равно работает. В итоге просто поставил на оба 8-N-2.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Ryzhij »

Joshua писал(а): 08 янв 2024, 15:32 Мне кажется, с настройками 8-E-1 должны заработать оба устройства.
Разумеется! Но как это соотносится с исходной информацией
Sergy6661 писал(а): 19 дек 2023, 16:25
устройство (расходомер) с фиксированными параметрами 8-E-1
вот в чем вопрос!
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

VADR
администратор
администратор
Сообщения: 4909
Зарегистрирован: 25 июл 2008, 07:12
Имя: Диев Александр Васильевич
Страна: Россия
город/регион: г. Сегежа, Карелия
Благодарил (а): 236 раз
Поблагодарили: 425 раз

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение VADR »

Это уже, я так думаю, нюансы реализации конкретных устройств у конкретного производителя. Ведь по идее - как оно должно работать:
1. Отправляющаяя сторона (это может быть и мастер, посылающий запрос, и слейв, на него отвечающий) формирует каждый отправляемый байт в соответствии со своими настройками. То есть: если выставлен параметр контроля чётности не N - считает чётность и выставляет 0 или 1 в соответсвующем месте. Или просто выставляет 1, если контроль чётности отключен. И добавляет нужное количество стоп-битов.
2. Принимающая сторона получает этот байт и проверяет в соответствии со своими настройками: правильная ли там чётность, если не N, или стоит ли там 1, если N. И сколько там стоп-битов. И если там что-то чему-то не соответствует - обмен данными не работает. Но. Если разработчик устройства не был достаточно добросовестным - он мог просто забить на проверку и принимать только 8 информационных бит (всё равно после посылки должна быть пауза, за время которой все чётности и стопы пролетят - зачем заморачиваться?). И тогда ему пофиг кто и что отправил - примет всё. Кроме того, даже если разработчик не был столь ленив - разные люди по-разному понимают отсутствие контроля чётности. В ориганальных стандартах rs-232 и 485 количество информационных бит может быть от 5 до 8, бит чётности существует только если не N (иначе его просто нет), и стоп-битов может быть 1, 1.5 или 2. Если в настройах установлено N - проверка этого бита просто не делается совсем. В modbus rtu это дело несколько модифицировано: информационных бит всегда 8, а при настройке N ставится дополнительный стоп-бит (единица), в результате длина пакета всегда 11 бит. Так вот некоторые разработчики эту единицу вместо бита чётности проверяют, а некоторые - нет.
3. А потом они меняются местами...

В общем, моё мнение: заработать может, но полагаться на это нельзя :). Через какое-то время, возможно, поменяют устройство на другое (или заменят прошивку устройства, а там окажется более строгая реализация протокола) - и всё встанет колом.
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.

I_m
не первый раз у нас
не первый раз у нас
Сообщения: 396
Зарегистрирован: 28 сен 2022, 15:26
Имя: Андрей
Благодарил (а): 12 раз
Поблагодарили: 54 раза

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение I_m »

petr2off писал(а): 08 янв 2024, 15:05 Естественно мне нужно будет 2 контроллера в проекте заводит, с разными драйверами и на COM1 оба вешать.
Контар по Modbus RTU сам умеет прекрасно опрашивать те же теплосчётчики, например. А 3-е устройство какое? Панель вайнтековская? Они же вроде как с Контарами через tcp/ip умеют работать, не? Впрочем, тут не компетентен.

Автор темы
Sergy6661
специалист
специалист
Сообщения: 655
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 20 раз
Поблагодарили: 89 раз

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Sergy6661 »

Всем привет, Товарищи! Поздравляю всех с выходом из очередного Нового года.
Вообще моя проблема решилась (пока), т.к расходомер все равно на объекте, просто товарищи по работе не очень внимательно мануал изучили, в общем есть там возможность переключения на 8-N-1.
Но вот такие варианты тоже имеют место быть-
VADR писал(а): 08 янв 2024, 16:10 Но. Если разработчик устройства не был достаточно добросовестным - он мог просто забить на проверку и принимать только 8 информационных бит (всё равно после посылки должна быть пауза, за время которой все чётности и стопы пролетят - зачем заморачиваться?). И тогда ему пофиг кто и что отправил - примет всё.
Примет и разберет информационную часть ответа.
Аватара пользователя

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

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Jackson »

petr2off писал(а): 07 янв 2024, 11:47 Может карма у меня плохая, но в случае Modbus rtu у меня все вразу получалось наверно в 20% случаях. Остальные 80% это танцы с бубном.
Не в карме дело. В понимании его работы.
petr2off писал(а): 07 янв 2024, 11:47 Идея садить на одну веревку девайсы от разных производителей - идея прямо скажем, так себе и 100 пудово карантирует танцы с бубном, даже при идентичных параметрах
Не-а. Для того и сделан Модбас чтобы быть универсальным, и, как правило, всё получается. Не получается сходу когда произвдоители устройств косячат. Или когда хард кривой.
keysansa писал(а): 08 янв 2024, 00:56Трудности - закаляют.
И отнимают время. Впустую. Будешь закалённый, но преждевременно постаревший. :)
Sergy6661 писал(а): 09 янв 2024, 10:09Вообще моя проблема решилась (пока), т.к расходомер все равно на объекте, просто товарищи по работе не очень внимательно мануал изучили, в общем есть там возможность переключения на 8-N-1.
Вот именно. Чаще всего проблемы, которых у кое-кого тут 80% из ста случаев, именно так и решаются. И тем же путём они просто не создаются.
Sergy6661 писал(а): 09 янв 2024, 10:09Но вот такие варианты тоже имеют место быть
Я б просто попробовал да и всё. Зависит от устройств в конкретном сочетании и рассуждать в теории можно бесконечно. Теория данные не опросит.
По вопросам работы Форума можно обратиться по этим контактам.

AlexandrGr
не первый раз у нас
не первый раз у нас
Сообщения: 306
Зарегистрирован: 26 май 2022, 12:10
Имя: Александр
Страна: Россия
город/регион: lipetsk
Благодарил (а): 5 раз
Поблагодарили: 28 раз

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение AlexandrGr »

VADR писал(а): 08 янв 2024, 16:10 всё равно после посылки должна быть пауза
В каком месте и зачем должна быть пауза?
Аватара пользователя

VADR
администратор
администратор
Сообщения: 4909
Зарегистрирован: 25 июл 2008, 07:12
Имя: Диев Александр Васильевич
Страна: Россия
город/регион: г. Сегежа, Карелия
Благодарил (а): 236 раз
Поблагодарили: 425 раз

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение VADR »

AlexandrGr писал(а): 09 янв 2024, 13:20 В каком месте и зачем должна быть пауза?
Между окончанием стопового бита одного байта и началом стартового следующего байта. Там, если мне память не изменяет, должно быть не менее 1.5 времени одного бита (и стартовый - тоже полуторный по времени). Для того, чтобы различать байты - они же потоком идут. Нужен какой-то ориентир, чтобы распознать начало/конец байта.
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.

VaBo
частый гость
частый гость
Сообщения: 441
Зарегистрирован: 21 июл 2013, 19:32
Имя: Вадим
город/регион: Северодвинск
Благодарил (а): 15 раз
Поблагодарили: 39 раз

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение VaBo »

Старт-бит такой же длины, как и все последующие, внутри сообщения байты идут без каких-то специальных пауз, непрерывно. Ошибка не накапливается, потому что идет привязка к каждому новому старт биту (USART - синхронно/асинхронная передача). Сообщения делятся по паузе длительностью в 3,5 символа.
Аватара пользователя

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

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Jackson »

VaBo писал(а): 09 янв 2024, 14:26 Сообщения делятся по паузе длительностью в 3,5 символа.
А символ - это аж два байта. Так что всё зависит от конкретной реализации устройства: оно чётко проверяет стоп-бит и бит чётности или ему всё равно. МодбасПулу, например, не всё равно - сами легко убедитесь в этом.

И ответ на вопрос уже давно дан: либо каждый раз переинициализировать драйвер порта, если это вообще возможно, либо надеяться на то, что устройства у автора настолько кривые, что формат сообщений им до лампочки и не зависит от настроек драйвера порта. Если всё не кривое, то два устройства с 8-N-1 и 8-E-1 одновременно не будут опрашиваться, придётся переинициализировать драйвер порта. А если что-то кривое, то вообще всё что угодно может не работать по любой неизвестной причине - оно же кривое - тогда будет удачей если вообще хоть что-то будет работать.

Сам вопрос некорректен. От того какой там протокол - ModBUS или что-то другое - это вообще не зависит.
По вопросам работы Форума можно обратиться по этим контактам.

I_m
не первый раз у нас
не первый раз у нас
Сообщения: 396
Зарегистрирован: 28 сен 2022, 15:26
Имя: Андрей
Благодарил (а): 12 раз
Поблагодарили: 54 раза

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение I_m »

Jackson писал(а): 09 янв 2024, 17:21 А символ - это аж два байта.
1 байт. 2 - это экзотика.

Отправлено спустя 1 минуту 32 секунды:
Jackson писал(а): 09 янв 2024, 17:21 МодбасПулу, например, не всё равно - сами легко убедитесь в этом.
До модбаспула и ему подобных биты чётности и прочие биты не доходят. Не его уровень.
Аватара пользователя

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

ModBus RTU паритет EVEN и NONE будут дружить?

Сообщение Jackson »

I_m писал(а): 10 янв 2024, 08:13 До модбаспула и ему подобных биты чётности и прочие биты не доходят. Не его уровень.
Об этом и речь. Торопился, некорректно написал. Имел в виду что простая проверка на ПК например МодБасПулом покажет.
По вопросам работы Форума можно обратиться по этим контактам.
Ответить

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