Протокол Modbus: протокол последовательной связи, опубликованный корпорацией Modicon (ныне Schneider Electric) в 1979 году для связи с использованием программируемых логических контроллеров (ПЛК). Modbus стал отраслевым стандартом (де-факто) для протоколов связи в промышленной сфере и в настоящее время является широко используемым методом соединения между промышленным электронным оборудованием.
Конкретное объяснение общения. Подобно процессу человеческого общения, оно требуеткоммуникационная роль(главный-подчиненный, клиент-сервер...),средство связи(последовательный, Ethernet, беспроводной...),письмо-согласие(modbus, S7, MC...) три элемента.
Три элемента сетевых протоколов:грамматика(структура или формат данных и управляющей информации),Семантика(какая управляющая информация отправляется), синхронизация (подробное описание последовательности реализации событий, скорости согласования и т. д.).
Знакомство с протоколом ModbusRTU
Грамматические конструкции:
Код адреса: используется для идентификации ведомого устройства в диапазоне от 0 до 247, где 0 — широковещательный адрес, и все ведомые устройства будут получать данные с этого адреса.
Код функции: используется для указания типа выполняемой операции, например, чтение значения регистра, запись одного регистра и т. д.
Данные: включает адрес регистра, значение данных и другую информацию. В зависимости от кода функции содержимое и длина данных будут разными.
Код проверки CRC: используется для обнаружения ошибок во время передачи данных. Добавьте два байта кода проверки CRC в конец кадра данных. После того, как получатель получает данные, он пересчитывает код проверки CRC и сравнивает его с полученным кодом проверки CRC. Если он отличается, это означает, что данные находятся внутри. Произошла ошибка.
код функции:
Код функции 01: Чтение состояния катушки (Read Coils), используется для непрерывного считывания состояния от 1 до 2000 катушек с удаленного устройства.
Код функции 02: Чтение состояния входа (Чтение входов) для получения текущего состояния ВКЛ/ВЫКЛ группы переключающих входов.
Код функции 03: Чтение регистров временного хранения (Чтение регистров временного хранения) для получения текущего двоичного значения в одном или нескольких регистрах временного хранения.
Код функции 04: Чтение входных регистров (Чтение входных регистров) для получения текущего двоичного значения в одном или нескольких входных регистрах.
Код функции 05: Force Single Coil, принудительно включает-выключает логическую катушку.
Код функции 06: предустановленный одиночный регистр, загрузка определенного двоичного значения в регистр временного хранения.
Код функции 15: Force Multiple Coils, принудительное включение и выключение серии непрерывных логических катушек.
Код функции 16: Preset Multiple Registers (Предварительная установка нескольких регистров), загрузка определенных двоичных значений в серию регистров непрерывного хранения.
пример: Считайте (03) степень открытия шторы в подчиненном устройстве (01) (считайте со второй: 00 02 прочтите один бит 00 01 Проверка CRC 25 CA):