RS-485: различия между версиями
Admin (обсуждение | вклад) |
|||
(не показано 96 промежуточных версий 10 участников) | |||
Строка 1: | Строка 1: | ||
'''RS-485''' - стандарт коммуникации по двухпроводной шине. К порту RS-485 контроллера [[Wiren Board]] можно подключать периферийные устройства. | |||
== Какие устройства можно подключать к Wiren Board по RS-485 == | |||
К контроллеру можно подключать [[Периферийные устройства с интерфейсом Modbus серии WB-xxxx | устройства с интерфейсом Modbus нашего производства]], счётчики Меркурий и Милур, а также некоторые другие устройства, в том числе работающие по протоколу Modbus. | |||
== | |||
[[ | |||
Полный список протестированных устройств: [[Поддерживаемые устройства#Подключаемые по RS-485]]. | |||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
== Как физически подключить устройства == | |||
<div class="mw-collapsible-content"> | |||
=== Прокладка шины === | |||
Все устройства RS-485 устанавливаются на одну шину. Хотя шина работает по двум проводам, удобно прокладывать четырёхжильным кабелем - дифпара для данных (сигналы А и В) и ещё пара проводов (GND и +12V) для питания периферийных устройств на шине. Можно использовать обычную витую пару CAT5 для Ethernet - тогда одна пара используется для данных, ещё две — для питания (так как по питанию идёт значительный ток, лучше и для 12В, и для земли использовать по отдельной паре), одна пара остаётся свободной. | |||
'''Важно:''' при подключении внешних устройств к Wiren Board по шине RS-485, нужно соединять не только линии передачи данных A и B, но и '''земли''' (общий провод) контроллера Wiren Board и внешних устройств. Подключение общего провода необходимо в случае подключения к неизолированному порту RS-485 и рекомендуется в случае подключения к гальванически изолированному порту. | |||
Клемма общего провода обозначается, в зависимости от оборудования, как SC, SG, G, GND, ground или reference. На контроллерах Wiren Board эта клемма обозначена как GND. При подключении к изолированному порту, нужно подключаться к изолированной земле данного порта (клеммы "GND iso"). | |||
При большой длине шины, в конце шины нужно установить терминальный резистор (примерно 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 Википедии]). | |||
=== Подключение устройств === | |||
[[ | {|align="right" | ||
[[RS-485 | |-valign="top" | ||
|[[Файл:Подлючение RS-485.jpeg|thumb|200px|Наконечники для шины]] | |||
|[[Файл:Подлючение RS-485 к WB.jpeg|thumb|300px|Подключение шины RS-485 к Wiren Board 4 (в центре)]] | |||
|} | |||
Так как соединение осуществляется общей шиной, следует обратить внимание на качественное соединение всех узлов линии: | |||
*при обрыве линии устройства за обрывом не будут работать | |||
*при коротком замыкании не будут работать все устройства. | |||
Рекомендуем использовать [http://www.chipdip.ru/catalog-show/tips/ штыревые наконечники под обжимку]. Это позволяет легко подключать-отключать устройства без потери работоспособности остальных устройств на шине. | |||
Провод A на всех устройствах подключается к клеммнику с маркировкой А, провод B - всегда к B. На Wiren Board 4 рядом с клеммниками А и В | |||
расположены клеммники GND и Vout - можно сразу подключить шины питания (сначала проверьте требования к питанию ваших устройств!). | |||
Лайфхак: так как внутри Wiren Board стоит растяжка линий, после подключения его к шине напряжение на линии A будет больше чем на B примерно на 0.5 В. Поэтому подключая периферийные устройства вы легко можете определить линии шины вольтметром. | |||
== | === Дополнительная информация === | ||
#Дифференциальная линия дает хорошую помехозащищенность. Длина линии до 1200 метров. | |||
#При прокладке шины нужно соблюдать [http://www.gaw.ru/html.cgi/txt/interface/rs485/app.htm определённые правила], но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления. | |||
</div> | |||
</div> | |||
==Как настроить контроллер для работы с подключенными устройствами== | |||
Настройка совместимых с контроллером устройств происходит через [[Веб-интерфейс Wiren Board|веб-интерфейс]]. | |||
#Зайдите на страницу ''Configs'', щёлкните по пункту ''/etc/wb-mqtt-serial.conf'' (''serial'' - название последовательных портов, RS-485 относится к ним). [[File:rs-485-setup-configs.png|thumb|center|400 px]] | |||
#Откроется страница настройки последовательных портов. В левой части выберите порт, к которому вы подключили устройство. Порты названы по терминологии Linux - ''/dev/ttyXXXN''; чтобы понять, как называется используемый вами, смотрите [[#Реализация портов в разных версиях Wiren Board]]. [[File:rs-485-setup-select-port.png|center|400 px|На скриншоте выбран порт Wiren Board 5, подписанный на корпусе как ''RS-485'']] | |||
#Установите настройки порта: скорость (бит/с), количество бит в пакете, есть ли бит чётности, количество стоп-битов - эта информация указана в документации к периферийному оборудованию. Затем обязательно поставьте галочку ''Enable port'' - ''Включить порт'' (с помощью этой настройки порт можно отключить, если какое-нибудь оборудование на нём начнёт сбоить).<br>'''N.B.''' Если вы подключаете несколько устройств к одному порту контроллера, эти настройки у них должны совпадать. [[File:rs-485-setup-port-settings.png|thumb|center|400 px|Установлены настройки для релейного [[WB-MRM2]]]] | |||
*[[ | #Перейдите к разделу ''List of devices'' - ''Список устройств'' ниже. Нажмите кнопку ''+ Serial Device'', чтобы добавить устройство. Выберите тип устройства (обычно соответствует модели устройства) и укажите его адрес (обычно указывается документации к устройству, для устройств нашего производства указан на корпусе). Адрес устройства указывается либо в шестнадцатеричном виде (начинается с ''0x..''), либо в десятичном (как обычное число). Затем обязательно нажмите синюю кнопку ''Save'' - ''Сохранить'' вверху страницы. [[File:rs-485-setup-device-settings.png|thumb|center|400 px|Выбран тип устройства [[WB-MRM2]] и установлен десятичный адрес ''130'']] | ||
#Чтобы проверить работу устройства, перейдите на страницу ''Devices''. На ней должен появиться блок, соответствующий подключённому устройству. В нашем примере, появился блок ''WB-MRM2 130'' (шаблон названия - ''ТИП_УСТРОЙСТВА АДРЕС'') с двумя кнопками для управления реле, двумя индикаторами входов для кнопок и счётчиками нажатий. Можно нажать на кнопку - реле на подключённом устройстве переключится. [[File:rs-485-setup-device-connected.png|thumb|center|400 px|Отображение подключённого устройства [[WB-MRM2]] с адресом ''130'' на странице ''Devices''. Можно нажимать кнопки и управлять реле на устройстве]] | |||
#Чтобы добавить кнопку управления на главную страницу ''Home'' и назвать её соответственно назначению (например, ''Свет в коридоре''), нужно создать виджет (''Widget''). Для этого нужно перейти на страницу ''Widgets'' и нажать зелёную кнопку ''Add widget''. Затем нужно ввести параметры виджета: имя (так он называться в интерфейсе), комнату (группу, к которой привязан виджет; используется для упорядочивания, когда виджетов много - если мало, можно выбрать любую), и тип виджета - в нашем случае реле управляет освещением, поэтому выбираем ''Light Control Relay''. После этого появляется ещё одна опция - нужно выбрать, какому именно устройству соответствует виджет. Все доступные устройства выбранного типа показываются в списке, их имена даны в соответствии с терминологией [[MQTT]]. В завершении нажимаем кнопку ''Submit'' - новый виджет появится на странице ''Widgets''. [[File:rs-485-setup-add-widget.png|thumb|center|400 px|Создание виджета для управления светом на основе Реле 1 подключённого устройства [[WB-MRM2]]]] | |||
=== Низкоуровневая работа с портом RS-485 в Wiren Board === | |||
Для этого смотрите инструкцию [[Драйвер wb-homa-modbus#Конфигурационный файл]]. | |||
Если вы хотите работать с портом RS-485 самостоятельно, не используя [[Драйвер wb-homa-modbus]], то сначала проверьте, что в файле <code>/etc/wb-homa-modbus.conf</code> нет конфигурации для этого порта - иначе стандартный драйвер будет писать в этот порт. Также ознакомьтесь с инструкцией [[Работа с последовательным портом из Linux]]. Также смотрите [[Доступ к RS-485 портам с PC]] | |||
== Реализация портов в разных версиях Wiren Board == | |||
{| class="wikitable" | |||
|'''Модель контроллера''' | |||
|'''Название порта в Linux''' | |||
|'''Разъём на контроллере''' | |||
|'''Примечание''' | |||
|- | |||
|rowspan="2"|[[Wiren Board 5]] | |||
|''/dev/ttyAPP1'' | |||
|Подпись ''RS-485'', клеммники A и B | |||
|Неизолированный порт, установлен терминатор | |||
|- | |||
|''/dev/ttyAPP4'' | |||
|Подпись ''CAN'' (так как этот же порт может использоваться как CAN) | |||
|Неизолированный порт, установлен терминатор, мультиплексирован с CAN | |||
|- | |||
|rowspan="2"|[[Wiren Board 4]] | |||
|''/dev/ttyNSC0'' | |||
|Подпись ''RS-485-ISO'' | |||
|Изолированный порт, установлен терминатор | |||
|- | |||
|''/dev/ttyNSC1'' | |||
|Подпись ''CAN'' (так как этот же порт может использоваться как CAN) | |||
|Неизолированный порт, установлен терминатор, мультиплексирован с CAN | |||
|} | |||
=== 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]] |
Версия 16:53, 11 февраля 2016
RS-485 - стандарт коммуникации по двухпроводной шине. К порту RS-485 контроллера Wiren Board можно подключать периферийные устройства.
Какие устройства можно подключать к Wiren Board по RS-485
К контроллеру можно подключать устройства с интерфейсом Modbus нашего производства, счётчики Меркурий и Милур, а также некоторые другие устройства, в том числе работающие по протоколу Modbus.
Полный список протестированных устройств: Поддерживаемые устройства#Подключаемые по RS-485.
Как физически подключить устройства
Прокладка шины
Все устройства RS-485 устанавливаются на одну шину. Хотя шина работает по двум проводам, удобно прокладывать четырёхжильным кабелем - дифпара для данных (сигналы А и В) и ещё пара проводов (GND и +12V) для питания периферийных устройств на шине. Можно использовать обычную витую пару CAT5 для Ethernet - тогда одна пара используется для данных, ещё две — для питания (так как по питанию идёт значительный ток, лучше и для 12В, и для земли использовать по отдельной паре), одна пара остаётся свободной.
Важно: при подключении внешних устройств к Wiren Board по шине RS-485, нужно соединять не только линии передачи данных A и B, но и земли (общий провод) контроллера Wiren Board и внешних устройств. Подключение общего провода необходимо в случае подключения к неизолированному порту RS-485 и рекомендуется в случае подключения к гальванически изолированному порту. Клемма общего провода обозначается, в зависимости от оборудования, как SC, SG, G, GND, ground или reference. На контроллерах Wiren Board эта клемма обозначена как GND. При подключении к изолированному порту, нужно подключаться к изолированной земле данного порта (клеммы "GND iso").
При большой длине шины, в конце шины нужно установить терминальный резистор (примерно 150 Ом, подробнее в Википедии).
Подключение устройств
Так как соединение осуществляется общей шиной, следует обратить внимание на качественное соединение всех узлов линии:
- при обрыве линии устройства за обрывом не будут работать
- при коротком замыкании не будут работать все устройства.
Рекомендуем использовать штыревые наконечники под обжимку. Это позволяет легко подключать-отключать устройства без потери работоспособности остальных устройств на шине.
Провод A на всех устройствах подключается к клеммнику с маркировкой А, провод B - всегда к B. На Wiren Board 4 рядом с клеммниками А и В расположены клеммники GND и Vout - можно сразу подключить шины питания (сначала проверьте требования к питанию ваших устройств!).
Лайфхак: так как внутри Wiren Board стоит растяжка линий, после подключения его к шине напряжение на линии A будет больше чем на B примерно на 0.5 В. Поэтому подключая периферийные устройства вы легко можете определить линии шины вольтметром.
Дополнительная информация
- Дифференциальная линия дает хорошую помехозащищенность. Длина линии до 1200 метров.
- При прокладке шины нужно соблюдать определённые правила, но для передачи в одной квартире подойдёт любой кабель и даже возможны ответвления.
Как настроить контроллер для работы с подключенными устройствами
Настройка совместимых с контроллером устройств происходит через веб-интерфейс.
- Зайдите на страницу Configs, щёлкните по пункту /etc/wb-mqtt-serial.conf (serial - название последовательных портов, RS-485 относится к ним).
- Откроется страница настройки последовательных портов. В левой части выберите порт, к которому вы подключили устройство. Порты названы по терминологии Linux - /dev/ttyXXXN; чтобы понять, как называется используемый вами, смотрите #Реализация портов в разных версиях Wiren Board.
- Установите настройки порта: скорость (бит/с), количество бит в пакете, есть ли бит чётности, количество стоп-битов - эта информация указана в документации к периферийному оборудованию. Затем обязательно поставьте галочку Enable port - Включить порт (с помощью этой настройки порт можно отключить, если какое-нибудь оборудование на нём начнёт сбоить).
N.B. Если вы подключаете несколько устройств к одному порту контроллера, эти настройки у них должны совпадать. - Перейдите к разделу List of devices - Список устройств ниже. Нажмите кнопку + Serial Device, чтобы добавить устройство. Выберите тип устройства (обычно соответствует модели устройства) и укажите его адрес (обычно указывается документации к устройству, для устройств нашего производства указан на корпусе). Адрес устройства указывается либо в шестнадцатеричном виде (начинается с 0x..), либо в десятичном (как обычное число). Затем обязательно нажмите синюю кнопку Save - Сохранить вверху страницы.
- Чтобы проверить работу устройства, перейдите на страницу Devices. На ней должен появиться блок, соответствующий подключённому устройству. В нашем примере, появился блок WB-MRM2 130 (шаблон названия - ТИП_УСТРОЙСТВА АДРЕС) с двумя кнопками для управления реле, двумя индикаторами входов для кнопок и счётчиками нажатий. Можно нажать на кнопку - реле на подключённом устройстве переключится.
- Чтобы добавить кнопку управления на главную страницу Home и назвать её соответственно назначению (например, Свет в коридоре), нужно создать виджет (Widget). Для этого нужно перейти на страницу Widgets и нажать зелёную кнопку Add widget. Затем нужно ввести параметры виджета: имя (так он называться в интерфейсе), комнату (группу, к которой привязан виджет; используется для упорядочивания, когда виджетов много - если мало, можно выбрать любую), и тип виджета - в нашем случае реле управляет освещением, поэтому выбираем Light Control Relay. После этого появляется ещё одна опция - нужно выбрать, какому именно устройству соответствует виджет. Все доступные устройства выбранного типа показываются в списке, их имена даны в соответствии с терминологией MQTT. В завершении нажимаем кнопку Submit - новый виджет появится на странице Widgets.
Низкоуровневая работа с портом RS-485 в Wiren Board
Для этого смотрите инструкцию Драйвер wb-homa-modbus#Конфигурационный файл.
Если вы хотите работать с портом RS-485 самостоятельно, не используя Драйвер wb-homa-modbus, то сначала проверьте, что в файле /etc/wb-homa-modbus.conf
нет конфигурации для этого порта - иначе стандартный драйвер будет писать в этот порт. Также ознакомьтесь с инструкцией Работа с последовательным портом из Linux. Также смотрите Доступ к RS-485 портам с PC
Реализация портов в разных версиях Wiren Board
Модель контроллера | Название порта в Linux | Разъём на контроллере | Примечание |
Wiren Board 5 | /dev/ttyAPP1 | Подпись RS-485, клеммники A и B | Неизолированный порт, установлен терминатор |
/dev/ttyAPP4 | Подпись CAN (так как этот же порт может использоваться как CAN) | Неизолированный порт, установлен терминатор, мультиплексирован с CAN | |
Wiren Board 4 | /dev/ttyNSC0 | Подпись RS-485-ISO | Изолированный порт, установлен терминатор |
/dev/ttyNSC1 | Подпись CAN (так как этот же порт может использоваться как CAN) | Неизолированный порт, установлен терминатор, мультиплексирован с CAN |
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
Контроллер имеет два полудуплексных порта. Трансивер подключен к чипу 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