ЕК270(260) отправка самого первого пакета и пропуск ответа от корректора

Канал опроса прибора - GPRS через КСПД-5. Используется ТБНБрокер, с редиректором виртуальных COM-портом.
Самым первым пакетом отправляемым ЛЭРС при опросе корректора ЕК270(260) является:

19:02:41 - COM101 >>  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

СОДЭК же отправляет первым пакет немного другого вида:

18:58:38 - Порт COM101 подключен к 127.0.0.1
18:58:39 - COM101 >>  00 00 00 00
18:58:39 - COM101 >>  00 00 00 00 00
18:58:39 - COM101 >>  00 00 00 00
18:58:39 - COM101 >>  00 00 00 00
18:58:39 - COM101 >>  00 00 00 00
18:58:39 - COM101 >>  00 00 00 00 00 00
18:58:39 - COM101 >>  00 00 00
18:58:40 - COM101 >>  00 00 00
18:58:40 - COM101 >>  00 00 00 00 00
18:58:40 - COM101 >>  00 00 00 00 00
18:58:40 - COM101 >>  00 00 00
18:58:40 - COM101 >>  00 00 00 00 00
18:58:40 - COM101 >>  00 00 00
18:58:40 - COM101 >>  00 00
18:58:40 - COM101 >>  00 00 00
18:58:41 - COM101 >>  00 00
18:58:42 - COM101 >>  2F 3F 21 0D 0A

Т.е. тот же пакет, что отправляет ЛЭРС, но разбитый на части в течении 2сек. Затем следует пауза 2сек и далее запрос 2F 3F 21 0D 0A(/?!).


В моём случае ЛЭРС отправляет первый нулевой пакет, затем запрос прибору 2F 3F 30 21 0D 0A(/?0!)
В ответ из порта прилетает что то непонятное.

19:02:42 - COM101 <<  30 00

Далее ожидание ответа от прибора, ответ не приходит и ошибка по таймауту, повтор запроса ЛЭРСом 2F 3F 30 21 0D 0A(/?0!), и через 1сек прибор отвечает верно.


С СОДЭКом при отправке стартового нулевого пакета в течении 2сек, и последующей паузе в 2сек перед запросом корректору такой ситуации нет, корректор отвечает сразу на первый запрос. С ЛЭРС же всегда в начале опроса присутствует таймаут на первый запрос.
Приложил журнал опроса и дамп из ЛЭРС. По нему видно, что на первый запрос корректор не отвечает.
Приложил дамп опроса СОДЭКом того же прибора, через тот же канал связи. Т.е. я могу предположить, что дело в форме отправки первого нулевого пакета и короткой паузе после него.

P.S. прошу обратить внимание - ЛЭРС и СОДЭК отправляют немного разные первые запросы в корректор.
Дап опроса СОДЭК.txt (10.9 KB)
dump.192.168.200.198_Home_COM101.2017-07-05.log (26.2 KB)
111111111111111111.xls (47.5 KB)

Вы описали то, что у вас происходит.
В чем заключается ваш вопрос?

прибор не отвечает на первый запрос с ЛЭРС. На первый запрос с СОДЭК прибор отвечает.

Т.е. я могу предположить, что дело в форме отправки первого нулевого пакета и короткой паузе после него.

СОДЭК отправляет “00” по одному символу на протяжении 2сек, далее 2сек тишины и запрос типа прибора. Вы можете привести первый нулевой пакет и запрос к виду из СОДЭК?

Драйвер ЕК270 реализован согласно описанию протокола обмена с ЕК270.
В описании протокола обмена нет информации о том, что перед открытием сеанса связи с устройством необходимо отправлять нули по очереди или отправить массив из нулей сразу. Поскольку у вас и у других клиентов опрос устройств ЕК270 проходит, можно сделать вывод, что для приборов не имеет значение будет ли он получать нулевой пакет по одному байту или получит его целиком.
В ЛЭРС УЧЕТ после отправки нулевого пакета есть задержка в 1 секунду. Из дампа обмена с прибором при опросе СОДЭК видно, что после отправки последнего байта нулевого пакета задержка 1 секунда, поэтому здесь расхождений в ЛЭРС УЧЕТ и СОДЭК нет.
Из нашего дампа обмена видно, что после отправки запроса 2F 3F 30 21 0D 0A, прибор возвращает 00 00, что противоречит протоколу обмена, после чего ЛЭРС УЧЕТ отправляет запрос повторно. Это не является ошибкой и ЛЭРС УЧЕТ обрабатывает эту ситуацию.
На данные момент нет причин вносить какие либо изменения в драйвер поскольку ошибка отсутствует.
Кроме того у других наших клиентов не возникает данная ситуация, поэтому можем предположить, что ситуация связанна либо с каналом связи, либо с особенностью прибора.

Это однозначно связано с КСПД-5, ТБНБрокером. Данный ЕК270 по другим каналам связи отвечает замечательно и без каких либо проблем. Заметил отличие в запросах у СОДЭК и ЛЭРС и в моём случае эта несущественная разница действительно влияла на качество ответов.
Хорошо, понял, спасибо за разъяснение.
Я прихожу к выводу, что КСПД-5 годится не для всех приборов учёта.