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

Материал из Wiren Board
(Новая страница: «'''Внимание!''' Данные инструкции следует выполнять только в закрытой подсети. Не следует …»)
 
(Отметить эту версию для перевода)
(не показано 10 промежуточных версий 3 участников)
Строка 1: Строка 1:
<languages/>
<translate>
<!--T:1-->
'''Внимание!''' Данные инструкции следует выполнять только
'''Внимание!''' Данные инструкции следует выполнять только
в закрытой подсети. Не следует давать доступ к RS-485 портам
в закрытой подсети. Не следует давать доступ к RS-485 портам
по TCP, если Wiren Board доступен по реальному IP снаружи.
по TCP, если Wiren Board доступен по реальному IP снаружи.


<!--T:2-->
Допустим, Wiren Board имеет IP 192.168.3.12.
Допустим, Wiren Board имеет IP 192.168.3.12.


<!--T:3-->
Выполняем на Wiren Board от root'а:
Выполняем на Wiren Board от root'а:
<pre>
<pre>
apt-get install socat
apt-get install socat
service wb-homa-modbus stop
service wb-mqtt-serial stop  
socat -d -d -d -x /dev/ttyNSC0,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8 TCP-LISTEN:10010&
socat -d -d -d -x /dev/ttyNSC1,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8 TCP-LISTEN:10011&
</pre>
</pre>
В старых версиях контроллеров используйте команду serive wb-homa-modbus stop.
<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-2,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8 TCP-LISTEN:10011&
</pre>
<!--T:4-->
В старых версиях контроллеров указывайте порты [/dev/ttyNSC0, /dev/ttyNSC1] или [/dev/ttyAPP1, /dev/ttyAPP4].


Вторая команда - остановка драйвера Modbus во избежание
конфликтов при работе с RS-485 портами.


<!--T:5-->
Обратите внимание на кодирование количества стоп-битов:
* cstopb=1 — 2 стоп-бита,
* cstopb=0 — 1 стоп-бит.
Параметр cstopb имеет булевский тип; подробнее смотрите в интернете '''man socat'''.
<!--T:6-->
Вторая команда (service wb-mqtt-serial stop) — остановка драйвера Modbus во избежание конфликтов при работе с RS-485 портами.
<!--T:7-->
Выполняем на компьютере (под Linux):
Выполняем на компьютере (под Linux):
<pre>
<pre>
socat -d -d -d -x PTY,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8,link=/tmp/ttyNSC0 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-1 tcp:192.168.3.12:10010&
socat -d -d -d -x PTY,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=1,cs8,link=/tmp/ttyNSC1 tcp:192.168.3.12:10011&
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/ttyNSC{0,1} /dev
sudo ln -fs /tmp/ttyRS485-{1,2} /dev
</pre>
</pre>


<!--T:8-->
В старых версиях контроллеров указывайте порты [/dev/ttyNSC0, /dev/ttyNSC1] или [/dev/ttyAPP1, /dev/ttyAPP4].
<!--T:9-->
После выполнения этих команд в системе (на PC) появляются
После выполнения этих команд в системе (на PC) появляются
специальные файлы /tmp/ttyNSC0 и /tmp/ttyNSC1, соответствующие
специальные файлы /dev/ttyRS485-1 и /dev/ttyRS485-2, соответствующие
RS-485 портам Wiren Board. Последняя команда для удобства создаёт
RS-485 портам Wiren Board. Последняя команда для удобства создаёт
в /dev символические ссылки на файлы портов, что позволяет,
в /dev символические ссылки на файлы портов, что позволяет,
Строка 30: Строка 54:
написанную для Wiren Board, без каких-либо изменений.  
написанную для Wiren Board, без каких-либо изменений.  


<!--T:10-->
Опции -d и -x в обоих случаях можно опустить - они нужны для
Опции -d и -x в обоих случаях можно опустить - они нужны для
вывода диагностики и шестнадцатеричных дампов передаваемых данных.
вывода диагностики и шестнадцатеричных дампов передаваемых данных.
</translate>

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

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

Внимание! Данные инструкции следует выполнять только в закрытой подсети. Не следует давать доступ к RS-485 портам по TCP, если Wiren Board доступен по реальному IP снаружи.

Допустим, Wiren Board имеет IP 192.168.3.12.

Выполняем на Wiren Board от root'а:

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

В старых версиях контроллеров используйте команду serive wb-homa-modbus stop.

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 в обоих случаях можно опустить - они нужны для вывода диагностики и шестнадцатеричных дампов передаваемых данных.