Протокол зв'язку RS485 і Modbus

Aug 29, 2025 Залишити повідомлення

Ознайомлення з інтерфейсом RS485

 

RS485 — це стандарт інтерфейсу послідовного зв’язку, відомий своєю високою швидкістю, -передачею на великі відстані, стійкістю до перешкод і можливостями спільного використання кількома-пристроями. Він знаходить широке застосування в промисловій автоматизації, розумних будинках, системах безпеки та інших сферах. У цій статті наведено детальний огляд принципів інтерфейсу RS485, конструкції схеми, протоколів зв’язку та вирішення типових проблем.


Принцип RS485

 

Інтерфейс RS485 використовує диференціальну передачу, використовуючи дві сигнальні лінії (A і B) для передачі сигналів рівня напруги. Величина сигналу залежить від різниці напруг між цими двома лініями. В інтерфейсі RS485 сигнальні лінії A і B можуть функціонувати як передавач або приймач. Цей метод диференціальної передачі дозволяє інтерфейсу RS485 ефективно протистояти зовнішньому шуму та перешкодам, забезпечуючи таким чином якість передачі.


Поля застосування RS485


Інтерфейс RS485 широко використовується в сценаріях, які потребують-відстаней, високої-швидкості та стабільної передачі даних, наприклад у промисловій автоматизації, розумних будинках і системах безпеки. Щодо відстані передачі, RS485 підтримує до 1200 метрів, а щодо швидкості передачі – до 10 Мбіт/с. Це робить інтерфейс RS485 широко застосовним у сценаріях, що включають збір даних, регулювання, моніторинг і контроль.

 

 

 

info-638-230

Схема RS485


Розробка схеми для інтерфейсу RS485 вимагає врахування багатьох факторів, таких як відстань передачі, швидкість зв’язку, захист від блискавки та ізоляція. Нижче ми представимо схему схеми для інтерфейсу RS485 з кожного з цих аспектів.

 

Відстань передачі


Завдяки диференціальній передачі інтерфейс RS485 підтримує більші відстані передачі. Однак у практичних застосуваннях такі фактори, як імпеданс лінії передачі, перехресні перешкоди та якість сигналу, накладають обмеження на діапазон передачі. Щоб мінімізувати втрати та спотворення сигналу, ми зазвичай рекомендуємо обмежувати відстань передачі до 1,2 км при розробці схем інтерфейсу RS485.


Швидкість зв'язку

 

Інтерфейс RS485 може досягати швидкості зв'язку до 10 Мбіт/с. У практичних застосуваннях ми зазвичай вибираємо відповідну швидкість зв’язку на основі конкретних умов. Вищі швидкості зв'язку підвищують ефективність передачі, але також підвищують складність і технічні вимоги до схеми інтерфейсу.


Блискавкозахист


Враховуючи складне промислове середовище, інтерфейси RS485 часто стикаються з різними перешкодами, такими як удари блискавки, статична електрика та стрибки напруги. Для захисту ланцюгів інтерфейсу RS485 необхідні заходи захисту від блискавки. Для захисту від удару блискавки можна використовувати такі компоненти, як регульовані пристрої захисту від перенапруги та металооксидні варистори (MOV).


Ізоляція

 

У деяких сценаріях потрібна ізоляція між інтерфейсом RS485 та іншими схемами. Цього можна досягти за допомогою таких компонентів, як оптрони або магнітні з’єднувачі для ізоляції сигналів. Це ефективно запобігає потенційним петлям заземлення та шумовим перешкодам, підвищуючи надійність і стабільність схеми інтерфейсу.


Протоколи зв'язку RS485


У практичних застосуваннях інтерфейси RS485 також вимагають специфікації протоколу та форматування даних. Поширені протоколи зв'язку RS485 включають Modbus, Profibus і CANopen. Кожен протокол має відмінні характеристики та застосовні сценарії, що дозволяє вибирати на основі конкретних вимог. Нижче ми насамперед представляємо протокол Modbus RTU, який є найбільш широко використовуваним протоколом передачі в наших проектах на основі інтерфейсів RS485.


Знайомство з Modbus RTU

 

Modbus RTU — це широко поширений промисловий протокол зв’язку, один із послідовних протоколів зв’язку на основі Modbus. Цей протокол, який в основному використовується для послідовного зв’язку між такими пристроями, як контролери ПЛК, датчики та виконавчі механізми, полегшує обмін даними. У цій статті докладно описано значення кожного регістра в протоколі Modbus RTU, наведено приклади передачі та отримання даних для кожного функціонального коду та висвітлено важливу контрольну суму CRC.


Формат даних протоколу Modbus RTU


Протокол Modbus RTU використовує послідовний зв’язок для передачі даних.


зокрема:


Поле «Адреса» визначає адресу підлеглого пристрою під час зв’язку, яка може мати будь-яке значення від 0 до 247.


Код функції визначає тип даних і напрямок читання/запису, як правило, ціле число від 1 до 127.


Поле даних містить фактичний вміст даних.
Контрольна сума (CRC) перевіряє цілісність пакета даних.
Коди функцій протоколу Modbus RTU
У протоколі Modbus RTU різні функціональні коди представляють різні типи даних і напрямки читання/запису. Нижче наведено типові функціональні коди та їх значення:


01: Прочитати регістр котушки
02: Читання дискретного вхідного регістру
03: Читання реєстру утримання
04: Читання вхідного регістру
05: Записати регістр однієї котушки
06: Записати єдиний регістр утримання
15: Записати кілька регістрів котушки
16: Запис кількох регістрів утримання


Регістри адрес протоколу Modbus RTU


Адреси пристроїв і адреси реєстрів є критичними параметрами для зв’язку в протоколі Modbus RTU. Адресні регістри можна розділити на такі чотири типи:


Регістр котушки (Регістр котушки)

 

Регістри котушки зберігають логічні значення (0 або 1). Функціональні коди 01, 05 і 15 дозволені для роботи з регістрами котушок. Стан кожної котушки може бути представлений одним двійковим бітом.


Наприклад, якщо для котушки з бітом 0x0001 встановлено значення 0, її двійкове значення буде 00000000 00000001.. Якщо для котушки встановлено значення 1, її двійкове значення змінюється на 00000000 00000010.


Дискретний вхідний регістр


Дискретний вхідний регістр зберігає значення двійкових вхідних перемикачів і призначений лише для-читання з відповідним функціональним кодом 02. Різниця між дискретним вхідним регістром і котушковим регістром полягає в тому, що він указує, чи перемикач перебуває у стані «УВІМКНЕНО», а не його поточний стан.


Холдинговий реєстр

 

Holding Register зберігає 32-розрядні цілі змінні. Функціональні коди 03, 04, 06 і 16 дозволяють операції читання/запису в реєстрі зберігання. Значення в Реєстрі зберігання можуть сприяти передачі даних між пристроями або налаштовуватися користувачами як відповідні контрольні параметри.


Вхідний регістр

 

Вхідні регістри зберігають 32-розрядні цілі змінні та підтримують операції лише для читання з кодом функції 04. Подібно до регістрів зберігання, значення у вхідних регістрах можна передавати між пристроями, але користувачі не можуть їх змінювати.


Перевірка CRC протоколу Modbus RTU

 

Щоб забезпечити надійність зв’язку протоколу Modbus RTU, цей протокол використовує метод перевірки циклічної надлишковості (CRC) для перевірки цілісності пакетів даних. Контрольний код CRC обчислюється на основі переданих і отриманих пакетів даних і перевіряється одночасно на сторонах відправлення та прийому.


Взявши для прикладу регістр утримання читання (код функції: 03), шістнадцяткові значення контрольної суми CRC для його переданих і отриманих пакетів даних становлять 0x39 і 0x3E відповідно. Конкретні передані та отримані пакети даних такі:


Передавач-надіслав пакет даних: 01 03 00 00 00 01 C4 0B
У цьому пакеті перші 6 бітів (01 03 00 00 00 01) представляють формат протоколу Modbus RTU, а останні два біти (C4 і 0B) складають контрольну суму CRC.
Отриманий пакет одержувачем: 01 03 02 00 01 39 3E
У цьому пакеті даних перші 6 бітів 01 03 02 00 01 39 представляють отримане значення регістра зберігання (два байти), тоді як останні два біти 3E та 39 є обчисленою контрольною сумою CRC.


Приклад передачі протоколу Modbus RTU


Нижче наведено простий приклад передачі протоколу Modbus RTU для зчитування даних з регістру зберігання пристрою:


Передавач надсилає: 01 03 00 00 00 02 C5 9A
Одержувач отримує: 01 03 04 00 00 00 66 CB


Цей приклад зчитує регістр утримання пристрою 01 за допомогою коду функції 03, звертаючись до двох байтів за адресою регістра 0x0000. Таким чином, отриманий пакет даних містить значення 0x0000 і 0x0000, тобто 0x0000 0000, представлені в шістнадцятковій формі як 0x66CB.


Висновок


Ця стаття головним чином охоплює принципи, програми, схемотехніку, протоколи зв’язку та рішення для усунення несправностей для інтерфейсів RS485. Інтерфейси RS485 знаходять широке застосування в промисловій автоматизації, розумних будинках, системах безпеки та інших сферах. Однак для забезпечення надійності та стабільності схеми інтерфейсу слід враховувати такі фактори, як відстань передачі, швидкість зв’язку, захист від блискавки та ізоляція. Представлені базові знання протоколу Modbus RTU, включаючи його формат даних, функціональні коди, адресні регістри та контрольну суму CRC. У практичних застосуваннях протокол Modbus RTU широко використовується для зв’язку між пристроями в системах керування промисловою автоматизацією. Під час зчитування даних особливу увагу слід приділити вибору адреси пристрою, адреси реєстру та коду функції.

Послати повідомлення

whatsapp

Телефон

Електронна пошта

Розслідування