RS-485 на обʼєкті: що ламається і чому
RS-485 — найпоширеніша шина, якою контролери на обʼєкті говорять із рештою системи: Modbus RTU поверх неї стоїть у більшості контролерів постів, лічильників і частотників. На столі вона працює завжди. На обʼєкті через місяць починається «іноді не відповідає», і причина майже ніколи не в програмі. Нижче — перелік того, що ми знаходили, від найчастішого до рідкісного, і як це знайти без осцилографа.
Топологія: лінія, а не зірка
RS-485 — це одна лінія з двома проводами, до якої пристрої підʼєднуються по черзі, один за одним. На обох кінцях лінії стоїть резистор-термінатор, який гасить відбиття сигналу. Коли лінію тягнуть зіркою — від шафи окремим кабелем до кожного поста — відбиття виникають на кожному відгалуженні, і на низькій швидкості це працює, а на високій — ні. Класична ознака: усе було добре, поки постів було три; на шостому почались помилки.
Друга типова помилка — термінатори. Або їх немає взагалі, або їх три, бо кожен, хто підключав пристрій, поставив свій. Термінаторів має бути два, на фізичних кінцях лінії, і ніде більше. Багато контролерів мають перемичку або DIP-перемикач для термінатора — і після заміни пристрою ця перемичка часто стоїть не так, як була.
Третя — відгалуження. Короткий хвіст до пристрою, який стоїть осторонь лінії, — це зменшена зірка з тими самими наслідками. Якщо пристрій не можна поставити на лінію, краще довести лінію до нього і назад, ніж робити відгалуження.
Земля і третій провід
Два проводи RS-485 — це різниця потенціалів, і приймач розуміє її лише в певному діапазоні відносно власної землі. Якщо в двох шафах на різних кінцях майданчика землі різні, — а на майданчику з насосами вони різні майже завжди, — сигнал може виходити за цей діапазон, і приймач бачить сміття або згорає.
Тому третій провід — спільна земля сигналу — потрібен, і його часто не кладуть, бо «працює й на двох». Працює, поки різниця потенціалів мала. Після грози або після того, як хтось переклав заземлення шафи, перестає.
Земляна петля — зворотна проблема: коли спільний провід зʼєднує дві землі з різним потенціалом, по ньому тече струм, який наводить завади на сигнальну пару. Лікується гальванічною розвʼязкою на одному кінці — це окремий перетворювач, і він коштує менше за один виїзд на обʼєкт.
Довжина, швидкість і кабель
Чим довша лінія, тим менша допустима швидкість. Швидкість, яка працювала всередині шафи, на лінії через весь майданчик може вже не працювати. Виробники наводять свої таблиці, але на практиці межа залежить від кабелю і завад більше, ніж від таблиці. Якщо помилки залежать від того, який пост опитується, — це майже завжди довжина плюс швидкість.
Кабель має бути витою парою з екраном, і цей екран заземлюють в одній точці, не в двох. Плоский телефонний кабель, дві жили з силового кабелю, будь-що без скрутки — усе це працює на стенді. На обʼєкті поруч із силовими лініями воно перетворюється на антену.
Прокладання поруч із силовим кабелем — окрема причина. Навіть екранована пара, покладена в одному лотку з живленням насоса, ловить кожен його запуск. Відстань від силових ліній і перетин під прямим кутом — не педантичність, а різниця між «працює» і «іноді».
Завади від насосів і частотників
Насос високого тиску на мийці — це двигун на кілька кіловат, і його пуск дає кидок струму, який видно на всьому, що поруч. Частотний перетворювач ще гірший: він генерує високочастотні завади безперервно, поки працює, і не лише по проводах, а й через повітря на незаекранований кабель.
Ознака саме цієї причини: помилки повʼязані з роботою обладнання. Вночі, коли насоси стоять, помилок немає. На найпотужнішій програмі — найбільше. Якщо в журналі помилок Modbus видно кореляцію з програмами — далі шукати кабель, а не код.
Що допомагає: екранований кабель із правильним заземленням екрана, феритові кільця на вході в контролер, окремий лоток, і — якщо частотник має вихідний фільтр — його встановлення. Останнє вирішує проблему найчастіше, але це вже робота електрика, не програміста.
Таймінги Modbus RTU
Modbus RTU розділяє повідомлення паузами: між кадрами має бути тиша тривалістю щонайменше 3,5 символи, а пауза всередині кадру, довша за 1,5 символи, означає обрив кадру. Це просто на мікроконтролері й непросто на компʼютері з операційною системою, де USB-перетворювач додає свої затримки, а ядро — свої.
Типовий наслідок: на Raspberry Pi або промисловому ПК з USB-RS485 частина кадрів «розпадається» надвоє, і пристрій відповідає помилкою або мовчить. Виглядає як випадкові таймаути, які не залежать від обладнання і трапляються навіть уночі.
Що робити: перевірити таймаути в бібліотеці, не опитувати пристрої частіше, ніж потрібно, не тримати на одній шині пристрої з різним часом відповіді без запасу, і — де можливо — використати перетворювач з апаратним керуванням напрямком передачі, а не програмним. Ще один ефект: пристрій відповідає надто швидко, поки перетворювач ще не перемкнувся на прийом, і початок відповіді губиться. Це видно лише з журналом на рівні байтів.
Як діагностувати і коли переходити на TCP
Порядок пошуку, який економить час. Спершу — журнал: коли помилки, з яким пристроєм, чи є кореляція з часом доби і роботою обладнання. Далі — опитати кожен пристрій окремо, відʼєднавши решту: якщо по одному відповідають, а разом ні — топологія або термінатори. Потім — знизити швидкість удвічі: якщо помилки зникли — довжина, кабель або завади. І лише потім — мультиметр на різницю потенціалів між землями шаф.
Modbus TCP — той самий протокол поверх Ethernet. Він прибирає всі проблеми RS-485 і додає свої: комутатори, живлення, адресацію, і ще один пристрій на кожному посту. Переходити на нього варто, коли постів багато і вони далеко, коли на обʼєкті вже є мережа, або коли RS-485 не вдається стабілізувати після двох виїздів. Не варто — заради одного контролера в трьох метрах від шафи.
Компроміс, який часто працює: короткі сегменти RS-485 усередині кожної шафи і Ethernet між шафами, через шлюз Modbus RTU/TCP. Довгих ліній немає, кількість пристроїв на сегменті мала, і кожен сегмент можна діагностувати окремо.
Часті питання
Чому шина працювала рік, а потім почались помилки
Чи достатньо двох проводів, чи потрібен третій
Чи вирішить проблему перехід на Modbus TCP
Ще відповіді
Оновлено: 2026-09-22