Найти тему

Modbus

Modbus - один из старейших коммуникационных протоколов, основанный на архитектуре ведущий-ведомый (Master-Slave). Использует для передачи данных интерфейсы RS-485, RS-422, RS-232, а также Ethernet сети TCP/IP (протокол Modbus TCP).

Modbus RTU

Формат пакета (сообщения) Modbus RTU состоит из адреса устройства SlaveID, кода функции, специальных данных в зависимости от кода функции и CRC контрольной суммы.

SlaveID - Код функции- Специальные данные - CRC

Если убрать адрес (SlaveID) и контрольную сумму (CRC), то получится PDU, Protocol Data Unit (PDU).

SlaveID – это адрес устройства, может принимать значение от 0 до 247, адреса с 248 до 255 зарезервированы.

Данные в модуле хранятся в 4 таблицах. Две таблицы доступны только для чтения и две для чтения-записи. В каждой таблице помещается 9999 значений.

Номер Адрес HEXТип Название Тип
регистра регистра

1-9999 0000 до 270E Чтение-запись DiscreteOutput Coils DO

10001-1999 90000 до 270E Чтение Discrete Input Contacts DI

30001-3999 90000 до 270E Чтение AnalogInput Registers AI

40001-4999 90000 до 270E Чтение-запись Analog Output Holding Registers AO

В сообщении Modbus используется адрес регистра. Например, первый регистр AO Holding Register, имеет номер 40001, но его адрес равен 0000. Разница между этими двумя величинами есть смещение offset. Каждая таблица имеет свое смещение, соответственно: 1, 10001, 30001 и 40001.

Виды комнад Modbus RTU

Код Что делает функция Тип значения Тип доступа функции

01 (0x01) Чтение DO Read Coil Status Дискретное Чтение

02 (0x02) Чтение DI Read Input Status Дискретное Чтение

03 (0x03) Чтение AO Read Holding Registers 16 битное Чтение

04 (0x04) Чтение AI Read Input Registers 16 битное Чтение

05 (0x05) Запись одного DO Force Single Coil Дискретное Запись

06 (0x06) Запись одного AO Preset Single Register 16 битное Запись

15 (0x0F) Запись нескольких DO Force Multiple Coils Дискретное Запись

16 (0x10) Запись нескольких АO Preset Multiple Registers 16 битное Запись

Интересные ссылки:

https://vk.com/@-161234694-modbus