Modbus Функції - Блог Домашнього Програміста
У цій статті я розповім які функції в протоколі Modbus і який формат вони використовують. Спочатку будуть показані функції формату для Modbus RTU. Наприкінці статті я покажу різницю у форматі для Modbus TCP та Modbus ASCII.
Невелика примітка. Усі приклади команд будуть дані у шістнадцятковому вигляді без приставки 0х. Наприклад, 05 означає 0х05, а 0А означає 0х0А (10 у десятковій системі). Всі байт йдуть зліва на право (найлівіший – перший байт, найправіший – останній байт).
Окремо буде показано формат запиту та формат відповіді. А також будуть наведені конкретні приклади.
Список команд:
Читання стану COIL регістру
Приклад команди:
Байти даних у відповіді зберігають значення з молодшого біта до старшого.
Реєстр 20 –> байт #3, біт #0
Реєстр 21 –> байт #3, біт #1
Реєстр 22 –> байт #3, біт #2
Реєстр 27 –> байт #3, біт #7
Також у байті #7 нам потрібно зберегти значення тільки для 5 регістрів. Тому ми використовуємо лише 5 молодших бітів, а старші 3, які не використовуються, встановлюємо 0.
Читання CONTACT регістру
Приклад команди:
Байти даних у відповіді зберігають значення з молодшого біта до старшого.
Реєстр 10197 –> байт #3, біт #0
Реєстр 10198 –> байт #3, біт #1
Реєстр 10199 –> байт #3, біт #2
Реєстр 10204 –> байт #3, біт #7
Також у байті #5 нам потрібно зберегти значення тільки для 6 регістрів. Тому ми використовуємо лише 6 молодших бітів, а старші 2, які не використовуються, встановлюємо 0.