|
|
(не показано 212 промежуточных версий 10 участников) |
Строка 1: |
Строка 1: |
| <languages/>
| | '''RS-485''' - стандарт, определяющий физический уровень коммуникации по двухпроводной шине. Часто под этим названием подразумевают и последовательный порт, работающий на таком физическом уровне. |
| <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. |
| | * Логическая единица: (A-B) > +200 мВ |
| | * Логический ноль: (A-B) < −200 мВ |
|
| |
|
| Длина линии RS-485 по стандарту может быть до 1200 метров. При такой длине линии устройства могут работать на скорости 115200 бит/с. Однако при плохом качестве кабеля, отсутствии экранирования и внешних помехах может понадобиться снизить скорость.
| | Интерфейс является полудуплексным: узел не может одновременно и принимать, и передавать данные. |
|
| |
|
| <!--T:5-->
| | Все устройства устанавливаются на одну шину, в конце шины нужно установить терминальный резистор (примерно 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) |
| [https://www.bookasutp.ru/Chapter2_3.aspx Энциклопедия АСУ ТП. Интерфейс RS-485] — подробно про работу интерфейса.
| |
|
| |
|
| ==Как правильно проложить шину== | | == Работа с портом RS-485 в Wiren Board == |
| {{YouTube
| |
| |link= https://youtu.be/f9zvU900sPI?feature=shared
| |
| |text= Подключение Modbus модулей по RS-485
| |
| }}
| |
| <!--T:8-->
| |
| В статье [[RS-485:Физическое подключение|RS-485:Физическое подключение]] описано, как правильно проложить шину.
| |
|
| |
|
| ==Добавление устройства в веб-интерфейс== <!--T:9-->
| | Последовательные порты RS-485 в Linux на Wiren Board имеют названия /dev/ttyNSC0 и /dev/ttyNSC1. Ознакомьтесь с инструкцией [[Работа с последовательным портом из Linux]] |
|
| |
|
| <!--T:10-->
| | == Детали реализации портов в разных версиях Wiren Board == |
| [[File:rs-485-setup-configs.png|thumb|right|300 px|Настройка происходит через страницу ''Configs'' [[RS-485:Настройка через веб-интерфейс|веб-интерфейса]]]]
| |
| [[RS-485:Настройка через веб-интерфейс|RS-485:Настройка через веб-интерфейс]] - что сделать для появления устройства в веб-интерфейсе контроллера.
| |
|
| |
|
| ==Как ускорить опрос устройств== | | === Wiren Board Smart Home rev. 3.5 === |
| {{YouTube
| |
| |link= https://youtu.be/d_olK15Xhkw
| |
| |text= Как ускорить работу Modbus-устройств (30:19)
| |
| |start=1819
| |
| }}
| |
|
| |
|
| Для ускорения опроса устройств по шине RS-485 рекомендуем:
| | [[Файл:Перемычки.png|thumb|300px|Перемычки терминаторов]] |
| # Проверить [[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 так же подключите отдельно или с оборудованием, не требующим быстрой реакции. В счетчиках очень много параметров, опрос идет медленно.
| |
| #* При большом количестве устройств разделите их на несколько портов. При прочих равных скорость вырастет кратно количеству портов.
| |
|
| |
|
| Также полезно использовать свежие версии прошивок, поддерживающие [[Fast Modbus | Быстрый Modbus]]⚡. В расширении некоторые Modbus-регистры поддерживают события, которые опрашиваются широковещательными командами без очереди. Это позволяет значительно сократить время опроса изменений в регистрах.
| | Контроллер имеет два полудуплексных порта. |
|
| |
|
| == Работа с портом RS-485 контроллера из собственного ПО == <!--T:11-->
| | Трансивер подключен к чипу [[SC16IS752]]. |
|
| |
|
| <!--T:12-->
| | Порты определяются в системе как: |
| *Стандартно в Wiren Board с подключёнными по RS-485 устройствами работает [[Special:MyLanguage/Драйвер wb-mqtt-serial|Драйвер wb-mqtt-serial]] (ранее ''wb-homa-modbus''). Он позволяет работать с подключёнными устройствами RS-485 через систему [[Special:MyLanguage/MQTT|MQTT]]-сообщений.
| | |
| *Если вы хотите работать с портом RS-485 напрямую, не используя этот драйвер — отключите его, иначе он будет писать в порт RS-485.
| | /dev/ttyNSC0 - зелёная пара клеммников |
| *[[Special:MyLanguage/Работа с последовательным портом из Linux|Работа с последовательным портом из Linux]]
| | |
| *[[Special:MyLanguage/Доступ к порту RS-485 контроллера Wiren Board с компьютера|Доступ к порту RS-485 контроллера Wiren Board с компьютера]]
| | /dev/ttyNSC1 - синяя пара клеммников |
| *[[Special:MyLanguage/UART_Communication_Settings|Настройка параметров обмена данными по RS-485 для modbus-устройств Wiren Board]]
| | |
| </translate> | | Для уменьшения эффектов отражения, линии RS-485 должны заканчиваться "терминаторами" - резисторами, равными волновому сопротивлению линии. На плате установлены резисторы по 150 Ом между линиями A и В. Для их отключения распаяйте соответствующие SMD-перемычки (по умолчанию запаяны), см. фото. |
| | |
| | === Wiren Board rev. 2.8 === |
| | |
| | Wiren Board 2.8 может поставляться с трансивером RS-485. Поддерживается полудуплексный режим работы, линии A и B выведены на клеммники. |
| | |
| | Трансивер подключен к чипу [[SC16IS752]]. Соответсвующий последовательный порт определяется системой как <b>/dev/ttyNSC0</b>. См. [[SC16IS752#UART0]] |
RS-485 - стандарт, определяющий физический уровень коммуникации по двухпроводной шине. Часто под этим названием подразумевают и последовательный порт, работающий на таком физическом уровне.
Краткое описание стандарта
Передача данных осуществляется созданием разности напряжений между линиями A и B.
- Логическая единица: (A-B) > +200 мВ
- Логический ноль: (A-B) < −200 мВ
Интерфейс является полудуплексным: узел не может одновременно и принимать, и передавать данные.
Все устройства устанавливаются на одну шину, в конце шины нужно установить терминальный резистор (примерно 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
Последовательные порты RS-485 в Linux на Wiren Board имеют названия /dev/ttyNSC0 и /dev/ttyNSC1. Ознакомьтесь с инструкцией Работа с последовательным портом из Linux
Детали реализации портов в разных версиях Wiren Board
Wiren Board Smart Home rev. 3.5
Контроллер имеет два полудуплексных порта.
Трансивер подключен к чипу SC16IS752.
Порты определяются в системе как:
/dev/ttyNSC0 - зелёная пара клеммников
/dev/ttyNSC1 - синяя пара клеммников
Для уменьшения эффектов отражения, линии RS-485 должны заканчиваться "терминаторами" - резисторами, равными волновому сопротивлению линии. На плате установлены резисторы по 150 Ом между линиями A и В. Для их отключения распаяйте соответствующие SMD-перемычки (по умолчанию запаяны), см. фото.
Wiren Board rev. 2.8
Wiren Board 2.8 может поставляться с трансивером RS-485. Поддерживается полудуплексный режим работы, линии A и B выведены на клеммники.
Трансивер подключен к чипу SC16IS752. Соответсвующий последовательный порт определяется системой как /dev/ttyNSC0. См. SC16IS752#UART0