В качестве протокола для организации связи между устройствами конвейера выбран Modbus RTU.
Modbus — открытый коммуникационный протокол, основанный на архитектуре ведущий-ведомый (master-slave). Широко применяется в промышленности для организации связи между электронными устройствами. Может использоваться для передачи данных через последовательные линии связи RS-485, RS-422, RS-232, и сети TCP/IP (Modbus TCP).
Реализована работа двух функций данного протокола со стороны мастер-устройства и со стороны слейв-устройства:
Функция чтения данных из нескольких регистров (0x03):
Запрос:
Адрес слейв устройства | Номер функции | Стартовый адрес регистров чтения (старший байт) | Стартовый адрес регистров чтения (младший байт) | Конечный адрес регистров чтения (старший байт) | Конечный адрес регистров чтения (младший байт) | Контрольная сумма CRC16 (старший байт) | Контрольная сумма CRC16 (младший байт) |
0F | -- | -- |
Ответ:
Адрес слейв устройства | Номер функции | Регистр №1 (старший байт) | Регистр №1 (младший байт) | … | Регистр №15 (старший байт) | Регистр №15 (младший байт) | Контрольная сумма CRC16 (старший байт) | Контрольная сумма CRC16 (младший байт) |
… | 0F | -- | -- |
|
|
Функция записи одного регистра (0x06):
Запрос:
Адрес слейв устройства | Номер функции | Адрес регистра для записи (старший байт) | Адрес регистра для записи (младший байт) | Значение для записи (старший байт) | Значение для записи (младший байт) | Контрольная сумма CRC16 (старший байт) | Контрольная сумма CRC16 (младший байт) |
0F | -- | -- |