6 Устройство и принцип работы Таблица 6.6 – Используемые форматы данных 6.5.2 Коды ошибок для протокола Modbus Во время работы модуля по протоколу Modbus возможно возникновение ошибок, представленных в таблице 6.7 . В случае возникновения ошибки модуль отправляет Мастеру сети ответ с кодом ошибки. Таблица 6.7 – Список возможных ошибок Во время обмена по протоколу Modbus модуль проверяет соответствие запросов спецификации Modbus. Не прошедшие проверку запросы игнорируются модулем. Запросы, в которых указан адрес, не соответствующий адресу модуля, также игнорируются. Далее проверяется код функции.
Если в модуль приходит запрос с кодом функции, не указанной в таблице 6.8 , возникает ошибка MODBUS_ILLEGAL_FUNCTION. Таблица 6.8 – Список поддерживаемых функций Ситуации, приводящие к возникновению ошибок во время работы с регистрами, описаны в таблице 6.9 . 26 Формат данных Кол-во регистров Размер Описание Unsigned 8 1 1 байт Целое число без знака Unsigned 16 1 2 байта Unsigned 32 2 4 байта Signed 16 1 2 байта Целое число со знаком Date time 32 2 4 байта Дата/Время в секундах с 1 января 2000 г.
Название ошибки Возвращаемый код Описание ошибки MODBUS ILLEGAL FUNCTION _ _ 01 (0x01) Недопустимый код функции – ошибка возникает, если модуль не поддерживает функцию Modbus, указанную в запросе MODBUS ILLEGAL DATA _ _ _ ADDRESS 02 (0x02) Недопустимый адрес регистра – ошибка возникает, если в запросе указаны адреса регистров, отсутствующие в модуле 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) Запись архива в файл