Ошибки при опросе электросчетчика Меркурий 230

Добрый день.
В программу заведено более 100 электросчетчиков Меркурий 230.
половину из них не удаётся опросить.
Дампы обмена и журналы опроса во вложении.
PollService.rar (6.74 MB)

Возникает две ошибки.

  1. Прибор присылает недостаточное количество данных. Вместо правильного ответа на запрос отправляется один байт 0.
  2. Прибор присылает ответ с неверной контрольной суммой. Тут ситуация интереснее. Пакеты с длиной 16 байт и меньше отправляются нормально, потому система смогла считать коэффициенты трансформации. Если длина ответа превышает 16 байт, идущие дальше данные искажаются произвольным образом.

Скорее всего, проблема находится в настройках контроллеров iRZ ATM2.

Удаётся ли опросить приборы заводской программой “Конфигуратор” через iRZ Collector?

Добрый день.
Я готов предоставить доступ к электросчетчикам через модем IRZ ATM2

Настройте модем на подключение к адресу 85.15.66.41:2071
Сообщите идентификатор, серийный номер модема, а так же способ вызова, если он настроен.

Если вызов модема не поддерживается, настройте его для автоматического подключения раз в 5 минут или чаще.

Добрый день!
Модемы IRZ ATM2 подключаются каждую минуту на адрес 85.15.66.41:2071.
Данные по модемам отправлены на почту.

У нас пока нет предположений в чём может заключаться проблема.

Ответ от счётчика состоит из одного символа 0h, в нарушение протокола обмена. Для дальнейших поисков причины, пожалуйста, снимите обмен со счётчиком заводской программы configurator через iRZ collector. У нас, к сожалению, не удаётся установить это ПО из-за выдаваемой MySQL ошибки.

Нужен будет дамп обмена с этим счётчиком:
imei - 353**669
тел. 919
56
Электросчетчик - Меркурий 230
№ - 11101784
Сетевой номер - 84

Если опрос будет вестись через виртуальный COM-Порт, для снятия дампа воспользуйтесь SerialPort monitor от eltima software. Если через TCP/IP, можно использовать wireshark.

добрый день!
напишите пожалуйста ход действий в Wireshark, для снятия дампа

подниму

У вас такая же проблема?

да, лэрсом не читаются три счетчика, конфигуратором читаются нормально

У вас такое же подключение через ATM2?

если быть более точным, то в теме описана именно наша проблема)

Давайте убедимся, что чтение выполняется одинаково в конфигураторе и в ЛЭРС УЧЁТ.

Для этого опросите счётчик через конфигуратор, а потом точно по такому же каналу связи (через IRZ Collector) в ЛЭРС УЧЁТ. Удаётся ли считать данные таким способом?

конфигуратор читает, ЛЭРС не очень.
мерк230шаум36_.png
мерк230шаум36.png
Журнал опроса.xls (28.5 KB)
dump.коллектор(0).2016-03-14.log (4.56 KB)

Сообщение не совсем понятное. На самом деле ошибка в том что считано слишком мало данных. Сообщение мы исправим.

Попробуйте увеличить таймаут на приём ответа на 4-5 секунд.

ничего не поменялось с временем ожидания 20 000мс
Журнал опроса 15.03.2016.xls (21.5 KB)
dump.GPRS(716).2016-03-15.log (60.3 KB)

Из вашего дампа видно, что запросы, у которых ответ длиной до 18 байт прекрасно выполняются, а данные свыше 18 байт не приходят. Ответ, который ожидает ЛЭРС УЧЁТ - 19 байт.

Покажите все параметры, которые у вас настроены в ATM2. Насколько помню, в нём несть настройка то ли таймаута, который выжидается до отправки ответа прибора в ЛЭРС УЧЁТ, то ли максимальной длины пакета.

Похоже, что ваш модем обрубает пакеты свыше 18 байт. При чтении текущих параметров конфигуратор выполняет запросы, ответы на которых укладываются в этот размер.

настройки СОМ порта модема
настройки модемов.png

У вас отмечено использование Modbus RTU с паузой в 20 мс. Это не совсем правильно хотя бы потому что Меркурий 230 работает по другому протоколу.

Попробуйте увеличить паузу с 20 до 500мс. После этого опрос должен пройти успешно.

не помогло
рту 500 мс Журнал опроса.xls (31 KB)
рту 500 мс dump.GPRS(652).2016-03-15.log (114 KB)