|
|
(не показано 127 промежуточных версий 10 участников) |
Строка 1: |
Строка 1: |
| '''RS-485''' - стандарт коммуникации по двухпроводной шине. По порту RS-485 к [[Wiren Board]] можно подключать периферийные устройства.
| | <languages/> |
| == Какие устройства можно подключать к Wiren Board по RS-485 ==
| | <translate> |
| === Поддерживаемые протоколы === | | <!--T:1--> |
| В настоящее время поддерживается работа с устройствами протоколов Modbus RTU, Uniel, ИВТМ, Меркурий 230, Милур, подключаемыми через RS-485.
| | __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 на шине, это было проверено опытным путем. |
|
| |
|
| 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], а также протоколы устройств [http://smart.uniel.ru/ Uniel] и [http://ydom.ru ydom.ru].
| | Скорость передачи данных в периферийных устройствах Wiren Board — до 115200 бит/с. |
|
| |
|
| === Краткое описание протокола Modbus RTU ===
| | Длина линии RS-485 по стандарту может быть до 1200 метров. При такой длине линии устройства могут работать на скорости 115200 бит/с. Однако при плохом качестве кабеля, отсутствии экранирования и внешних помехах может понадобиться снизить скорость. |
| Обмен информацией происходит по принципу запрос-ответ: контроллер посылает запрос, устройство отвечает. Каждое устройство на шине имеет свой восьмибитный адрес. Адрес может быть как жестко задан, так и устанавливаться при предварительной настройке - это указывается в документации к устройству.
| |
|
| |
|
| === Поддерживаемые устройства ===
| | <!--T:5--> |
| Однако даже если Wiren Board поддерживает протокол, по которому работает устройство, Wiren Board не обязательно поддерживает само это устройство. В стандартном ПО Wiren Board идут драйверы как для работы с [[Периферийные устройства с интерфейсом Modbus серии WB-xxxx | периферией производства компании "Бесконтактные устройства"]], так и для некоторой другой - смотрите список [[Поддерживаемые_устройства#RS-485]].
| | [https://www.bookasutp.ru/Chapter2_3.aspx Энциклопедия АСУ ТП. Интерфейс RS-485] — подробно про работу интерфейса. |
|
| |
|
| | ==Как правильно проложить шину== |
|
| |
|
| <div class="toccolours mw-collapsible mw-collapsed"> | | <!--T:8--> |
| | В статье [[RS-485:Физическое подключение|RS-485:Физическое подключение]] описано, как правильно проложить шину. |
|
| |
|
| == Как физически подключить устройства == | | ==Добавление устройства в веб-интерфейс== <!--T:9--> |
| <div class="mw-collapsible-content"> | |
| === Прокладка шины ===
| |
| Все устройства RS-485 устанавливаются на одну шину. Хотя шина работает по двум проводам, удобно прокладывать четырёхжильным кабелем - дифпара для данных (сигналы А и В) и ещё пара проводов (GND и +12V) для питания периферийных устройств на шине. Можно использовать обычную витую пару CAT5 для Ethernet - тогда одна пара используется для данных, ещё две — для питания (так как по питанию идёт значительный ток, лучше и для 12В, и для земли использовать по отдельной паре), одна пара остаётся свободной.
| |
|
| |
|
| '''Важно:''' при подключении внешних устройств к Wiren Board по шине RS-485, нужно соединять не только линии передачи данных A и B, но и '''земли''' (общий провод) контроллера Wiren Board и внешних устройств. Подключение общего провода необходимо в случае подключения к неизолированному порту RS-485 и рекомендуется в случае подключения к гальванически изолированному порту.
| | <!--T:10--> |
| Клемма общего провода обозначается, в зависимости от оборудования, как SC, SG, G, GND, ground или reference. На контроллерах Wiren Board эта клемма обозначена как GND. При подключении к изолированному порту, нужно подключаться к изолированной земле данного порта (клеммы "GND iso").
| | [[File:rs-485-setup-configs.png|thumb|right|300 px|Настройка происходит через страницу ''Configs'' [[RS-485:Настройка через веб-интерфейс|веб-интерфейса]]]] |
| | [[RS-485:Настройка через веб-интерфейс|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 Википедии]).
| | ==Как ускорить опрос устройств== |
| | {{YouTube |
| | |link= https://youtu.be/d_olK15Xhkw |
| | |text= Как ускорить работу Modbus-устройств (30:19) |
| | |start=1819 |
| | }} |
|
| |
|
| === Подключение устройств ===
| | Для ускорения опроса устройств по шине RS-485 рекомендуем: |
| {|align="right"
| | # Проверить [[RS-485:Физическое подключение | физическое подключение]] и отсутствие ошибок. |
| |-valign="top"
| | # [[UART Communication Settings | Увеличить скорость обмена до 115200 бит/с]]. На разумных длинах и топологии сети все должно нормально работать. Если на шине есть устройства, не поддерживающие эту скорость, см. пункт 6. |
| |[[Файл:Подлючение RS-485.jpeg|thumb|200px|Наконечники для шины]]
| | # [[RS-485:Configuration_via_Web_Interface#Отключение каналов, смена режимов и настройка параметров | Отключить]] через веб-интерфейс в настройках устройства ненужные каналы. |
| |[[Файл:Подлючение RS-485 к WB.jpeg|thumb|300px|Подключение шины RS-485 к Wiren Board 4 (в центре)]]
| | # Если канал не поддерживает события, [[RS-485:Configuration_via_Web_Interface#poll-period | настроить период опроса каналов]]. Точная настройка периода опроса может быть полезна, если какие-то каналы нужно опрашивать часто или наоборот — редко. |
| |}
| | # Разделить устройства по типам и портам, в контроллере 2 порта RS-485 и еще 3 можно добавить модулями расширения: |
| Так как соединение осуществляется общей шиной, следует обратить внимание на качественное соединение всех узлов линии:
| | #* Устройства, не поддерживающие скорость 115200, подключите отдельно. |
| *при обрыве линии устройства за обрывом не будут работать | | #* Счетчики MAP так же подключите отдельно или с оборудованием, не требующим быстрой реакции. В счетчиках очень много параметров, опрос идет медленно. |
| *при коротком замыкании не будут работать все устройства. | | #* При большом количестве устройств разделите их на несколько портов. При прочих равных скорость вырастет кратно количеству портов. |
|
| |
|
| Рекомендуем использовать [http://www.chipdip.ru/catalog-show/tips/ штыревые наконечники под обжимку]. Это позволяет легко подключать-отключать устройства без потери работоспособности остальных устройств на шине.
| | Также полезно использовать свежие версии прошивок, поддерживающие [[Fast Modbus | Быстрый Modbus]]⚡. В расширении некоторые Modbus-регистры поддерживают события, которые опрашиваются широковещательными командами без очереди. Это позволяет значительно сократить время опроса изменений в регистрах. |
|
| |
|
| Провод A на всех устройствах подключается к клеммнику с маркировкой А, провод B - всегда к B. На Wiren Board 4 рядом с клеммниками А и В
| | == Работа с портом RS-485 контроллера из собственного ПО == <!--T:11--> |
| расположены клеммники GND и Vout - можно сразу подключить шины питания (сначала проверьте требования к питанию ваших устройств!).
| |
|
| |
|
| Лайфхак: так как внутри Wiren Board стоит растяжка линий, после подключения его к шине напряжение на линии A будет больше чем на B примерно на 0.5 В. Поэтому подключая периферийные устройства вы легко можете определить линии шины вольтметром.
| | <!--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. |
| #Дифференциальная линия дает хорошую помехозащищенность. Длина линии до 1200 метров.
| | *[[Special:MyLanguage/Работа с последовательным портом из Linux|Работа с последовательным портом из Linux]] |
| #При прокладке шины нужно соблюдать [http://www.gaw.ru/html.cgi/txt/interface/rs485/app.htm определённые правила], но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления.
| | *[[Special:MyLanguage/Доступ к порту RS-485 контроллера Wiren Board с компьютера|Доступ к порту RS-485 контроллера Wiren Board с компьютера]] |
| </div>
| | *[[Special:MyLanguage/UART_Communication_Settings|Настройка параметров обмена данными по RS-485 для modbus-устройств Wiren Board]] |
| </div>
| | </translate> |
| | |
| ==Как настроить контроллер для работы с подключенными устройствами==
| |
| ===Программное конфигурирование устройств ===
| |
| Чтобы подключённая по RS-485 периферия появилась в веб-интерфейсе контроллера, надо отредактировать конфигурационный файл <code>/etc/wb-homa-modbus.conf</code>, находящийся на контроллере. Для этого смотрите инструкцию [[Драйвер wb-homa-modbus#Конфигурационный файл]].
| |
| | |
| === Низкоуровневая работа с портом RS-485 в Wiren Board ===
| |
| Если вы хотите работать с портом RS-485 самостоятельно, не используя [[Драйвер wb-homa-modbus]], то сначала проверьте, что в файле <code>/etc/wb-homa-modbus.conf</code> нет конфигурации для этого порта - иначе стандартный драйвер будет писать в этот порт. Также ознакомьтесь с инструкцией [[Работа с последовательным портом из Linux]]. Также смотрите [[Доступ к RS-485 портам с PC]] | |
| | |
| == Реализация портов в разных версиях Wiren Board ==
| |
| | |
| === Wiren Board 5 ===
| |
| Порты определяются в системе как:
| |
| * ''/dev/ttyAPP1'' - неизолированный порт на клемниках A и B (подпись "RS-485").
| |
| * ''/dev/ttyAPP4'' - неизолированный порт на клемниках L и H (подпись "CAN", мультиплексирован с CAN).
| |
| На линиях установлены терминаторы.
| |
| | |
| === Wiren Board 4 ===
| |
| Порты определяются в системе как:
| |
| * ''/dev/ttyNSC0 ''- изолированный (RS-485-ISO),
| |
| * ''/dev/ttyNSC1'' - неизолированный порт.
| |
| | |
| === [[Wiren Board NETMON-1]] ===
| |
| Контроллер имеет два полудуплексных порта. Трансиверы подключен к чипу [[SC16IS752]].
| |
| | |
| Порты определяются в системе как:
| |
| * ''/dev/ttyNSC0'' - разъём и8
| |
| * ''/dev/ttyNSC1'' - разъём и6
| |
| | |
| === 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]]. Соответствующий последовательный порт определяется системой как ''/dev/ttyNSC0''. См. [[SC16IS752#UART0]]
| |