Чем отличаются MODBUS RTU Slave (All function) и OneBaseAddress?

Проверено экспертом Опубликовано: 21.10.2024 2022 просмотра Помогло 72%

Разница ровно в одном — с какого числа начинается нумерация адресов: у All function адресация идёт с нуля, а у All function OneBaseAddress с единицы, то есть со смещением на одну позицию.

Набор кодов функций, скорости, чётность и всё остальное у этих двух протоколов совпадает. Выбирать нужно тот, который соответствует документации ведомого устройства.

Как понять, какой брать. Производители описывают карту регистров двумя способами:

  • «регистр 40001» или «регистр 1» — это нумерация с единицы, берите OneBaseAddress;
  • «адрес 0x0000» или «регистр 0» — нумерация с нуля, берите All function.

Симптом ошибки характерный и легко узнаваемый: связь есть, ошибок обмена нет, но все значения смещены на одну позицию — вместо тока вы видите напряжение, вместо напряжения частоту. Если картина такая, протокол просто перепутан, и лечится это сменой протокола, а не переписыванием адресов во всех объектах.

Полезно проверить это до того, как в проекте появятся сотни адресов: на одном тестовом объекте разница видна сразу.

Прикреплённая документация

Георгий Жуков Георгий Жуков Ведущий инженер

Этот ответ был полезен?

Не нашли ответ?

Инженер сервисной службы ответит на почту. Вопросы, которые повторяются, мы публикуем в базе знаний — без ваших контактов.

Вопрос из раздела Чем отличаются MODBUS RTU Slave (All function) и OneBaseAddress?