Добрый день. Датчик заработал с WB5, но использовать его я планирую с имеющимся у меня WB6. С ним датчик не работает. В лог валит:
ReadFrame: 00 0E 83 03 31 32 00
ModbusRTU::ReadRegisterRange(): failed to read 2 holding(s) @ 97 of device modbus:14: Serial protocol error: malformed response: invalid data size
modbus: read 2 holding(s) @ 270 of device modbus:14
Write: 0e 03 01 0e 00 02 a4 cb
ReadFrame: 00 0E 83 03 31 32 00
ModbusRTU::ReadRegisterRange(): failed to read 2 holding(s) @ 270 of device modbus:14: Serial protocol error: malformed response: invalid data size
modbus: read 2 input(s) @ 0 of device modbus:14
Write: 0e 04 00 00 00 02 71 34
ReadFrame: 00 0E 84 03 33 02 00
ModbusRTU::ReadRegisterRange(): failed to read 2 input(s) @ 0 of device modbus:14: Serial protocol error: malformed response: invalid data size
modbus: read 1 input(s) @ 3 of device modbus:14
Write: 0e 04 00 03 00 01 c1 35
ReadFrame: 00 0E 84 03 33 02 00
Но тут проблема прежде всего не в датчике, а в дефекте портов контроллера. Я уже поднимал этот вопрос тут https://support.wirenboard.com/t/sdvig-frejma-modbus-pri-chtenii-otveta-ot-ustrojstva/2196, но тогда сослались на “кривое китайское железо”, а ваших устройств с RS485 у меня не было. Теперь видим ту же картину с вашим датчиком.
В итоге был приобретен китайский шлюз USR-M511 через который по modbus over tcp все устройства без проблем были подключены к контроллеру. Проблемы возникли с вашими датчиками. из 5 шт. один не отвечает вообще, один работает, но время от времени возникают ошибки и 3 работают без проблем. Пробовал менять их местами результат тот же. Вот лог c неработающего датчика, подключенного коротким проводом (менее 0.5м) к USR-M511:
ModbusRTU::ReadRegisterRange(): failed to read 1 holding(s) @ 8 of device
modbus:14: Serial protocol error: request timed out
modbus: read 2 holding(s) @ 97 of device modbus:14
Write: 0e 03 00 61 00 02 95 2a
ModbusRTU::ReadRegisterRange(): failed to read 2 holding(s) @ 97 of device modbus:14: Serial protocol error: request timed out
modbus: read 2 holding(s) @ 270 of device modbus:14
Write: 0e 03 01 0e 00 02 a4 cb
ModbusRTU::ReadRegisterRange(): failed to read 2 holding(s) @ 270 of device modbus:14: Serial protocol error: request timed out
modbus: read 2 input(s) @ 0 of device modbus:14
Write: 0e 04 00 00 00 02 71 34
ModbusRTU::ReadRegisterRange(): failed to read 2 input(s) @ 0 of device modbus:14: Serial protocol error: request timed out
modbus: read 1 input(s) @ 3 of device modbus:14
Write: 0e 04 00 03 00 01 c1 35
ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 3 of device modbus:14: Serial protocol error: request timed out
modbus: read 3 input(s) @ 9 of device modbus:14
Write: 0e 04 00 09 00 03 60 f6
ModbusRTU::ReadRegisterRange(): failed to read 3 input(s) @ 9 of device modbus:14: Serial protocol error: request timed out
modbus: read 1 input(s) @ 121 of device modbus:14
Write: 0e 04 00 79 00 01 e0 ec
Далее попробовал подключить датчики к компьютеру через вот такой USBшный конвертор:
Неработающий датчик:

Результат:
Далее подключаю туда же датчик, который иногда выдает ошибки:
Результат:
Ну и датчик, который работает без проблем:
Результат:
Три одинаковых датчика и три разных результата. Чудеса!





