Я на ESP-01 делаю адаптер для своего сигнализатора загазованности (СЗ) в котельной. Я хотел бы из него (адаптера) по Modbus TCP (чтобы не нагромождать адаптер ещё одним модулем RS-485 (один уже используется для чтения статуса с СЗ), тянуть провода и т.п.) считывать статус клапана и пищалки как discrete input.
Прототип набросал на основе примера - и он успешно работает с modbus_client на десктопе:
$ modbus_client --debug -mtcp 192.168.0.145 -t1 -r123
Connecting to 192.168.0.145:502
[00][01][00][00][00][06][01][01][00][7B][00][01]
Waiting for a confirmation...
<00><01><00><00><00><04><01><01><01><40>
SUCCESS: read 1 of elements:
Data: 0x00
$ modbus_client --debug -mtcp 192.168.0.145 -t5 -r123 1
Data to write: 0x1
Connecting to 192.168.0.145:502
[00][01][00][00][00][06][01][05][00][7B][FF][00]
Waiting for a confirmation...
<00><01><00><00><00><06><01><05><00><7B><FF><00>
SUCCESS: written 1 elements!
$ modbus_client --debug -mtcp 192.168.0.145 -t1 -r123
Connecting to 192.168.0.145:502
[00][01][00][00][00][06][01][01][00][7B][00][01]
Waiting for a confirmation...
<00><01><00><00><00><04><01><01><01><03>
SUCCESS: read 1 of elements:
Data: 0x01
$ modbus_client --debug -mtcp 192.168.0.145 -t5 -r123 0
Data to write: 0x0
Connecting to 192.168.0.145:502
[00][01][00][00][00][06][01][05][00][7B][00][00]
Waiting for a confirmation...
<00><01><00><00><00><06><01><05><00><7B><00><00>
SUCCESS: written 1 elements!
$ modbus_client --debug -mtcp 192.168.0.145 -t1 -r123
Connecting to 192.168.0.145:502
[00][01][00][00][00][06][01][01][00][7B][00][01]
Waiting for a confirmation...
<00><01><00><00><00><04><01><01><01><10>
SUCCESS: read 1 of elements:
Data: 0x00
светодиод включается-выключается - всё ок.
ха! оказывается, но не на WB!
$ modbus_client --debug -mtcp 192.168.0.145 -t1 -r123
0xc0 Connecting to 0.0.0.0
[00][01][00][00][00][06][01][01][00][7B][00][01]
Waiting for a confirmation...
<00><01><00><00><00><03><01><81><02>
ERROR Illegal data address
ERROR occured!
Вопрос планировался про добавление в веб-интерфейс, но, похоже, он откладывается ))
на WB7 (stable)
dpkg -l |grep libmodbus
ii libmodbus5:armhf 3.0.6-2+deb9u1 armhf library for the Modbus protocol
ii modbus-utils 1.2.4 armhf Modbus client and server command line tools based on libmodbus
на десктопе
dpkg -l | grep libmodbus
ii libmodbus5:amd64 3.1.6-2 amd64 library for the Modbus protocol
ii modbus-utils 1.2 amd64 Modbus client and server command line tools based on libmodbus
как заставить работать modbus_client c TCP на WB?