Доброго времени.
Есть WB-MGE v.2, но никак не могу его заставить работать с WB6 (wb-2207).
MGE пробовал с serial TCP/ModBUS TCP. Всегда одна и та же ошибка:
Oct 13 21:40:09 trailer-wb6 wb-mqtt-serial[28657]: WARNING: <192.168.88.27:20110>: closed due to repetetive errors
Oct 13 21:40:15 trailer-wb6 wb-mqtt-serial[28657]: WARNING: <192.168.88.27:20110>: closed due to repetetive errors
Oct 13 21:40:20 trailer-wb6 wb-mqtt-serial[28657]: WARNING: <192.168.88.27:20110>: closed due to repetetive errors
Oct 13 21:40:25 trailer-wb6 wb-mqtt-serial[28657]: WARNING: <192.168.88.27:20110>: closed due to repetetive errors
Oct 13 21:40:30 trailer-wb6 wb-mqtt-serial[28657]: WARNING: <192.168.88.27:20110>: closed due to repetetive errors
Oct 13 21:40:35 trailer-wb6 wb-mqtt-serial[28657]: WARNING: <192.168.88.27:20110>: closed due to repetetive errors
Oct 13 21:40:40 trailer-wb6 wb-mqtt-serial[28657]: WARNING: <192.168.88.27:20110>: closed due to repetetive errors
Oct 13 21:40:46 trailer-wb6 wb-mqtt-serial[28657]: WARNING: <192.168.88.27:20110>: closed due to repetetive errors
Устройство на RS485 не “читается”.
Включен в WB6 ethernet’ом. Потерь пакетов нет. Сторона RS485 по параметрам соответствует подключенным устройствам (разные пробовал) - в норме. 120 Ом включал, не решает вопрос.
“Прибив” wb-mqtt-serial, устройство (регистры) легко и без вопросов читается через socat/modbus_client . Включаю wb-mqtt-serial – “closed due to repetetive errors”.
На сколько я помню, этот MGE у меня был в качестве ЗИП. И никогда не использовался, на сколько я помню (с ноября 2021).
Как быть? Куда копать? Что делать?
Спасибо!
Добрый день. Как настроен wb-mqtt-serial и, соответственно, какие параметры используются для socat перенаправления?
Добрый!
socat -d -d -d -x PTY,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=2,cs8,link=/dev/ttyRS485-5 tcp:192.168.89.46:20110
{
"address" : "192.168.88.27",
"connection_max_fail_cycles" : 2,
"connection_timeout_ms" : 5000,
"devices" :
[
{
"device_type" : "WB-MSW2",
"slave_id" : "33"
}
],
"enabled" : true,
"port" : 20110,
"port_type" : "tcp",
"response_timeout_ms" : 500
}
Это я переносил из одной сети в другую:
192.168.88.0/24 - общая L2 с контроллером)
192.168.89… - через маршрутизацию. Но потерь пакетов так и так - нет; не в этом проблема, как выяснилось.
За MGE подключен только WB-MSW2?
Так, включите debug для порта и посмотрите в лог, все ли зопросы неудачны?
Подключал иные устройства. И вместо, и в месте.
Те не менее, если что-то работает modbus_client и не работает с wb-mqtt-serial - первый раз вижу.
В том-то и дело, что меня это тоже сильно смутило.
Похоже, разобрался, собрав в один файл все команды и параметры. У меня “пляшет” от конфы к конфе параметра стопового бита.
В MGE 9600N2.
В socat то cstopb=2, то cstopb=1 (пробовал варианты, видимо - смотрю в history).
В modbus_client -s1 всегда бил так.
На сайте -s2.
От того, при поиске устройств получал неправильные адреса (устройства не с живого объекта, а из загашника, наклейки с адресами невалидны):
for i in {1..247}; do echo -n "$i - "; D=`modbus_client -mrtu /dev/ttyRS485-5 --debug -b9600 -pnone -s**1** -a$i -t3 -o100 -r200 -c6 2>/dev/null | grep Data: | awk 'gsub("Data:","")' | sed -e 's/0x00/\\\x/g' -e 's/\s//g'`; echo -e $D; done
1 -
2 -
3 -
4 -
5 -
6 -
7 -
8 -
9 -
10 -
11 -
12 -
13 -
14 -
15 -
16 -
17 -
18 -
19 -
20 -
21 -
22 -
23 -
24 -
25 -
26 -
27 -
28 -
29 -
30 -
31 -
32 -
33 - WBMSW2
34 -
35 -
36 -
37 -
38 -
39 -
40 - ^C
Выполнил напрямую modbus_client с -a33, получив таймаут. Посмотрел (без debug я этого сообщения не видел
) в журнал “DEBUG: [modbus] failed to read 1 input(s) @ 121 of device modbus:33: Serial protocol error: request timed out”, осознал…
Что, что-то не так. Начал всматриваться, и…
echo -e modbus_client -mrtu /dev/ttyRS485-5 --debug -b9600 -pnone -s2 -a32 -t3 -o100 -r200 -c6 2>/dev/null | grep Data: | awk 'gsub("Data:","")' | sed -e 's/0x00/\\\x/g' -e 's/\s//g'
WBMSW2
Вот-таки пироги.
Спасибо за наводку. О-опыт.
Вот это да, хорошо что решилось!
Но я сам последнее время предпочитаю использовать шлюзы именно как Modbus TCP…