Доступ к порту RS-485 контроллера Wiren Board с компьютера/en: различия между версиями

Материал из Wiren Board
(Новая страница: «Let's say the Wiren Board has 192.168.3.12 IP address.»)
(Новая страница: «Run this commands on Wiren Board from root access: <pre> apt-get install socat service wb-mqtt-serial stop </pre> In older versions of controllers, use the ''…»)
Строка 4: Строка 4:
Let's say the Wiren Board has 192.168.3.12 IP address.
Let's say the Wiren Board has 192.168.3.12 IP address.


Выполняем на Wiren Board от root:
Run this commands on Wiren Board from root access:
<pre>
<pre>
apt-get install socat
apt-get install socat
service wb-mqtt-serial stop     
service wb-mqtt-serial stop     
</pre>
</pre>
В старых версиях контроллеров используйте команду serive wb-homa-modbus stop.
In older versions of controllers, use the '''serive wb-homa-modbus stop''' command.
<pre>
<pre>
socat -d -d -d -x /dev/ttyRS485-1,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8 TCP-LISTEN:10010&
socat -d -d -d -x /dev/ttyRS485-1,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8 TCP-LISTEN:10010&

Версия 20:34, 30 мая 2019

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

Attention! These instructions should only be performed on a private subnet. Do not allow RS-485 ports to be accessed over TCP if the Wiren Board is accessible over a real IP from the outside.

Let's say the Wiren Board has 192.168.3.12 IP address.

Run this commands on Wiren Board from root access:

apt-get install socat
service wb-mqtt-serial stop    

In older versions of controllers, use the serive wb-homa-modbus stop command.

socat -d -d -d -x /dev/ttyRS485-1,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8 TCP-LISTEN:10010&
socat -d -d -d -x /dev/ttyRS485-2,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8 TCP-LISTEN:10011&

В старых версиях контроллеров указывайте порты [/dev/ttyNSC0, /dev/ttyNSC1] или [/dev/ttyAPP1, /dev/ttyAPP4].


Обратите внимание на кодирование количества стоп-битов:

  • cstopb=1 — 2 стоп-бита,
  • cstopb=0 — 1 стоп-бит.

Параметр cstopb имеет булевский тип; подробнее смотрите в интернете man socat.


Вторая команда (service wb-mqtt-serial stop) — остановка драйвера Modbus во избежание конфликтов при работе с RS-485 портами.

Выполняем на компьютере (под Linux):

socat -d -d -d -x PTY,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8,link=/dev/ttyRS485-1 tcp:192.168.3.12:10010&
socat -d -d -d -x PTY,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8,link=/dev/ttyRS485-2 tcp:192.168.3.12:10011&
sudo ln -fs /tmp/ttyRS485-{1,2} /dev

В старых версиях контроллеров указывайте порты [/dev/ttyNSC0, /dev/ttyNSC1] или [/dev/ttyAPP1, /dev/ttyAPP4].

После выполнения этих команд в системе (на PC) появляются специальные файлы /dev/ttyRS485-1 и /dev/ttyRS485-2, соответствующие RS-485 портам Wiren Board. Последняя команда для удобства создаёт в /dev символические ссылки на файлы портов, что позволяет, например, использовать на PC конфигурацию драйвера Modbus, написанную для Wiren Board, без каких-либо изменений.

Опции -d и -x в обоих случаях можно опустить - они нужны для вывода диагностики и шестнадцатеричных дампов передаваемых данных.