Зависание ИК при отправке команды с ROM

Добрый день!

Столкнулся с проблемой, есть ИК, данные по температуре и напряжению передает, в ROM есть записанные команды.
При отправке команды на воспроизведение:

mosquitto_pub -t "/devices/pub -t "/devices/wb-mir_v2_118/controls/Play from ROM1/on" -m 1

полностью выпадает в ошибку блок с Play from ROM* (ошибка на чтение), причем другие топики активны и работают.

Перепробовал разные прошивки от 4.11.0 до 4.28.1.

Что с этим делать? Как можно исправить?

Добрый день. А что за модуль? MSW?
Увидел по топику, MIR.
Ну и хочется поведение воспроизвести. Для того чтобы точно получилось - дайте команды которые в нем записаны (содержимое банков).
Да, еще: Прочитайте содержимое coil “записи” банков. Предполагаю что какой-то находится в режиме записи. Тогда - да, воспроизведение может не работать, но чтобы не читалось - странно.

Перепрошил до версии 4.11.0, не записывал ничего.
Воспроизвелось. Записал лог с режимом debug.
Могла сама железка помереть?

wb-mqtt-db-full-log.txt (958.9 КБ)

Помереть - точно вряд ли. Такое поведение воспроизводится если пробовать запускать пустую команду (незаписанный банк)? Сейчас у себя проверю.

Что я делал:

  1. Обновил модуль ИК
  2. Дернул Play from ROM32
  3. Получил read error по всем Play from…

Шаблон использую старый, но и контроолер legacy.
config-wb-mir_v2.json (17.6 КБ)

Вообще, такое впервые вижу. Обычно, если были какие-то проблемы с ИК, после перепрошивки всегда работают. Оборудование далеко на объекте, физически не получилось до него добраться, но удаленный доступ на контроллер есть.

Так, проверил на 4.11. Ну и на актуальной, 4.22
Читаю coil “воспроизведения”, десяток:

modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5100 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][13][EC][00][0A][7C][EA]
Waiting for a confirmation...
<37><01><02><00><00><71><F8>
SUCCESS: read 10 of elements:
	Data: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

При этом банки - пустые:

modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x03 -r5400 -c 10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][03][15][18][00][0A][44][50]
Waiting for a confirmation...
<37><03><14><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><00><5F><F8>
SUCCESS: read 10 of elements:
	Data: 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 

Запускаю “воспроизведение” из младшего, точно пустого банка:

modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5100 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][13][EC][00][0A][7C][EA]
Waiting for a confirmation...
<37><01><02><01><00><70><68>
SUCCESS: read 10 of elements:
	Data: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
root@wirenboard-AQUDWN46:~/ir_backup# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5100 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][13][EC][00][0A][7C][EA]
Waiting for a confirmation...
<37><01><02><01><00><70><68>
SUCCESS: read 10 of elements:
	Data: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

Хм. При пустом банке “1” не сбрасывается. Ну и позволяет записать “воспроизведение” еще в один, а вот такого быть не должно:

modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x05 -r5101 1
Data to write: 0x1
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][05][13][ED][FF][00][1D][1D]
Waiting for a confirmation...
<37><05><13><ED><FF><00><1D><1D>
SUCCESS: written 1 elements!
root@wirenboard-AQUDWN46:~/ir_backup# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5100 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][13][EC][00][0A][7C][EA]
Waiting for a confirmation...
<37><01><02><03><00><71><08>
SUCCESS: read 10 of elements:
	Data: 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

Так, попробую “запись”:

modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x05 -r5300 1
Data to write: 0x1
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][05][14][B4][FF][00][CC][7A]
Waiting for a confirmation...
<37><05><14><B4><FF><00><CC><7A>
SUCCESS: written 1 elements!
root@wirenboard-AQUDWN46:~/ir_backup# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5300  
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][14][B4][00][01][BD][8A]
Waiting for a confirmation...
<37><01><01><01><9F><C0>
SUCCESS: read 1 of elements:
	Data: 0x01 
root@wirenboard-AQUDWN46:~/ir_backup# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5300 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][14][B4][00][0A][FC][4D]
Waiting for a confirmation...
<37><01><02><01><00><70><68>
SUCCESS: read 10 of elements:
	Data: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
root@wirenboard-AQUDWN46:~/ir_backup# modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a55 -t0x01 -r5100 -c10
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[37][01][13][EC][00][0A][7C][EA]
Waiting for a confirmation...
<37><01><02><03><00><71><08>
SUCCESS: read 10 of elements:
	Data: 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

То есть я нашел баг, не сбрасывается coil “воспроизведение” если банк пуст. Но все по прежнему читается…
И в логе

именно ошибок при чтении со 118 устройства не нашел.
Так, подскажите, как воспроизвести?

То есть устройство остается работоспособным, даже если 1 не сбросился?
Я не думал о таком, перепроверю на объекте.

1 лайк