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

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

Таблица 6.9 – Ошибки во время работы с регистрами 26 Название ошибки Возвращаемый код Описание ошибки MODBUS ILLEGAL DATA _ _ _ VALUE 03 (0x03) Недопустимое значение данных – ошибка возникает, если запрос содержит недопустимое значение для записи в регистр MODBUS SLAVE DEVICE _ _ _ FAILURE 04 (0x04) Ошибка возникает, если запрошенное действие не может быть завершено Название функции Код функции Описание функции 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 • выход за пределы максимального или минимального ограничений для параметра