Почему адрес Modbus в панели PH читается со смещением на единицу?
Потому что база адресов панели не совпадает с нумерацией регистров подключённого устройства. Связь при этом работает, ошибок обмена нет, но значения приходят «соседние» — классическая ловушка Modbus.
Правило пересчёта простое, три варианта:
- устройство нумерует с 1, база адресов панели 1 — прямое соответствие, ничего пересчитывать не надо;
- устройство нумерует с 0, база панели 0 — тоже прямое соответствие;
- устройство нумерует с 0, база панели 1 — к адресу нужно прибавить единицу.
Пример из руководства, с адресами 40001 и 30010:
- устройство с нумерацией с 0 и база панели 0: адресу 40001 соответствует 4X1, адресу 30010 — 3X10;
- устройство с нумерацией с 0 и база панели 1: тому же адресу 40001 соответствует уже 4X2, а 30010 — 3X11;
- устройство с нумерацией с 1 и база панели 1: снова 4X1 и 3X10.
Как быстро проверить на объекте: возьмите регистр, значение которого известно и не меняется, — версию прошивки, номинальный ток, заводскую уставку. Если панель показывает не его, а соседнее значение, дело в базе адресов, а не в проводах.
Проверять это стоит на одном тестовом объекте, до того как в проекте появятся сотни адресов.
Прикреплённая документация
Георгий Жуков
Ведущий инженер