Протокол 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 байт.
Читайте также
Проектирование устройства для измерения статических характеристик электромагнитного двигателя
Ветер - это горизонтальное перемещение, поток воздуха параллельно земной
поверхности, возникающее в результате неравномерного распределения тепла и
атмосферного давления и направленное и ...
Принцип работы оптоволоконных сканеров отпечатков пальцев
Идентификация по отпечаткам пальцев - на сегодня самая
распространенная биометрическая технология. По данным International Biometric Group, доля систем
распознавания по отпечаткам пальце ...
Перспективы развития транкинговой радиосвязи
Системы
транкинговой радиосвязи, представляющие собой радиальнозоновые системы
подвижной УКВ радиосвязи, осуществляющие автоматической распределение каналов
связи ретрансляторов между а ...