Опрос КП при ошибке связи

Стартовая страница Форумы Разработка и интеграция Опрос КП при ошибке связи

Просмотр 15 сообщений - с 1 по 15 (из 19 всего)
  • Автор
    Записи
  • #12231
    manjey73
    Участник

    В настройках Параметра линии установлено Количество попыток запроса при ошибке = 3

    Линии настроена как TCP Client, но при ошибке не происходит повторного запроса.

    Почему ? В драйвере при нескольких запросах и хотя бы одной ошибке на любой из запросов счетчик Сеанса связи ошибок увеличивается.

    #12236
    manjey73
    Участник

    Установил галочку «Оставаться на связи», при ошибке линии происходит отключение от узла. Повторного чтения по ошибке не происходит.

    Опрос каждые 5 минут выставлен.

    Как при при ошибке должен проводиться опрос согласно выставленным параметрам Количество попыток запроса при ошибке = 3. Почему не происходит ?

    #12239
    Mikhail
    Модератор

    О каком драйвере идёт речь?

    #12243
    manjey73
    Участник

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

    Может в коде что надо добавлять для этого ?

    #12245
    manjey73
    Участник

    И не зависит от установки «Оставаться на связи».

    #12247
    Mikhail
    Модератор

    Реализация параметра количества запросов должна быть в коде Вашего драйвера.
    Пример здесь и здесь.

    #12248
    manjey73
    Участник

    Повторный опрос происходит не по lastCommSucc = false; ? как-то надо заставлять повторять опрос ?

    то есть это не на уровне Коммуникатора происходит ?

    • Ответ изменён 7 лет, 2 месяца назад пользователем manjey73.
    #12252
    manjey73
    Участник

    Хм, без комментариев ничего толком не понял в коде…
    Можно сделать комментарии более подробно для указанных примеров как это работает ?

    Каким образом это связано с параметром количества опросов при ошибках в Коммуникаторе ?

    #12255
    Mikhail
    Модератор

    это не на уровне Коммуникатора происходит ?

    На уровне драйвера.

    Каким образом это связано с параметром количества опросов при ошибках в Коммуникаторе ?

    Найдите код методов RequestNeeded() и FinishRequest() в проекте ScadaCommCommon, думаю это прояснит ситуацию.

    #12257
    manjey73
    Участник

    А, спасибо… А то ползая по ГИТу непонятно, откуда ноги растут, надо будет на ПК смотреть, скачав…

    #12269
    Mikhail
    Модератор

    Да, на GitHub код смотреть не удобно, потому что нет навигации между методами и классами и нельзя сворачивать блоки.

    #12335
    manjey73
    Участник

    Не понимаю кода…. KpModbusLogic

    Вот по этой ссылке есть код
    while (elemGroupInd < elemGroupCnt && lastCommSucc)

    А кто определил, что lastCommSucc = true ?, а если у меня несколько запросов в группе элементов и один из запросов не вернул true, ну ошибка CRC или timeout-а и что, опрос прекращается.

    Или я что-то не догоняю опять с этим lastCommSucc ????? ведь если он не будет true то не будет выполняться while и не произойдет опроса из очередной группы элементов ?

    #12343
    Mikhail
    Модератор

    1. Сначала чуть выше lastCommSucc = false;
    2. Если запрос выполнился успешно, то lastCommSucc = true и мы переходим к запросу следующей группы элементов, то есть идём на п.1 этого списка.

    А если мы 3 раза сделали запрос, но неудачно, то мы выпадаем из while (elemGroupInd < elemGroupCnt && lastCommSucc), потому что lastCommSucc == false

    #12345
    manjey73
    Участник

    Вот и вопрос. у нас 5 запросов, 1,2 удачные, 3 нет, и мы выпали вообще не прочитав 4 и 5 ? и где логика если связь может восстановиться ? мы потеряли 2 запроса. а если запросов куда больше и неудачный в начале, то потеряли все остальные?

    • Ответ изменён 7 лет, 2 месяца назад пользователем manjey73.
    • Ответ изменён 7 лет, 2 месяца назад пользователем manjey73.
    #12360
    Mikhail
    Модератор

    у нас 5 запросов, 1,2 удачные, 3 нет, и мы выпали вообще не прочитав 4 и 5 ?

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

Просмотр 15 сообщений - с 1 по 15 (из 19 всего)
  • Для ответа в этой теме необходимо авторизоваться.