Добрый день. пытаюсь связать Owen ПР102 и WirenBoard контролер. про RS485.
в овене один регистр для чтения(551), другой для записи (512). собрав вот такую конструкцию получаю переключатель. но у него получается не логичный принцып работы. один раз я на него кликаю он включает, я кликаю на него для выключения, переключаетль выключается, но лампочка продолжает светится. полжение перключателя теперь в выключенном состоянии. кликаю на него еще раз, свет переключатель встает во включенное положение, а свет гаснет, выключаю переключатель ничего не происходит и так далее.
modbus_client --debug -mrtu -b115200 -pnone -s1 /dev/ttyRS485-1 -a16 -t0x06 -r512 1
при отправки такой команды лампочка включается, при повторной отправке выключается.
root@wirenboard-AY7JWPYU:~# modbus_client --debug -mrtu -b115200 -pnone -s1 /dev/ttyRS485-1 -a16 -t0x06 -r512 1
Data to write: 0x1
Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 1)
[10][06][02][00][00][01][4A][F3]
Waiting for a confirmation…
<10><06><02><00><00><01><4A>
SUCCESS: written 1 elements!
root@wirenboard-AY7JWPYU:~# modbus_client --debug -mrtu -b115200 -pnone -s1 /dev/ttyRS485-1 -a16 -t0x03 -r551 1
0x0001 Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 1)
[10][03][02][27][00][01][36][F8]
Waiting for a confirmation…
<10><03><02><00><01><85><87>
SUCCESS: read 1 of elements:
Data: 0x0001
root@wirenboard-AY7JWPYU:~# modbus_client --debug -mrtu -b115200 -pnone -s1 /dev/ttyRS485-1 -a16 -t0x06 -r512 1
Data to write: 0x1
Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 1)
[10][06][02][00][00][01][4A][F3]
Waiting for a confirmation…
<10><06><02><00><00><01><4A>
SUCCESS: written 1 elements!
root@wirenboard-AY7JWPYU:~# modbus_client --debug -mrtu -b115200 -pnone -s1 /dev/ttyRS485-1 -a16 -t0x03 -r551 1
0x0001 Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 1)
[10][03][02][27][00][01][36][F8]
Waiting for a confirmation…
<10><03><02><00><00><44><47>
SUCCESS: read 1 of elements:
Data: 0x0000
root@wirenboard-AY7JWPYU:~#
Добрый день.
Обратите внимание - что для контрола switch при его переключении в активное состояние записывается значение “1”. В неактивное - “0”.
А для чего реализовано именно изменение состояния при записи одного и того же значения?
Ну и для того чтобы отправлялось при каждом переключении значение “1” - можно применить off_value, задав его “1”.
