Протокол данных Modbus RTU

Протокол Modbus RTU предполагает одно активное (запрашивающее) устройство в линии (master), которое может передавать команды одному или нескольким пассивным устройствам (slave), обращаясь к ним по уникальному в линии адресу. Синтаксис команд протокола позволяет адресовать 247 устройств на одной линии связи стандарта RS-485 (реже RS-422 или RS-232 ).

Инициатива проведения обмена всегда исходит от ведущего устройства. Ведомые устройства прослушивают линию связи. Мастер подаёт запрос (посылка, последовательность байт) в линию и переходит в состояние прослушивания линии связи. Ведомое устройство отвечает на запрос, пришедший в его адрес. Окончание ответной посылки мастер определяет, определяя временные интервалы между окончанием приёма предыдущего байта и началом приёма следующего. Если этот интервал превысил время, необходимое для приёма двух байт на заданной скорости передачи, приём кадра ответа считается завершённым. Кадры запроса и ответа по протоколу modbus имеют фиксированный формат, приведённый в табл. 3.1.1.

Таблица 3.1.1 - Вид кадра запроса и ответа

Адрес подчиненного устройства

Номер функции

Данные

CRC

1 байт

1 байт

N<253 (байт)

2 байта

«Адрес» - первое однобайтное поле кадра. Оно содержит адрес подчинённого устройства, к которому адресован запрос. Подчинённые устройства отвечают только на запросы, поступившие только в их адрес. Ответ также начинается с адреса отвечающего устройства, который может изменяться от 1 до 254. Адрес 0 используется для широковещательной передачи, его распознаёт каждое устройство.

Код функции содержит номер функции. Функция может запрашивать данные или давать команду на определенные действия. Коды функций являются числами в диапазоне от 1 до 127. Функции с номерами от 128 до 254 являются зарезервированными для пересылки в ответном сообщении информации об ошибках.

В поле «Данные» поле содержит информацию, необходимую подчиненному устройству для выполнения заданной мастером функции или содержит данные, передаваемые подчинённым устройством в ответ на запрос ведущего. Длина и формат поля зависит от номера функции;

Поле «Контрольная сумма» является важным элементом протокола: в нем содержится информация, необходимая для проверки целостности сообщения и отсутствия ошибок передачи. Контрольная сумма завершает кадры запроса и ответа. Поле CRC записывается младшим байтом вперёд. Алгоритм расчёта CRC может отличаться для разных устройств.

Максимальный размер пакета для сетей RS232/RS485 - 256 байт, для сетей TCP - 260 байт.

Читайте также

Основы статистической теории радиолокации
Если о сигнале все известно , то нет необходимости в его приеме, если о нем ничего не известно, то его невозможно отличить от помех, и прием его невозможен. Поэтому, ...

Поверка электронного вольтметра В7-26 по напряжению постоянного тока
Считается, что первый вольтметр изобрел М. Фарадей, причем в 1830 году, ещё за год до того, как он же открыл явление электромагнитной индукции, на котором основано действие целого класса ...

Проект устройства со световыми эффектами на основе микроконтроллера ATtiny12 семейства AVR фирмы Atmel
Популярность микроконтроллеров ATtiny постоянно увеличивается. Не последнюю роль в этом играет соотношение показателей «цена/ быстродействие/ энергопотребление», являющееся одним из ...

Основные разделы

Все права защищены! (с)2026 - www.generallytech.ru