Коды ошибок
Вместо корректного ответа, содержащего запрошенные данные, ведомое устройство может переслать ответ с ошибкой. При этом к коду функции в ответе добавляется код 0×80 в формате hex, то есть в данном случае к коду функции 03 добавляется 80 и признак ошибки будет иметь значение 83.
Кроме того отсылается код ошибки:
01 — функция не поддерживается. Это значит, что, возможно, функция не стандартная или просто не реализована конкретно в этом устройстве.
02 — запрошенная область памяти не доступна. Каждое устройство содержит определённое количество данных определённого типа. Например, в устройстве доступно 100 регистров общего назначения. Если при этом запросить чтение 101 регистров, то возникнет ошибка 02.
03 — функция не поддерживает запрошенное количество данных. Например, функция Read Holding Registers позволяет считывать от 1 до 2000 регистров общего назначения. Поэтому, даже если в подчинённом устройстве доступно для чтения 10 000 регистров, при запросе более 2000 с помощью данной функции возникает эта ошибка.
04 — функция выполнена с ошибкой. Этот код отсылается в случае, если ошибка не относится к трем предыдущим кодам.