7841
правка
Admin (обсуждение | вклад) |
Fizikdaos (обсуждение | вклад) |
||
Строка 26: | Строка 26: | ||
Функция кодируется одним байтом и определяет, какое действие должно выполнить устройство-сервер. Значение кодов функций лежат в диапазоне от 1 до 255, причем коды от 128 до 255 зарезервированы для сообщений об ошибках со стороны устройства-сервера. Код 0 не используется. Размер блока данных может варьироваться от нуля до максимально допустимого. Если обработка запроса прошла без ошибок, то устройство-сервер возвращает пакет ADU, содержащий запрошенные данные. | Функция кодируется одним байтом и определяет, какое действие должно выполнить устройство-сервер. Значение кодов функций лежат в диапазоне от 1 до 255, причем коды от 128 до 255 зарезервированы для сообщений об ошибках со стороны устройства-сервера. Код 0 не используется. Размер блока данных может варьироваться от нуля до максимально допустимого. Если обработка запроса прошла без ошибок, то устройство-сервер возвращает пакет ADU, содержащий запрошенные данные. | ||
< | <gallery mode="packed" heights="300px"> | ||
File:Modbus_transaction_OK.png|700px|thumb|center|Modbus-транзакция, прошедшая без ошибок | |||
File:Modbus_transaction_ERR.png|700px|thumb|center|Modbus-транзакция с ошибками | |||
</gallery> | |||
<!--T:10--> | <!--T:10--> | ||
---- | ---- | ||
Строка 34: | Строка 35: | ||
<!--T:11--> | <!--T:11--> | ||
При возникновении ошибки устройством возвращается код ошибки. В случае обычной транзакции код функции в ответе возвращается без изменений; в случае ошибки старший бит кода функции устанавливается в единицу (то есть ''код функции'' + 0x80) | При возникновении ошибки устройством возвращается код ошибки. В случае обычной транзакции код функции в ответе возвращается без изменений; в случае ошибки старший бит кода функции устанавливается в единицу (то есть ''код функции'' + 0x80) | ||
<!--T:13--> | <!--T:13--> |