Ошибка активации порта опроса

Добрый день!
Чем может быть вызвана появившаяся вдруг проблема. Диспетчерский модем всегда использовался в т.ч. и другими программами. Для ручного опроса в ЛЭРС достаточно было перенастроить модем – Сервис -Настройка модемов – Диспетчерский модем и с опросом проблем не возникало. Сейчас же, ситуация следующая: Допустим, модем был настроен для PROLOGa, запускаю ЛЭРС, настраиваю модем как диспетчерский, включаю опрос и ошибка: «Опрос невозможен, т.к. отсутствуют активные порты опроса с подходящим подключением», иду в службы опроса и действительно состояние порта (не активирован), серый смайлик. Тут два варианта, можно просто перегрузить комп и тогда состояние порта поменяется на ГОТОВ или удалить порт опроса и создать новый, но важно, чтобы модем был уже настроен ЛЭРС как диспетчерский, иначе в обоих вариантах порт опять будет не активирован. Что с этим делать?

Одновременное использование одного модема в нескольких программах возможно только последовательно: сначала его занимает одна программа, потом она его освобождает и его может занять другая программа. Параллельное использование одного диспетчерского модема в нескольких программах невозможно в принципе.
Соответственно на момент попытки активации порта опроса, на котором заведен ваш диспетчерский модем, соответствующий COM-порт должен быть открыт. Судя по всему “раньше” на момент активации данного порта Службой опроса “другие программы” успевали его освободить, а сейчас по какой то причине они не успевают этого сделать. Вам нужно выяснить какая именно программа занимает порт диспетчерского модема.

Формулирую по другому. Включаю компьютер, запускаю ЛЭРС – Захожу в - Служба и порты опроса - состояние COM1 – не активен. Для активации удаляю этот порт опроса и затем создаю новый с теми же параметрами порта. Причем, если модем до включения компьютера был сброшен на заводские настройки, созданный порт опроса будет снова не активен. Для активации опять приходится удалять существующий порт, настраивать ЛЭРСом модем как диспетчерский и создавать новый порт. И конечно, ни одна программа модем параллельно с ЛЭРС не использует в это время, в противном случае сервис по настройки модемов не получил бы доступ к порту. До обновления ЛЭРС таких проблем вообще не возникало.

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

Если смотреть файл PollService.2021-09-08.log. Модем был в заводских настройках, в 16:10 я включил комп., запустил ЛЭРС, com1 был не активен. Запустил настройку модемов, настроил как диспетчерский, перегрузил комп в 16:15, запускаю ЛЭРС com1 активен.
PollService_Error.2021-09-08.log (3.66 KB)
PollService.2021-09-08.log (12.3 KB)

По присланному журналу работы Службы опроса видно, что в 16:11 (практически сразу после первого запуска Службы опроса из вашего описания) возникла ошибка определения модема на порту:

08-09-2021 16:11:49.292 E Ошибка определения модема на порту GSM. Модем Siemens не обнаружен PollerCore.Poller

То есть модем на стандартные запросы модемов Siemens не отвечал, в результате чего порт не был активирован.
А вот в 16:16, получается после его перенастройки в утилите настройки модемов, он уже корректно ответил на запросы модемов Siemens и порт активировался:

08-09-2021 16:16:46.786 I COM1: уровень сигнала: 23 CSQ (-67 dBm), 74% от максимального. PollerCore.Communication.GsmCommandRunner

Нам неизвестно по какой причине модем в какой-то момент перестает отвечать на запросы модемов Siemens и ему требуется дополнительная настройка. Предположу, что на нем происходит какой то сбой, из-за чего его настройки переходят в изначальное состояние.
По данному вопросу вам нужно обратиться к производителю модема.

Причина не в модеме, я поменял модем на новый IRZ, результат такой же. Если смотреть лог, то с включением комп. запускается служба опроса Lers.PollService и если модем был в заводских или отличных от диспетчерского настройках, то естественно служба к нему подключиться и не может, но ЛЭРС то я еще не запускал, зачем этой службе подключаться к модему до запуска ЛЭРС. Понятно, что после настройки и перезагрузки служба находит и успешно подключается к модему, но это же абсурд, ведь не один же ЛЭРС я использую. Да и не было такой проблемы.
С вашего позволения повторю вопрос – проблему. Всегда было достаточно перед ручным опросом просто настроить модем средствами ЛЭРС как диспетчерский и можно было начинать опрос. Сейчас же после настройки модема я вынужден удалять и создавать заново порт или перегружать комп., так как после настройки модема порт не готов.
PollService_Error.2021-09-09.log (3.65 KB)
PollService.2021-09-09.log (12.3 KB)
dump.GSM.2021-09-09.log (1.99 KB)

Из присланных журнала и дампа видно, что модем не успел ответить за 1000 мс (1 секунда) на команду ATQ0. Уточните, пожалуйста, как именно подключены ваши модемы? Они физически подключены к ПК, на котором установлена ваша Служба опроса, в которой данные модемы заведены? Или физически они подключены к другому ПК / Ethernet-контроллеру (например Moxa), а уже на ПК Службы опроса при помощи сторонних программных средств создается виртуальный COM-порт, связанный по сети с этими модемами, а уже этот виртуальный COM-порт, задается в настройках порта опроса?

Модем (единственный), физически подключен к ПК, служба опроса на этом же ПК, COM не виртуальный. Но я так и не могу понять, как служба опроса может подключаться к ненастроенному модему, понятно же что будет ошибка подключения.

Попробуйте дождаться воспроизведения рассматриваемой ситуации и в утилите настройки модемов отправьте команду ATQ0, желательно несколько раз. Сообщите ответит ли модем на нее и какое среднее время ответа.

Еще раз пробую объяснить. Не понимаю про какое воспроизведение ситуации вы говорите. Ситуация повторяется раз за разом, опрашивал я вечером узлы в программе ПРОЛОГ и модем был настроен для ПРОЛОГА, включаю я утром ПК ситуация - вот она, утром для опроса объектов я открываю ЛЭРС, захожу в настройки модема подключаю его, вот свежий протокол [09:38:33.422] >> ATQ0 [09:38:33.644] << ATQ0 ОK [09:38:34.054] Модем обнаружен. Потом настраиваю модем как диспетчерский, файл протокола настройки прилагается. Захожу в ручной опрос, а там ошибка (см. скрин1). Иду службы и порты опроса, там (скрин2). Смотрю свойства (скрин3 и 4) все в порядке, но ничего не работает. Удаляю и создаю заново порт, и вот все работает (скрин5). Если следующим утром я включу ПК с такими настройками модема, то опрос в ЛЭРС будет работать без проблем.
скрин5.jpg
скрин4.jpg
скрин3.jpg
скрин2.jpg
скрин1.jpg
protokol.txt (7.31 KB)

ЛЭРС УЧЁТ активирует порты опроса при запуске и при создании нового порта опроса.

В вашем случае при запуске службе опроса не удаётся подключиться к модему, поскольку на модеме настроены параметры порта 115200,n,8,1, потому порт и не активируется. Затем вы производите перенастройку модема с параметрами 9600,n,8,1. При удалении и создании порта, служба опроса производит активацию портов и поскольку подключиться к модему удаётся, то порт активируется.

Вы можете обойти возникающую ситуацию тремя способами:

  1. Настроить модем для работы с программой ПРОЛОГ на 9600 бод. В таком случае вам не придётся перенастраивать модем каждый раз при использовании программы ПРОЛОГ и ЛЭРС УЧЁТ.
  2. Перезапускать службу опроса после настройки модема под ЛЭРС УЧЁТ.
  3. Удалять и создавать порт опроса после настройки модема под ЛЭРС УЧЁТ, как вы делаете это сейчас.

В том то и дело, что если посмотреть логи, то служба опроса лезет к модему без запуска ЛЭРС, служба запускается вместе с ПК, не может подключиться к ненастроенному модему, где-то хранит это состояние, ну и далее все было уже описано. Рассмотрите другой пример: перегрузил ПК с настроенным под ЛЭРС модемом, проверил, порт активен, запустил опрос, все работает, затем, без перезагрузки ПК - закрыл ЛЭРС, настроил модем под ПРОЛОГ (115200), запустил ЛЭРС, а порт активен – почему?, ведь по вашим словам служба опроса к нему не может подключиться, т.к. он настроен на 115200, но нет же порт активен, и ручной опрос запускается, конечно, потом при инициализации модема выдается ошибка, так как он не настроен, но служба опроса то работает, почему? Далее, настраиваю модем как диспетчерский на 9600, опрос пошел. Раньше все так и работало уже как с 2015 года, до обновления которое было до 3.41.5 (до 3.41.5, было еще обновление, я могу ошибаться но вроде после него все и перестало нормально работать) не было таких проблем, значит служба опроса как-то справлялась с задачей, а сейчас я должен выписывать коленца используя ваш лицензионный софт. Были же решения более красивые чем удалять порты и перезапускать службы, надо их просто вернуть, либо разобраться в причине.

В этом сообщении вы описали противоположную ситуацию.
Как я сообщал ранее, служба опроса производит активацию портов при запуске и при создании нового порта. В данном случае если служба у вас уже запущена, и после запуска службы вы перенастроили модем под ПРОЛОГ, то порт опроса активен, поскольку служба опроса активировала его ранее.

Опишу принцип работы ещё раз. При запуске службы опроса или создании порта запускается функция активации порта. Если во время выполнения функции получить доступ к модему не получилось, тогда порт не будет активирован.
В первом случае, описанном вами, служба опроса не смогла подключиться к модему во время запуска, поэтому порт и не был активирован.
Во втором случае, описанном вами, при запуске служба опроса активировала порт, поскольку модем был доступен. После того, как вы перенастроили модем на ПРОЛОГ, функция активации портов не запускалась (не происходил запуск службы опроса и не создавался/удалялся порт) и порт не был деактивирован.

Я воспроизвёл ситуацию у себя. Сейчас все работает так же, как вы и описали. Если после того, как служба была запущена, перенастроить скорость порта модема на скорость отличную от 9600, то при попытке запустить опрос возникнет ошибка “Ошибка опроса. Ошибка открытия порта COM1. Порт COM1 занят другой программой или доступ к нему запрещен”, но порт опроса при этом будет активен. Если перенастроить модем опять на скорость 9600, то опросить прибор можно будет успешно.

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

Пролог работает через стандартный драйвер windows. Сбрасываю модем в заводские настройки и все, заводские настройки по умолчанию на 115200, ПРОЛОГ дальше сам выбирает скорость соединения, но это не принципиально, специально для вас, меняю в windows – ТЕЛЕФОН И МОДЕМ – СКОРОСТЬ ПОРТА ДЛЯ МОДЕМА – ВЫСТАВЛЯЮ 9600 (скрин1). Настраиваю модем, см. файл prolog.txt на 9600, ПРОЛОГ работает без проблем, для чистоты эксперимента - перегружаю ПК, повторяю модем уже настроен на 9600, запускаю ЛЭРС и как вы утверждаете порт должен быть активен, но нет, порт не готов, но ведь модем настроен на 9600, см файл lers.txt. Ну а далее опять пляски с бубном, т.к. после его настройки как диспетч. нужно опять удалять порт или перезапускать службу. Если модем не настроен как диспетчерский для ЛЭРС, то служба к нему подключиться не может, ЭТО ЖЕ ОЧЕВИДНО. Я еще раз взываю к разуму и прошу меня услышать, ВСЕ РАБОТАЛО БЕЗ ПРОБЛЕМ (после ПРОЛОГа я просто открывал ЛЭРС настраивал модем как диспетчерский и все, я знать не знал про службы опроса и т.д.) СЕЙЧАС НЕТ, ПРОШУ ВАС ОБЪЯСНИТЬ ПРИЧИНУ ИЛИ ПОМОЧЬ ЕЕ УСТРАНИТЬ.
prolog.txt (392 Bytes)
скрин1.jpg
lers.txt (2.75 KB)

Извиняюсь, при такой настройки порта и модема, служба подключается успешно.

То есть система работает так, как я описал в своём предыдущем сообщении?

Если в windows скорость порта для модема настроена на 9600 и модем настроен как в файле prolog.txt, то и ПРОЛОГ и ЛЭРС работают без последующей настройки модема, служба опроса нормально подключается к порту и кроме того в ЛЭРС я дополнительно не настраиваю модем как диспетчерский, просто запускаю опрос). Верно и другое, если в windows скорость порта для модема настроена на 9600 и в ЛЭРС модем настроен как диспетчерский, то и ПРОЛОГ и конечно ЛЭРС работает без проблем. Для ПРОЛОГА видимо важно равенство скорости настройки порта в windows и самого модема. В заводских настройках модема 115200, потому и порт в windows был на 115200, хотя соединение всегда на 9600. На данный момент все работает без танцев, но все таки было бы интересно получить ответ, почему возникла такая проблема.

Дело в том, что для подключения к устройству должны быть согласованы параметры портов на компьютере и устройстве. ПО (ПРОЛОГ или ЛЭРС УЧЁТ) использует драйвер операционной системы. При этом ЛЭРС УЧЁТ при активации порта опроса настраивает его параметры на 9600,n,8,1, поскольку считает, что на модеме будут настроены такие же параметры.
Программа ПРОЛОГ использует параметры порта из драйвера устройства.

Это понятно, вопрос был в другом, до обновления, ПРОЛОГ всегда работал на 115200, а в ЛЭРС я всегда только перенастраивал модем, соответственно служба как-то могла подключаться к ненастроенному модему, либо подключалась после его настройки, да я и вообще не знал, что есть такая служба, а тут вдруг после обновления служба ЛЭРС перестала подключаться, ну и т.д. отсюда и был вопрос почему.