Доступ к порту RS-485 контроллера Wiren Board с компьютера: различия между версиями
(Содержимое страницы заменено на «#REDIRECT Socat») Метка: замена |
Kilpio (обсуждение | вклад) |
||
(не показано 8 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
'''Внимание!''' Данные инструкции следует выполнять только | |||
в закрытой подсети. Не следует давать доступ к RS-485 портам | |||
по TCP, если Wiren Board доступен по реальному IP снаружи. | |||
Допустим, Wiren Board имеет IP 192.168.3.12. | |||
Выполняем на Wiren Board от root'а: | |||
<pre> | |||
apt-get install socat | |||
service wb-mqtt-serial stop | |||
(в старых версиях контроллеров serive wb-homa-modbus 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> | |||
Обратите внимание на кодирование количества стоп-битов: | |||
* cstopb=1 — 2 стоп-бита, | |||
* cstopb=0 — 1 стоп-бит. | |||
Параметр cstopb имеет булевский тип; подробнее смотрите в интернете '''man socat'''. | |||
Вторая команда - остановка драйвера Modbus во избежание | |||
конфликтов при работе с RS-485 портами. | |||
Выполняем на компьютере (под Linux): | |||
<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=/tmp/ttyNSC1 tcp:192.168.3.12:10011& | |||
sudo ln -fs /tmp/ttyNSC{0,1} /dev | |||
</pre> | |||
После выполнения этих команд в системе (на PC) появляются | |||
специальные файлы /tmp/ttyNSC0 и /tmp/ttyNSC1, соответствующие | |||
RS-485 портам Wiren Board. Последняя команда для удобства создаёт | |||
в /dev символические ссылки на файлы портов, что позволяет, | |||
например, использовать на PC конфигурацию драйвера Modbus, | |||
написанную для Wiren Board, без каких-либо изменений. | |||
Опции -d и -x в обоих случаях можно опустить - они нужны для | |||
вывода диагностики и шестнадцатеричных дампов передаваемых данных. |
Версия 15:55, 31 мая 2018
Внимание! Данные инструкции следует выполнять только в закрытой подсети. Не следует давать доступ к 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/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&
Обратите внимание на кодирование количества стоп-битов:
- cstopb=1 — 2 стоп-бита,
- cstopb=0 — 1 стоп-бит.
Параметр cstopb имеет булевский тип; подробнее смотрите в интернете man socat.
Вторая команда - остановка драйвера Modbus во избежание
конфликтов при работе с RS-485 портами.
Выполняем на компьютере (под Linux):
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=/tmp/ttyNSC1 tcp:192.168.3.12:10011& sudo ln -fs /tmp/ttyNSC{0,1} /dev
После выполнения этих команд в системе (на PC) появляются специальные файлы /tmp/ttyNSC0 и /tmp/ttyNSC1, соответствующие RS-485 портам Wiren Board. Последняя команда для удобства создаёт в /dev символические ссылки на файлы портов, что позволяет, например, использовать на PC конфигурацию драйвера Modbus, написанную для Wiren Board, без каких-либо изменений.
Опции -d и -x в обоих случаях можно опустить - они нужны для вывода диагностики и шестнадцатеричных дампов передаваемых данных.