TGViewer
Codesys 3.5 Обучение программированию. Codesys 3.5 Обучение программированию. @codesys4 · 279 subscribers
Post #174 71
🔌 MODBUS С НУЛЯ
Часть 3/3. Запросы, ответы и диагностика

Теперь посмотрим, что происходит при обмене на уровне протокола.

━━━━━━━━━━━━━━━━━━

🔹 Структура сообщения Modbus RTU

Кадр Modbus RTU содержит:

Адрес устройства
Функциональный код
Данные
CRC16


Например, мастер хочет прочитать два Holding Register с адреса 0 у устройства 1.

Запрос:

01 03 00 00 00 02 C4 0B


Разберём:

01    — адрес устройства
03 — функциональный код
0000 — начальный адрес
0002 — количество регистров
C40B — CRC16 (младший байт первым)


Устройство обрабатывает запрос и возвращает ответ.

━━━━━━━━━━━━━━━━━━

🔹 Как выглядит ответ?

Допустим, в регистрах находятся:

Register 0 = 100
Register 1 = 200


Тогда данные ответа:

01 03 04 00 64 00 C8


Где:

01 — адрес устройства
03 — функциональный код
04 — количество байтов данных
0064 — значение 100
00C8 — значение 200


После данных также передаётся CRC16.

━━━━━━━━━━━━━━━━━━

🌐 А что меняется в Modbus TCP?

Modbus TCP использует TCP/IP.

Вместо RTU-кадра с CRC передаётся сообщение с заголовком MBAP.

Основные поля:

Transaction ID
Protocol ID
Length
Unit ID
Function Code
Data


CRC16 в Modbus TCP отсутствует.

Контроль целостности передачи обеспечивается нижележащими сетевыми механизмами.

━━━━━━━━━━━━━━━━━━

⚠️ Типичные ошибки Modbus

1. Неверный адрес

Устройство отвечает ошибкой или возвращает данные не из того регистра.

2. Неверный функциональный код

Например, попытка прочитать Input Register через FC03.

3. Неправильные параметры RS-485

Различаются скорость, чётность или стоповые биты.

4. Ошибка подключения RS-485

Перепутаны линии, отсутствует корректное согласование или нарушена топология сети.

5. Неправильный формат данных

Например, REAL занимает два 16-битных регистра.

Нужно учитывать порядок слов и байтов.

6. Неправильный Unit ID

Особенно актуально при работе через шлюзы Modbus TCP/RTU.

━━━━━━━━━━━━━━━━━━

🔍 Как диагностировать обмен?

Рекомендую следующую последовательность:

1️⃣ Проверить физическое соединение.

2️⃣ Проверить параметры интерфейса.

3️⃣ Убедиться, что устройство отвечает.

4️⃣ Проверить адрес и функциональный код.

5️⃣ Проверить количество регистров.

6️⃣ Проверить формат и масштабирование.

7️⃣ Проверить тайм-ауты и период опроса.

Для диагностики можно использовать Modbus Poll и другие специализированные инструменты.

━━━━━━━━━━━━━━━━━━

📌 Главное о Modbus

Modbus — относительно простой протокол.

Но ошибки чаще всего возникают не из-за его сложности, а из-за неправильного понимания:

• адресации;
• типов регистров;
• функциональных кодов;
• форматов данных;
• особенностей интерфейса.

Понимание этих основ значительно упрощает настройку обмена между ПЛК, датчиками и исполнительными устройствами.

━━━━━━━━━━━━━━━━━━

💬 Вопрос к инженерам

С каким интерфейсом вы чаще работаете?

🔹 Modbus RTU / RS-485
🔹 Modbus TCP / Ethernet
🔹 Использую оба

Напишите в комментариях 👇

📤 Если статья полезна — перешлите её коллегам!

🔁 Поделитесь материалом в профильных чатах и сообществах.

📚 Больше статей по CODESYS и ПЛК:
https://t.me/codesys4

#Modbus #ModbusRTU #ModbusTCP #CODESYS #ОВЕН #ПЛК #АСУТП
  • 🤝 1
More from @codesys4
  1. Oct 17, 2026⚡ MODBUS — ГЕРОЙ СЕТИ! 🎸🔥 Кто сказал, что промышленная автоматизация — это скучно? 😎 🎬…
  2. Oct 17, 2026photo post
  3. Oct 17, 2026🧠 РАЗБОР КОДА: MODBUS 🔌 Сможете правильно определить адрес регистра? Представьте, что вы…
  4. Oct 17, 2026🔌 MODBUS С НУЛЯ Часть 2/3. Регистры и функциональные коды В первой части мы разобрали при…
  5. Oct 17, 2026🔌 MODBUS С НУЛЯ Часть 1/3. Как устройства обмениваются данными? Представьте промышленную…
  6. Oct 17, 2026🔌 MODBUS С НУЛЯ — разбираемся вместе! Работаете с ПЛК ОВЕН, CODESYS или промышленным обор…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →