|
|
(не показаны 192 промежуточные версии 10 участников) |
Строка 1: |
Строка 1: |
| '''RS-485''' - стандарт коммуникации по двухпроводной шине. По порту RS-485 к Wiren Board можно подключать периферийные устройства. | | <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--> |
| RS-485 - стандарт физического уровня, в котором биты передаются разностью напряжений - смотрите [https://ru.wikipedia.org/wiki/RS-485 описание в Википедии]. Поверх него должен работать логический уровень - стандарт сообщений, которыми обмениваются устройства. Wiren Board из коробки поддерживает стандарт [https://ru.wikipedia.org/wiki/Modbus#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5 Modbus RTU], но также может работать и с другими - подробнее ниже. | | Устройства Wiren Board используют шину RS-485 и [[Special:MyLanguage/Протокол Modbus|протокол Modbus]] поверх неё. Ограничения стандартов по количеству устройств на одной шине: |
| | * RS-485 — не более 256 устройств, при этом точное количество зависит от самих устройств; |
| | * протокол Modbus — не более 247 ведомых (slave) устройств. |
| | Контроллер Wiren Board может работать с 247 периферийными устройствами Wiren Board на шине, это было проверено опытным путем. |
|
| |
|
| == Как подключить устройства ==
| | Скорость передачи данных в периферийных устройствах Wiren Board — до 115200 бит/с. |
| === Прокладка шины ===
| |
| Все устройства RS-485 устанавливаются на одну шину. Хотя шина работает по двум проводам, удобно прокладывать четырёхжильным кабелем - дифпара для данных (сигналы А и В) и ещё пара проводов (GND и +12V) для питания периферийных устройств на шине. Можно использовать обычную витую пару CAT5 для Ethernet - тогда одна пара используется для данных, ещё две — для питания (так как по питанию идёт значительный ток, лучше и для 12В, и для земли использовать по два скрученных провода), одна остаётся свободной.
| |
|
| |
|
| '''В конце шины нужно установить терминальный резистор (примерно 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 по стандарту может быть до 1200 метров. При такой длине линии устройства могут работать на скорости 115200 бит/с. Однако при плохом качестве кабеля, отсутствии экранирования и внешних помехах может понадобиться снизить скорость. |
|
| |
|
| === Подключение устройств ===
| | <!--T:5--> |
| {|align="right"
| | [https://www.bookasutp.ru/Chapter2_3.aspx Энциклопедия АСУ ТП. Интерфейс RS-485] — подробно про работу интерфейса. |
| |-valign="top"
| |
| |[[Файл:Подлючение RS-485.jpeg|thumb|200px|Наконечники для шины]]
| |
| |[[Файл:Подлючение RS-485 к WB.jpeg|thumb|300px|Подключение к шин RS-485]]
| |
| |}
| |
| Так как соединение осуществляется общей шиной, следует обратить внимание на качественное соединение всех узлов линии:
| |
| *при обрыве линии устройства за обрывом не будут работать
| |
| *при коротком замыкании не будут работать все устройства.
| |
|
| |
|
| Рекомендуем использовать [http://www.chipdip.ru/catalog-show/tips/ штыревые наконечники под обжимку]. Это позволяет легко подключать-отключать устройства без потери работоспособности остальных устройств на шине.
| | ==Как правильно проложить шину== |
| | {{YouTube |
| | |link= https://youtu.be/f9zvU900sPI?feature=shared |
| | |text= Подключение Modbus модулей по RS-485 |
| | }} |
| | <!--T:8--> |
| | В статье [[RS-485:Физическое подключение|RS-485:Физическое подключение]] описано, как правильно проложить шину. |
|
| |
|
| Провод A на всех устрйоствах подключается к клеммнику с маркировкой А, провод B - всегда к B. На Wiren Board рядом с клеммниками А и В
| | ==Добавление устройства в веб-интерфейс== <!--T:9--> |
| расположены клеммники GND и Vout - можно сразу подключить шины питания (сначала проверьте требования ваших устройств!).
| |
|
| |
|
| Лайфхак: так как внутри Wiren Board стоит растяжка линий, после подключения его к шине напряжение на линии A будет больше чем на B примерно на 0.5 В. Поэтому подключая периферийные устройства вы легко можете определить линии шины вольтметром.
| | <!--T:10--> |
| | [[File:rs-485-setup-configs.png|thumb|right|300 px|Настройка происходит через страницу ''Configs'' [[RS-485:Настройка через веб-интерфейс|веб-интерфейса]]]] |
| | [[RS-485:Настройка через веб-интерфейс|RS-485:Настройка через веб-интерфейс]] - что сделать для появления устройства в веб-интерфейсе контроллера. |
|
| |
|
| === Преимущества RS-485 === | | ==Как ускорить опрос устройств== |
| #Дифференциальная линия дает хорошую помехозащищенность. Длина линии до 1200 метров.
| | {{YouTube |
| #Общая шина - один кабель на все устройства.
| | |link= https://youtu.be/d_olK15Xhkw |
| #При прокладке шины нужно соблюдать [http://www.gaw.ru/html.cgi/txt/interface/rs485/app.htm определённые правила], но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления.
| | |text= Как ускорить работу Modbus-устройств (30:19) |
| | |start=1819 |
| | }} |
|
| |
|
| | Для ускорения опроса устройств по шине 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 так же подключите отдельно или с оборудованием, не требующим быстрой реакции. В счетчиках очень много параметров, опрос идет медленно. |
| | #* При большом количестве устройств разделите их на несколько портов. При прочих равных скорость вырастет кратно количеству портов. |
|
| |
|
| | Также полезно использовать свежие версии прошивок, поддерживающие [[Fast Modbus | Быстрый Modbus]]⚡. В расширении некоторые Modbus-регистры поддерживают события, которые опрашиваются широковещательными командами без очереди. Это позволяет значительно сократить время опроса изменений в регистрах. |
|
| |
|
| == Программное конфигурирование устройств == | | == Работа с портом RS-485 контроллера из собственного ПО == <!--T:11--> |
| === Скорость, чётность ===
| |
| Стандарт де-факто: 9600 бит/с, нет контроля чётности, два стоп-бита - 8N2.
| |
| === Краткое описание протокола Modbus RTU === | |
| Обмен информацией происходит по принципу запрос-ответ: контроллер посылает запрос, устройство отвечает. Каждое устройство на шине имеет свой восьмибитный адрес. Адрес может быть как жестко задан, так и устанавливаться при предварительной настройке - это указывается в документации к устройству.
| |
|
| |
|
| === Настройка Wiren Board для работы с периферией ===
| | <!--T:12--> |
| В стандартном ПО Wiren Board идут драйверы для работы как для работы с периферией производства компании "Бесконтактные устройства", так и для некоторой другой - смотрите [[Поддерживаемые_устройства#RS-485]].
| | *Стандартно в 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. |
| Полное описание смотрите в [https://github.com/contactless/wb-homa-drivers#wb-homa-modbus документации к драйверу на Github].
| | *[[Special:MyLanguage/Работа с последовательным портом из Linux|Работа с последовательным портом из Linux]] |
| | | *[[Special:MyLanguage/Доступ к порту RS-485 контроллера Wiren Board с компьютера|Доступ к порту RS-485 контроллера Wiren Board с компьютера]] |
| == Протоколы кроме Modbus RTU ==
| | *[[Special:MyLanguage/UART_Communication_Settings|Настройка параметров обмена данными по RS-485 для modbus-устройств Wiren Board]] |
| Wiren Board также поддерживает протоколы устройств [http://smart.uniel.ru/ Uniel] и [http://ydom.ru ydom.ru]. Они поддерживаются драйвером [[MQTT]], но не могут работать с устройствами Modbus RTU на одной шине - их нужно подключить на отдельную шину и подключить к другому порту RS-485 Wiren Board.
| | </translate> |
| | |
| == Низкоуровневая работа с портом RS-485 в Wiren Board ==
| |
| | |
| Ознакомьтесь с инструкцией [[Работа с последовательным портом из Linux]].
| |
| | |
| Последовательные порты RS-485 в Linux на Wiren Board имеют названия '''/dev/ttyNSC0''' (неизолированный) и '''/dev/ttyNSC1''' (изолированный).
| |
| | |
| == Детали реализации портов в разных версиях Wiren Board ==
| |
| | |
| === Wiren Board Smart Home rev. 3.5 ===
| |
| | |
| [[Файл:Перемычки.png|thumb|300px|Перемычки терминаторов в 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]]. Соответсвующий последовательный порт определяется системой как <b>/dev/ttyNSC0</b>. См. [[SC16IS752#UART0]]
| |