Тормозит опрос Карат-307

Здравствуйте!

Один из Карат-307 стал опрашиваться с паузой 20 секунд между отдельными командами. Причем паузу делает именно служба опроса ЛЭРС. По логу видно, что Карат отвечает на запрос сразу же. А вот следующий запрос ЛЭРС посылает только через 20 секунд. В итоге за отведенное время данные не успевают считаться. И опрос прерывается по причине превышения опроса. И так ситуация повторяется до бесконечности. Что при ручном опросе, что при авто. Другие Карат-307 опрашиваются без проблем - запрос, ответ, и сразу же следующий запрос.

Вот кусочек лога проблемного опроса:
09.06.2016 0:00:49.319 ----- Порт открыт -----
09.06.2016 0:01:11.039 >> 0B 03 07 08 00 01 04 16
09.06.2016 0:01:11.211 << 0B 83 02
09.06.2016 0:01:11.211 << E0 F3
09.06.2016 0:01:32.539 >> 0B 03 01 01 00 01 D4 9C
09.06.2016 0:01:32.664 << 0B 03 36
09.06.2016 0:01:32.664 << 00 31 31 35 34 30 36 31 32 6E 81 0A 45 9F E7 AE 44 12 AB 54 42 1D A9 54 42 4C A1 54 42 89 97 54 42 CA B6 54 42 A7 BC 54 42 01 F0 0D 0D 0E 1D 06 0C 06 06 06 30 F8 B0 E6
09.06.2016 0:01:53.962 >> 0B 03 01 06 00 01 65 5D
09.06.2016 0:01:54.102 << 0B 03 38
09.06.2016 0:01:54.102 << 04 11 12 13 30 31 32 33 10 37 38 39 20 21 22 23 50 51 52 53 C0 B0 16 14 15 34 35 17 3A 24 25 26 27 54 55 56 57 58 59 5A 5B C0 B0 FF 00 00 00 00 00 00 00 00 00 00 00 00 DC B0
Как видите, даже инициализация происходит с паузой примерно 20 секунд между командами.

А вот для сравнения нормальный опрос с другого порта и другого Карата:
02.06.2016 0:00:18.071 ----- Порт открыт -----
02.06.2016 0:00:19.367 >> 0D 03 07 08 00 01 04 70
02.06.2016 0:00:19.571 << 0D 83 02
02.06.2016 0:00:19.571 << 00 F2
02.06.2016 0:00:20.539 >> 0D 03 01 01 00 01 D4 FA
02.06.2016 0:00:20.680 << 0D 03 36
02.06.2016 0:00:20.680 << 00 32 34 38 35 30 36 31 33 52 63 09 45 F4 3C AF 44 B6 66 54 42 D8 60 54 42 19 6B 54 42 1B 56 54 42 86 6E 54 42 62 74 54 42 01 F0 0D 0E 0C 0B 06 0D 06 06 06 FC D6 96 48
02.06.2016 0:00:21.571 >> 0D 03 01 06 00 01 65 3B
02.06.2016 0:00:21.727 << 0D 03 38
02.06.2016 0:00:21.727 << 04 11 12 30 31 32 10 37 38 20 21 22 50 51 52 C0 B0 16 14 15 34 35 17 3A 24 25 26 27 54 55 56 57 58 59 5A 5B C0 B0 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3A 06
Здесь пауза всего лишь 1 секунда.

Подскажите, в какую сторону копать?

Служба опроса ЛЭРС УЧЕТ не может избирательно опрашивать устройства одной и той же модели. Если бы проблема была именно в службе опроса, тогда она не опрашивала бы все устройства Карат-307. Отсюда можно сделать вывод, что проблема в устройстве: либо в модеме, либо в конкретном Карат-307.

Попробуйте опросить проблемный Карат-307 заводской программой КАРАТ-Экспресс. Будет ли наблюдаться такая же проблема?

Ну вы же видите, что Карат отвечает на запрос сразу. Причем корректно - сообщений об ошибках нет. Что заставляет службу опроса выжидать 20 секунд до следующей команды?

Вот, я опросил этот Карат через терминалку в ручном режиме. Никаких пауз нет, всё прекрасно, Карат не при чем.

Скриншот:
https://yadi.sk/i/qlu0h2RvsQ53m

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

Также напишите через какое оборудование вы опрашиваете проблемный и непроблемный Карат-307. Пришлите скриншоты настроек портов опроса, через которые настроено это оборудование.

Свежий журнал опроса и настройки портов в архиве по ссылке:
https://yadi.sk/d/gV0uAFtvsVS5E

Все три Карата опрашиваются через одну и ту же Moxa NPort 5630-16. У каждого Карата свой персональный порт, т.е. кроме него никакого оборудования на этот порт к Моксе не подключено. На эти порты в Моксе стоит настройка только одно подключение. Т.е. если ЛЭРС открывает этот порт, то больше никто в порос вмешаться не может даже теоретически.

И еще раз хотел бы обратить ваше внимание: у нас нет никакого проблемного Карата. У нас есть проблемный опрос ЛЭРС одного из Каратов. В этом и хочу разобраться. Есть большая вероятность, что если перезагрузить сервер ЛЭРС, то всё восстановится. Но хотелось бы сначала разобраться в причинах, чтобы не допустить повторения такого глюка в будущем и предотвратить потерю данных.

По интерфейсу свойств порта опроса я вижу, что у вас не последняя версия ЛЭРС УЧЕТ. Мы не имеем возможности оказывать поддержку по предыдущим версиям ЛЭРС УЧЕТ. Обновитесь до последней версии и попробуйте произвести порос. Если ошибка повториться, отпишитесь пожалуйста в этой же теме, приложив новый журнал опроса.

Здравствуйте! ЛЭРС обновлен до последней версии (3.07 R17.04 (сборка 31716)). Проблема сохранилась.
Я обновил журнал опроса и скриншоты настроек портов опроса. Ссылка та же:

https://yadi.sk/d/gV0uAFtvsVS5E

Все три Карата опрашиваются через одну и ту же Moxa NPort 5630-16. У каждого Карата свой персональный порт, т.е. кроме него никакого оборудования на этот порт к Моксе не подключено. На эти порты в Моксе стоит настройка только одно подключение. Т.е. если ЛЭРС открывает этот порт, то больше никто в порос вмешаться не может даже теоретически.

Подскажите каким образом у вас организовано соединение? Здесь вы описали, что опрос происходит через одну Моксу, а на скриншотах присутствуют настройки 3 портов опроса, в каждом из которых указано прямое подключение к отдельному COM-порту.

Moxa NPort 5630-16 имеет 16 портов RS-485. 3 из них отведены под Караты, по отдельному порту на каждый Карат. Поэтому вы в настройках видите 3 порта, всё верно. Далее мокса по локальной сети Ethernet связана с сервером ЛЭРС, на котором и присвоены COM-порты.

Всё верно, у вас нет проблемного карата, у вас проблемная MOXA :-):

Перед тем как отправить запрос служба опроса выполняет процедуру очистки буфера COM-порта. Это жизненно важно для проведения опроса в нестабильных каналах связи.

Для двух виртуальных портов всё проходит штатно и быстро, но по какой-то причине очистка третьего виртуального порта занимает ровно 20 секунд. По какой причине это происходит сказать сложно. Скорее всего, это связано со сбоями в работе оборудования или драйвера виртуальных COM-портов. Какая у вас используется версия Nport Administrator? Может стоит попробовать её обновить и поставить самую последнюю?

Вооот! Спасибо вам большое, наконец-то первый ответ по существу. :-): Ведь другой программой Карат опрашивается без тормозов. Я и хотел выяснить в чем особенность опроса ЛЭРС. Теперь примерно понятно в какую сторону копать. Только хотелось бы уточнить один момент. Служба опроса выполняет процедуру очистки буфера COM-порта перед КАЖДОЙ командой(запросом) или только один раз перед началом сеанса опроса?

Насчет порта у меня уже возникла идея, чтобы точно определить виновника, поменять местами 1-й и например 2-й Карат на стороне RS-485. Ну и соответственно в ЛЭРС поменять местами порты опроса. Сегодня попробуем. Можно еще попробовать перезапустить моксу. Хотя в неисправность в моксе что-то не очень верится, у нас их очень много и что только с ними не делали, они неубиваемые. А эта 5630-16 вообще в тепличных условиях содержится, в серверной в стоечке стоит. Программный глюк с виртуальным COM кажется более реалистичным. Кстати, перезапуск компьютера с ЛЭРС ничего не дал.

Ну нам нужно было собрать от вас больше информации, чтобы дать ответ по существу.

Буфер очищается перед отправкой каждой команды. Это необходимо, поскольку при сбое в буфере может остаться часть данных от предыдущего обмена. Это очень критично при опросе, например, по CSD.

Можно попробовать поменять порты местами, чтобы убедиться, что это не карат, но в этой конфигурации я на 90% уверен в сбое именно со стороны виртуального драйвера COM-порта. Может попробовать опрашивать не в RealCOM, а в TCP Server? Там процедура очистки входящего TCP-буфера выполняется по-другому и к таким последствиям привести не должна.

Порт поменяли, действительно, теперь 100% это виртуальный COM-порт в связке с опросом ЛЭРС так себя ведет.
Перезагрузки компьютера где установлен ЛЭРС и Nport Administrator, как я уже говорил, ничего не дали.
А вот после перезагрузки Moxa NPort 5630-16 проблема исчезла. В общем вопрос на настоящий момент можно считать закрытым. Жаль только не удалось установить причину этого глюка. Какое событие именно привело к нестандартной работе порта.

Спасибо за помощь!