RS-485: различия между версиями

Материал из Wiren Board
 
(не показано 205 промежуточных версий 10 участников)
Строка 1: Строка 1:
'''RS-485''' - стандарт, определяющий физический уровень коммуникации по двухпроводной шине.  
<languages/>
<translate>
<!--T:1-->
__NOTOC__
== Описание ==
[[File:Max number WB RS-485 devices.jpg|thumb|right|300 px|Эксперимент, подтверждающий работу контроллера Wiren Board с 247 периферийными устройствами Wiren Board на одной шине]]
'''RS-485''' стандарт коммуникации по двухпроводной шине.


Также этим названием подразумевают порт, работающий по этому стандарту.
<!--T:2-->
Устройства Wiren Board используют шину RS-485 и [[Special:MyLanguage/Протокол Modbus|протокол Modbus]] поверх неё. Ограничения стандартов по количеству устройств на одной шине:
* RS-485 — не более 256 устройств, при этом точное количество зависит от самих устройств;
* протокол Modbus — не более 247 ведомых (slave) устройств.
Контроллер Wiren Board может работать с 247 периферийными устройствами Wiren Board на шине, это было проверено опытным путем.


== Краткое описание стандарта ==
Скорость передачи данных в периферийных устройствах Wiren Board — до 115200 бит/с.


Передача данных осуществляется созданием разности напряжений между линиями A и B.
Длина линии RS-485 по стандарту может быть до 1200 метров. При такой длине линии устройства могут работать на скорости 115200 бит/с. Однако при плохом качестве кабеля, отсутствии экранирования и внешних помехах может понадобиться снизить скорость.
* Логическая единица: (A-B) > +200 мВ
* Логический ноль: (A-B) < −200 мВ


Интерфейс является полудуплексным: узел не может одновременно и принимать, и передавать данные.
<!--T:5-->
[https://www.bookasutp.ru/Chapter2_3.aspx Энциклопедия АСУ ТП. Интерфейс RS-485] — подробно про работу интерфейса.


Все устройства устанавливаются на одну шину, в конце шины нужно установить терминальный резистор (примерно 150 Ом, подробнее в [https://ru.wikipedia.org/wiki/RS-485#.D0.A1.D0.BE.D0.B3.D0.BB.D0.B0.D1.81.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5 статье] на википедии).
==Как правильно проложить шину==


== Работа с портом RS-485 в Wiren Board ==
<!--T:8-->
В статье [[RS-485:Физическое подключение|RS-485:Физическое подключение]] описано, как правильно проложить шину.


Ознакомьтесь с инструкцией [[Работа с последовательным портом из Linux]].
==Добавление устройства в веб-интерфейс== <!--T:9-->


Последовательные порты RS-485 в Linux на Wiren Board имеют названия '''/dev/ttyNSC0''' и '''/dev/ttyNSC1'''.
<!--T:10-->
[[File:rs-485-setup-configs.png|thumb|right|300 px|Настройка происходит через страницу ''Configs'' [[RS-485:Настройка через веб-интерфейс|веб-интерфейса]]]]
[[RS-485:Настройка через веб-интерфейс|RS-485:Настройка через веб-интерфейс]] - что сделать для появления устройства в веб-интерфейсе контроллера.


== Детали реализации портов в разных версиях Wiren Board ==
==Как ускорить опрос устройств==
{{YouTube
|link= https://youtu.be/d_olK15Xhkw
|text= Как ускорить работу Modbus-устройств (30:19)
|start=1819
}}


=== Wiren Board Smart Home rev. 3.5 ===
Для ускорения опроса устройств по шине RS-485 рекомендуем:
# Проверить [[RS-485:Физическое подключение | физическое подключение]] и отсутствие ошибок.
# [[UART Communication Settings | Увеличить скорость обмена до 115200 бит/с]]. На разумных длинах и топологии сети все должно нормально работать. Если на шине есть устройства, не поддерживающие эту скорость, см. пункт 6.
# [[RS-485:Configuration_via_Web_Interface#Отключение каналов, смена режимов и настройка параметров | Отключить]] через веб-интерфейс в настройках устройства ненужные каналы.
# Если канал не поддерживает события, [[RS-485:Configuration_via_Web_Interface#poll-period | настроить период опроса каналов]]. Точная настройка периода опроса может быть полезна, если какие-то каналы нужно опрашивать часто или наоборот — редко.
# Разделить устройства по типам и портам, в контроллере 2 порта RS-485 и еще 3 можно добавить модулями расширения:
#* Устройства, не поддерживающие скорость 115200,  подключите отдельно.
#* Счетчики MAP так же подключите отдельно или с оборудованием, не требующим быстрой реакции. В счетчиках очень много параметров, опрос идет медленно.
#* При большом количестве устройств разделите их на несколько портов. При прочих равных скорость вырастет кратно количеству портов.


[[Файл:Перемычки.png|thumb|300px|Перемычки терминаторов в Wiren Board Smart Home rev. 3.5]]
Также полезно использовать свежие версии прошивок, поддерживающие [[Fast Modbus | Быстрый Modbus]]&#9889;. В расширении некоторые Modbus-регистры поддерживают события, которые опрашиваются широковещательными командами без очереди. Это позволяет значительно сократить время опроса изменений в регистрах.


Контроллер имеет два полудуплексных порта. Трансивер подключен к чипу [[SC16IS752]].
== Работа с портом RS-485 контроллера из собственного ПО == <!--T:11-->


Порты определяются в системе как:
<!--T:12-->
* /dev/ttyNSC0 - зелёная пара клеммников
*Стандартно в Wiren Board с подключёнными по RS-485 устройствами работает [[Special:MyLanguage/Драйвер wb-mqtt-serial|Драйвер wb-mqtt-serial]] (ранее ''wb-homa-modbus''). Он позволяет работать с подключёнными устройствами RS-485 через систему [[Special:MyLanguage/MQTT|MQTT]]-сообщений.
* /dev/ttyNSC1 - синяя пара клеммников
*Если вы хотите работать с портом RS-485 напрямую, не используя этот драйвер — отключите его, иначе он будет писать в порт RS-485.
 
*[[Special:MyLanguage/Работа с последовательным портом из Linux|Работа с последовательным портом из Linux]]
Для уменьшения эффектов отражения, линии RS-485 должны заканчиваться "терминаторами" - резисторами, равными волновому сопротивлению линии. На плате установлены резисторы по 150 Ом между линиями A и В. Для их отключения распаяйте соответствующие SMD-перемычки (по умолчанию запаяны), см. фото.
*[[Special:MyLanguage/Доступ к порту RS-485 контроллера Wiren Board с компьютера|Доступ к порту RS-485 контроллера Wiren Board с компьютера]]
 
*[[Special:MyLanguage/UART_Communication_Settings|Настройка параметров обмена данными по RS-485 для modbus-устройств Wiren Board]]
=== Wiren Board  rev. 2.8 ===
</translate>
 
Wiren Board 2.8 может поставляться с трансивером RS-485. Поддерживается полудуплексный режим работы, линии A и B выведены на клеммники.
 
Трансивер подключен к чипу [[SC16IS752]]. Соответсвующий последовательный порт определяется системой как <b>/dev/ttyNSC0</b>. См. [[SC16IS752#UART0]]

Текущая версия на 10:35, 13 апреля 2024

Другие языки:

Описание

Эксперимент, подтверждающий работу контроллера Wiren Board с 247 периферийными устройствами Wiren Board на одной шине

RS-485 — стандарт коммуникации по двухпроводной шине.

Устройства Wiren Board используют шину RS-485 и протокол Modbus поверх неё. Ограничения стандартов по количеству устройств на одной шине:

  • RS-485 — не более 256 устройств, при этом точное количество зависит от самих устройств;
  • протокол Modbus — не более 247 ведомых (slave) устройств.

Контроллер Wiren Board может работать с 247 периферийными устройствами Wiren Board на шине, это было проверено опытным путем.

Скорость передачи данных в периферийных устройствах Wiren Board — до 115200 бит/с.

Длина линии RS-485 по стандарту может быть до 1200 метров. При такой длине линии устройства могут работать на скорости 115200 бит/с. Однако при плохом качестве кабеля, отсутствии экранирования и внешних помехах может понадобиться снизить скорость.

Энциклопедия АСУ ТП. Интерфейс RS-485 — подробно про работу интерфейса.

Как правильно проложить шину

В статье RS-485:Физическое подключение описано, как правильно проложить шину.

Добавление устройства в веб-интерфейс

Настройка происходит через страницу Configs веб-интерфейса

RS-485:Настройка через веб-интерфейс - что сделать для появления устройства в веб-интерфейсе контроллера.

Как ускорить опрос устройств

Как ускорить работу Modbus-устройств (30:19)

Для ускорения опроса устройств по шине RS-485 рекомендуем:

  1. Проверить физическое подключение и отсутствие ошибок.
  2. Увеличить скорость обмена до 115200 бит/с. На разумных длинах и топологии сети все должно нормально работать. Если на шине есть устройства, не поддерживающие эту скорость, см. пункт 6.
  3. Отключить через веб-интерфейс в настройках устройства ненужные каналы.
  4. Если канал не поддерживает события, настроить период опроса каналов. Точная настройка периода опроса может быть полезна, если какие-то каналы нужно опрашивать часто или наоборот — редко.
  5. Разделить устройства по типам и портам, в контроллере 2 порта RS-485 и еще 3 можно добавить модулями расширения:
    • Устройства, не поддерживающие скорость 115200, подключите отдельно.
    • Счетчики MAP так же подключите отдельно или с оборудованием, не требующим быстрой реакции. В счетчиках очень много параметров, опрос идет медленно.
    • При большом количестве устройств разделите их на несколько портов. При прочих равных скорость вырастет кратно количеству портов.

Также полезно использовать свежие версии прошивок, поддерживающие Быстрый Modbus⚡. В расширении некоторые Modbus-регистры поддерживают события, которые опрашиваются широковещательными командами без очереди. Это позволяет значительно сократить время опроса изменений в регистрах.

Работа с портом RS-485 контроллера из собственного ПО