Добрый день. Пытаюсь подключиться к счетчику Энергомера СЕ308 S31.543.0AA.SYUVJLFZ по RS-485.
Не получаю данные со счетчика.
Подключаюсь с помощью витой пары длиной не более 2м. Коммутация выполнена аналогично статье в базе знаний. Параметры порта RS-485: 9600,N,8,1. Логи:
18-03-2025 05:29:03.581
DEBUG: [port] /dev/ttyRS485-1: Sleep 12500 us
18-03-2025 05:29:03.569
DEBUG: [port] /dev/ttyRS485-1: Write: 7e a0 0a 00 02 fc bd 41 53 3c ab 7e
18-03-2025 05:29:03.569
DEBUG: [port] /dev/ttyRS485-1: Sleep 20000 us
18-03-2025 05:29:03.567
DEBUG: [serial client] </dev/ttyRS485-1 9600 8 N 1>3249040: Wait until 3249040
18-03-2025 05:29:03.567
DEBUG: [serial client] Failed to open session: Serial protocol error: DisconnectRequest failed. Serial protocol error: request timed out [slave_id is </dev/ttyRS485-1 9600 8 N 1> dlms:16222]
18-03-2025 05:28:53.534
DEBUG: [port] /dev/ttyRS485-1: Sleep 12500 us
18-03-2025 05:28:53.522
DEBUG: [port] /dev/ttyRS485-1: Write: 7e a0 0a 00 02 fc bd 41 53 3c ab 7e
18-03-2025 05:28:53.521
DEBUG: [port] /dev/ttyRS485-1: Sleep 20000 us
18-03-2025 05:28:53.503
DEBUG: [serial client] </dev/ttyRS485-1 9600 8 N 1>3238976: Wait until 3238976
18-03-2025 05:28:53.502
DEBUG: [serial port] Setup /dev/ttyRS485-1 port: 9600 8 N 1
18-03-2025 05:28:53.502
WARNING: </dev/ttyRS485-1 9600 8 N 1>: closed due to repetitive errors
18-03-2025 05:28:53.498
DEBUG: [serial client] Failed to open session: Serial protocol error: DisconnectRequest failed. Serial protocol error: request timed out [slave_id is </dev/ttyRS485-1 9600 8 N 1> dlms:16222]
18-03-2025 05:28:53.498
DEBUG: [serial client] Failed to open session: Serial protocol error: DisconnectRequest failed. Serial protocol error: request timed out [slave_id is </dev/ttyRS485-1 9600 8 N 1> dlms:16222]
Добрый день.
Из лога видно - что ответ от устройства не получен.
А точно используемый адрес принадлежит этому прибору? Подключается ли с помощью штатного ПО?
То есть причин отсутствия ответа может быть несколько:
Для чистоты эксперимента я заменил счетчик. Я смог подключиться к счетчику через admintools не только оптической головкой, но и по RS485.
После этого я попытался подключить счетчик к контроллеру. Не получилось. Вот лог:
27-03-2025 03:43:22.676
WARNING: [serial device] TSerialDevice::ReadRegister(): Serial protocol error: Getting 1.0.31.7.0.255:3 failed. Serial protocol error: request timed out [slave_id is </dev/ttyRS485-1 19200 8 N 1> dlms:14686]
27-03-2025 03:43:12.640
DEBUG: [port] /dev/ttyRS485-1: Sleep 15625 us
27-03-2025 03:43:12.625
DEBUG: [port] /dev/ttyRS485-1: Write: 7e a0 1c 00 02 e4 bd 41 32 ce 12 e6 e6 00 c0 01 81 00 03 01 00 1f 07 00 ff 03 00 01 ad 7e
27-03-2025 03:43:12.624
DEBUG: [port] /dev/ttyRS485-1: Sleep 20000 us
27-03-2025 03:43:12.607
DEBUG: [port] /dev/ttyRS485-1: Sleep 0 us
27-03-2025 03:43:12.607
DEBUG: [port] /dev/ttyRS485-1: Sleep 0 us
27-03-2025 03:43:12.605
INFO: [serial device] device </dev/ttyRS485-1 19200 8 N 1> dlms:14686 is connected
27-03-2025 03:43:12.605
DEBUG: [Energomera CE308 14686 (</dev/ttyRS485-1 19200 8 N 1> dlms:14686)] Connection is initialized
DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 7e a0 0a 41 00 02 e4 bd 1f 1a 20 7e
27-03-2025 03:43:12.427
DEBUG: [port] /dev/ttyRS485-1: Sleep 6250 us
27-03-2025 03:43:12.421
DEBUG: [port] /dev/ttyRS485-1: Write: 7e a0 0a 00 02 e4 bd 41 53 45 8d 7e
27-03-2025 03:43:12.420
DEBUG: [port] /dev/ttyRS485-1: Sleep 20000 us
27-03-2025 03:43:12.402
DEBUG: [serial client] </dev/ttyRS485-1 19200 8 N 1>9512877: Wait until 9512877
27-03-2025 03:43:12.400
DEBUG: [serial port] Setup /dev/ttyRS485-1 port: 19200 8 N 1
27-03-2025 03:43:12.400
WARNING: </dev/ttyRS485-1 19200 8 N 1>: closed due to repetitive errors
27-03-2025 03:43:12.400
WARNING: </dev/ttyRS485-1 19200 8 N 1>: closed due to repetitive errors
27-03-2025 03:43:12.399
WARNING: [serial device] device </dev/ttyRS485-1 19200 8 N 1> dlms:14686 is disconnected
27-03-2025 03:43:12.398
WARNING: [serial device] TSerialDevice::ReadRegister(): Serial protocol error: Getting 1.0.3.8.128.255:3 failed. Serial protocol error: request timed out [slave_id is </dev/ttyRS485-1 19200 8 N 1> dlms:14686]
Но в логах получаю Authentication failure. Не понимаю, как правильно прописать авторизацию.
30-03-2025 00:21:16.752 [wb-mqtt-serial]
DEBUG: [serial client] </dev/ttyRS485-1 19200 8 N 1>22771226: Wait until 22771226
30-03-2025 00:21:16.752 [wb-mqtt-serial]
DEBUG: [serial client] Failed to open session: Serial protocol error: AARQRequest failed. Bad response: 279, Authentication failure. [slave_id is </dev/ttyRS485-1 19200 8 N 1> dlms:14686]
DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 7e a0 0a 41 00 02 e4 bd 1f 1a 20 7e
30-03-2025 00:21:16.523 [wb-mqtt-serial]
DEBUG: [port] /dev/ttyRS485-1: Sleep 6250 us
30-03-2025 00:21:16.517 [wb-mqtt-serial]
DEBUG: [port] /dev/ttyRS485-1: Write: 7e a0 0a 00 02 e4 bd 41 53 45 8d 7e
30-03-2025 00:21:16.516 [wb-mqtt-serial]
DEBUG: [port] /dev/ttyRS485-1: Sleep 20000 us
30-03-2025 00:21:16.497 [wb-mqtt-serial]
DEBUG: [serial client] </dev/ttyRS485-1 19200 8 N 1>22770970: Wait until 22770970
30-03-2025 00:21:16.497 [wb-mqtt-serial]
DEBUG: [serial client] Failed to open session: Serial protocol error: AARQRequest failed. Bad response: 279, Authentication failure. [slave_id is </dev/ttyRS485-1 19200 8 N 1> dlms:14686]
DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 7e a0 0a 41 00 02 e4 bd 1f 1a 20 7e
31-03-2025 21:55:02.055 [wb-mqtt-serial]
DEBUG: [port] /dev/ttyRS485-1: Sleep 6250 us
31-03-2025 21:55:02.048 [wb-mqtt-serial]
DEBUG: [port] /dev/ttyRS485-1: Write: 7e a0 0a 00 02 e4 bd 41 53 45 8d 7e
31-03-2025 21:55:02.048 [wb-mqtt-serial]
DEBUG: [port] /dev/ttyRS485-1: Sleep 20000 us
31-03-2025 21:55:02.039 [wb-mqtt-serial]
DEBUG: [serial client] </dev/ttyRS485-1 19200 8 N 1>864508: Wait until 864508
31-03-2025 21:55:02.034 [wb-mqtt-serial]
DEBUG: [serial client] Failed to open session: Serial protocol error: AARQRequest failed. Bad response: 279, Authentication failure. [slave_id is </dev/ttyRS485-1 19200 8 N 1> dlms:14686]
Можно не отключать, разработчики ответили.
Вы указываете “пароль как массив байт”.
И - неправильно. Укажите именно asc2 коды символов а не сами символы. То есть для 1 - 0x31 и так далее.
DEBUG: [port] /dev/ttyRS485-1: ReadFrame: 7e a0 0a 41 00 02 e4 bd 1f 1a 20 7e
31-03-2025 23:25:36.721 [wb-mqtt-serial]
DEBUG: [port] /dev/ttyRS485-1: Sleep 6250 us
31-03-2025 23:25:36.715 [wb-mqtt-serial]
DEBUG: [port] /dev/ttyRS485-1: Write: 7e a0 0a 00 02 e4 bd 41 53 45 8d 7e
31-03-2025 23:25:36.714 [wb-mqtt-serial]
DEBUG: [port] /dev/ttyRS485-1: Sleep 20000 us
31-03-2025 23:25:36.695 [wb-mqtt-serial]
DEBUG: [serial client] </dev/ttyRS485-1 19200 8 N 1>4661169: Wait until 4661169
31-03-2025 23:25:36.695 [wb-mqtt-serial]
DEBUG: [serial client] Failed to open session: Serial protocol error: AARQRequest failed. Bad response: 279, Authentication failure. [slave_id is </dev/ttyRS485-1 19200 8 N 1> dlms:14686]
Если всё ещё показывает, что устройство не подключено, надо смотреть в лог обмена.
Если в логе есть строки Connection is initialized, то авторизация прошла успешно, адрес и пароль - верные, и надо смотреть что там дальше в логе.