Доступ к порту RS-485 контроллера Wiren Board с компьютера: различия между версиями
Kilpio (обсуждение | вклад) |
Matveevrj (обсуждение | вклад) (Перенаправление на Socat) Метка: новое перенаправление |
||
(не показано 9 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
#REDIRECT [[Socat]] | |||
<languages/> | |||
<translate> | |||
<!--T:1--> | |||
socat — утилита, которая может переадресовывать сокеты с хостовой машины, на клиентскую. Будет работать только с протоколом ''Modbus over TCP''. | |||
'''Внимание!''' Данные инструкции следует выполнять только | '''Внимание!''' Данные инструкции следует выполнять только | ||
в закрытой подсети. Не следует давать доступ к 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- | service wb-mqtt-serial stop | ||
socat -d -d -d -x /dev/ | </pre> | ||
socat -d -d -d -x /dev/ | |||
<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> | </pre> | ||
<!--T:4--> | |||
В старых версиях контроллеров указывайте порты [/dev/ttyNSC0, /dev/ttyNSC1] или [/dev/ttyAPP1, /dev/ttyAPP4]. | |||
<!--T:5--> | |||
Обратите внимание на кодирование количества стоп-битов: | Обратите внимание на кодирование количества стоп-битов: | ||
* cstopb=1 — 2 стоп-бита, | * cstopb=1 — 2 стоп-бита, | ||
* cstopb=0 — 1 стоп-бит. | * cstopb=0 — 1 стоп-бит. | ||
Параметр cstopb имеет булевский тип | Параметр cstopb имеет булевский тип; подробнее смотрите в интернете '''man socat'''. | ||
Вторая команда - остановка драйвера Modbus во избежание | <!--T:6--> | ||
конфликтов при работе с RS-485 портами. | Вторая команда (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=/ | 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=/ | 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/ | sudo ln -fs /tmp/ttyRS485-{1,2} /dev | ||
</pre> | </pre> | ||
<!--T:8--> | |||
В старых версиях контроллеров указывайте порты [/dev/ttyNSC0, /dev/ttyNSC1] или [/dev/ttyAPP1, /dev/ttyAPP4]. | |||
<!--T:9--> | |||
После выполнения этих команд в системе (на PC) появляются | После выполнения этих команд в системе (на PC) появляются | ||
специальные файлы / | специальные файлы /dev/ttyRS485-1 и /dev/ttyRS485-2, соответствующие | ||
RS-485 портам Wiren Board. Последняя команда для удобства создаёт | RS-485 портам Wiren Board. Последняя команда для удобства создаёт | ||
в /dev символические ссылки на файлы портов, что позволяет, | в /dev символические ссылки на файлы портов, что позволяет, | ||
Строка 36: | Строка 57: | ||
написанную для Wiren Board, без каких-либо изменений. | написанную для Wiren Board, без каких-либо изменений. | ||
<!--T:10--> | |||
Опции -d и -x в обоих случаях можно опустить - они нужны для | Опции -d и -x в обоих случаях можно опустить - они нужны для | ||
вывода диагностики и шестнадцатеричных дампов передаваемых данных. | вывода диагностики и шестнадцатеричных дампов передаваемых данных. | ||
</translate> |
Версия 10:41, 12 мая 2023
Перенаправление на:
socat — утилита, которая может переадресовывать сокеты с хостовой машины, на клиентскую. Будет работать только с протоколом Modbus over TCP.
Внимание! Данные инструкции следует выполнять только в закрытой подсети. Не следует давать доступ к 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
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 в обоих случаях можно опустить - они нужны для вывода диагностики и шестнадцатеричных дампов передаваемых данных.