Бага! modbus/tcp modbus_client

Yessup.
Смотрим.

так, я 2.2.1 в experimental вижу - не там смотрю?

apt update && apt policy wb-mqtt-serial        
wb-mqtt-serial:
  Installed: 2.2.2
  Candidate: 2.3.0
  Version table:
     2.3.0 910
        910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
 *** 2.2.2 100
        100 /var/lib/dpkg/status
     2.2.1 920
        920 http://releases.contactless.ru/unstable/stretch stretch/main armhf Packages
     2.2.0 920

Странно…

apt-cache policy wb-mqtt-serial

wb-mqtt-serial:
Installed: 2.2.1
Candidate: 2.2.1
Version table:
2.3.0 910
910 http://releases.contactless.ru/experimental/stretch stretch/main armhf Packages
*** 2.2.1 920
920 http://releases.contactless.ru/unstable/stretch stretch/main armhf Packages

при этом

cat 10wb-experimental

Package: *
Pin: release o=wirenboard, l=experimental*
Pin-Priority: 910

Ща пофиксим.

Так.
Я правильно понимаю, что описание в виде стандартной рыбы (template) пока не парсится?

wb-mqtt-serial -d1 -c ./wb-mqtt-serial.conf

ERROR: [serial] Validation failed.
Error 1
context: [device][channels][0]
desc: Object contains a property that could not be validated using ‘properties’ or ‘additionalProperties’ constraints: ‘channel_readonly’.
Error 2
context: [device][channels][0]
desc: Failed to validate against child schema #0.
Error 3
context: [device][channels][0]
desc: Object contains a property that could not be validated using ‘properties’ or ‘additionalProperties’ constraints: ‘address’.
Error 4
context: [device][channels][0]
desc: Failed to validate against child schema #1.
Error 5
context: [device][channels][0]
desc: Failed to validate against any child schemas allowed by oneOf constraint.
Error 6
context: [device][channels]
desc: Failed to validate item #0 in array.
Error 7
context: [device][channels][1]
desc: Object contains a property that could not be validated using ‘properties’ or ‘additionalProperties’ constraints: ‘channel_readonly’.
Error 8
context: [device][channels][1]
desc: Failed to validate against child schema #0.
Error 9
context: [device][channels][1]
desc: Object contains a property that could not be validated using ‘properties’ or ‘additionalProperties’ constraints: ‘address’.
Error 10
context: [device][channels][1]
desc: Failed to validate against child schema #1.
Error 11
context: [device][channels][1]
desc: Failed to validate against any child schemas allowed by oneOf constraint.
Error 12
context: [device][channels]
desc: Failed to validate item #1 in array.
Error 13
context: [device]
desc: Failed to validate against schema associated with property name ‘channels’.
Error 14
context:
desc: Failed to validate against schema associated with property name ‘device’.

Вы лучше пишите прямо в тему Поддержка MODBUS TCP в wb-mqtt-serial - там отвечает сразу разработчик.

Благодарю.

Пришлите, пожалуйста, wb-mqtt-serial.conf, который вызвал эту ошибку. Тут парсер ругается на неизвестный параметр ‘channel_readonly’ и неверный формат параметра ‘address’.

Добрый день, я уже переделал, не включением template в конфиг, а внесением напрямую заработало:

    {
        "address": "10.112.31.11",
        "port": 502,
        "port_type": "modbus tcp",
        "devices": [
            {
                "slave_id": 502,
                "name": "burgess",
                "enabled": true,
                "poll_interval": 512,
                "id": "saia2",
                "channels": [
                    {
                        "name": "UFO1STAT",
                        "reg_type": "discrete",
                        "address": "14"
                    },
                    {
                        "name": "UFO2STAT",
                        "reg_type": "discrete",
                        "address": "13"
                    }
                ],
                "guard_interval_us": 2000,
                "device_timeout_ms": 500
            }
        ],
        "poll_interval": 1000,
        "enabled": true,
        "type": null,
        "response_timeout_ms": 500
    }

Всё таки интересно посмотреть на конфиг, который не заработал, чтобы мы починили его разбор.

А так и не решился вопрос, кстати… Сейчас возюкаюсь с другим дивайсом, фаберже идентичные…

А версия wb-mqtt-serial какая? сейчас кардиналтно переработана.

Да с ним-то норм, работает. Надо таймауты овна отдебажить, а _client по-прежнему не фунциклирует с tcp.

С modbus TCP - работает, и работал.

modbus_client --debug -mtcp -p 550 127.0.0.1 -a11 -t0x03 -r128 -c1
0x007f Connecting to 0.0.0.0
[00][01][00][00][00][06][0B][03][00][80][00][01]
Waiting for a confirmation...
<00><01><00><00><00><05><0B><03><02><00><0B>
SUCCESS: read 1 of elements:
	Data: 0x000b 

Вот в Modbus over TCP - нет. Но тут проще “порт” создать с помощью soсat так:
https://wirenboard.com/wiki/Доступ_к_порту_RS-485_контроллера_Wiren_Board_с_компьютера

У меня не работает и никогда не работал. Версия 1.4 емнип. Вывод - как в первом посте, не может найти 0.0.0.0…
Попробуйте НЕ локалхост.

modbus_client --debug -mtcp -p 502 192.168.1.93 -a11 -t0x03 -r128 -c1
Connecting to 192.168.1.93
[00][01][00][00][00][06][0B][03][00][80][00][01]
Waiting for a confirmation...
<00><01><00><00><00><05><0B><03><02><00><0B>
SUCCESS: read 1 of elements:
	Data: 0x000b 

То же устройство, только напрямую.

На wb-mqtt-serial 1.57.0 еще настраивал Modbus TCP. Все работало. Не могу сказать, что всегда были корректные значения, но скорее всего виноват мост USR-W600.
Так же использовал socat c modbus_client. Вроде проблем небыло.

1 лайк

0x000a Connecting to 0.0.0.0 Connection failed: Connection refused

что бы я ни делал. Фильтра нет, отвечающее устройство в локалке. Через wb-mqtt-serial работает без проблем. Шайтан?

А что за устройство?

Wb6.2 с одной стороны, апдейт до последних версий всего сразу из коробки. С другого конца - на одном узле saia burgess (см. начало топика), на другом вот овён 160й. Оба отлично дуплят по wb-mqtt-serial, на обоих утилитка modbus_client не работает с tcp вообще.