+2
Voting

Переключатель режима отправки команд Modbus

Ekaterina (head of support) 9 years ago in Оther updated by Aleksandr Romanov (CTO) 7 years ago 2

iRidium V2.2:

Драйвер Modbus в iRidium по умолчанию отправляет регистрам Coil и Holding команды fc5 и fc6 (single coil, single register). Если контроллер не поддерживает эти команды, он должен вернуть ошибку 01 (illegal function), после чего iRidium автоматически переключается на отправку команд fc15 и fc16 (multiple coils, multiple registers).


Если контроллер не возвращает ошибку 01, переключение на fc15 и fc16 не произойдет. Ручная настройка режима не предусмотрена.

Выяснилось, что минимум 1 совместимый ПЛК не возвращает ошибку при отправке неподдерживаемой им команды single и не позволяет произвести настройку (протокол не поддерживается контроллером в полной мере). Для этой ситуации введем в настройках драйвера Modbus флаг "Send Mode", включающий 2 режима:


  • Single (начинать с отправки команд через функции fc5 и fc6, если ПКЛ вернул ошибку, переключаться на Multiple). Соответствует версии 2.2, по умолчанию
  • Multiple (начинать с отправки команд через функции fc15 и fc16, если ПКЛ вернул ошибку, переключаться на Single)