Modbus: различия между версиями

Нет описания правки
Строка 9: Строка 9:
Пакет данных Modbus выглядит, как это показано на рисунке. '''PDU''' (Protocol Data Unit) — общая часть пакета MODBUS, включающая код функции и данные пакета. '''ADU''' (Application Data Unit) — полный пакет MODBUS. Включает в себя специфичную для физического уровня часть пакета и PDU. Для последовательных линий в заголовке ADU передается адрес устройства, а в конце — контрольная сумма CRC16. Максимальный размер ADU в последовательных коммуникационных линиях составляет '''253 байта''' (из максимальных, разрешенных спецификацией 256 байт вычитается 1 байт адреса и два байта контрольной суммы). Для справки — в Modbus TCP максимальная длина пакета составляет 260 байт.
Пакет данных Modbus выглядит, как это показано на рисунке. '''PDU''' (Protocol Data Unit) — общая часть пакета MODBUS, включающая код функции и данные пакета. '''ADU''' (Application Data Unit) — полный пакет MODBUS. Включает в себя специфичную для физического уровня часть пакета и PDU. Для последовательных линий в заголовке ADU передается адрес устройства, а в конце — контрольная сумма CRC16. Максимальный размер ADU в последовательных коммуникационных линиях составляет '''253 байта''' (из максимальных, разрешенных спецификацией 256 байт вычитается 1 байт адреса и два байта контрольной суммы). Для справки — в Modbus TCP максимальная длина пакета составляет 260 байт.


Функция кодируется одним байтом и определяет,какое действие должно выполнить ведомое устройство. Значение кодов функций лежат в диапазоне от 1 до 255, причем коды от 128 до 255 зарезервированы для сообщений об ошибках со стороны ведомого устройства. Код 0 зарезервирован.
Размер блока данных может варьироваться от нуля до максимально допустимого. Если обработка запроса прошла без ошибок, то ведомое устройство возвращает пакет ADU, содержащий запрошенные данные.


[[Файл:Modbus_transaction_OK.png|500px|thumb|left|Modbus-транзакция, прошедшая без ошибок]]
[[Файл:Modbus_transaction_OK.png|500px|thumb|left|Modbus-транзакция, прошедшая без ошибок]]
[[Файл:Modbus_transaction_ERR.png|500px|thumb|left|Modbus-транзакция с ошибками]]
[[Файл:Modbus_transaction_ERR.png|500px|thumb|left|Modbus-транзакция с ошибками]]
5813

правок