oven — 6.5.2 Коды ошибок для протокола Modbus

6 Устройство и принцип работы Далее проверяется код функции. Если в модуль приходит запрос с кодом функции, не указанной в таблице 6.7 , возникает ошибка MODBUS_ILLEGAL_FUNCTION. Таблица 6.7 – Список поддерживаемых функций Ситуации, приводящие к возникновению ошибок во время работы с регистрами, описаны в таблице 6.8 .

Таблица 6.8 – Ошибки во время работы с регистрами 36 Название функции Код функции Описание функции MODBUS READ HOLDING _ _ _ REGISTERS 3 (0x03) Чтение значений из одного или нескольких регистров хранения MODBUS READ INPUT _ _ _ REGISTERS 4 (0x04) Чтение значений из одного или нескольких регистров ввода MODBUS WRITE SINGLE _ _ _ REGISTER 6 (0x06) Запись значения в один регистр MODBUS WRITE MULTIPLE _ _ _ REGISTERS 16 (0x10) Запись значений в несколько регистров MODBUS READ FILE RECORD _ _ _ 20 (0x14) Чтение архива из файла MODBUS WRITE FILE _ _ _ RECORD 21 (0x15) Запись архива в файл Используемая функция Наименование ошибки Возможные ситуации, приводящие к ошибке MODBUS READ _ _ HOLDING REGISTERS _ MODBUS ILLEGAL DATA _ _ _ ADDRESS • количество запрашиваемых регистров больше максимального возможного числа (125); • запрос несуществующего параметра MODBUS READ INPUT _ _ _ REGISTERS MODBUS ILLEGAL DATA _ _ _ ADDRESS • количество запрашиваемых регистров больше максимального возможного числа (125); • запрос несуществующего параметра MODBUS WRITE SINGLE _ _ _ REGISTER MODBUS ILLEGAL DATA _ _ _ ADDRESS • попытка записи параметра, размер которого превышает 2 байта; • попытка записи параметра, доступ на запись к которому запрещен; • попытка записи параметра такого типа, запись в который не может быть осуществлена данной функцией.

Поддерживаемые типы: • знаковые и беззнаковые целые (размер не более 2 байт); • перечисляемые; • float16 (на данный момент в модуле такой тип не используется).

• запрос несуществующего параметра MODBUS ILLEGAL DATA _ _ _ VALUE • выход за пределы максимального или минимального ограничений для параметра MODBUS WRITE _ _ MULTIPLE REGISTERS _ MODBUS ILLEGAL DATA _ _ _ ADDRESS • запись несуществующего параметра; • попытка записи параметра, доступ на запись к которому запрещен; • количество записываемых регистров больше максимального возможного числа (123) MODBUS ILLEGAL DATA _ _ _ VALUE • не найден терминирующий символ (\0) в строковом параметре; • размер запрашиваемых данных меньше размера первого или последнего в запросе параметра; • выход за пределы максимального или минимального ограничений для параметра