Быстрый Шлюз (инициатор соединения)

Стартовая страница Форумы Понять, как работает ПО Быстрый Шлюз (инициатор соединения)

Просмотр 5 сообщений - с 16 по 20 (из 20 всего)
  • Автор
    Сообщения
  • #21474
    Mikhail
    Модератор

    Добрый день!
    Этот параметр задействован только когда значения передаются периодически по таймеру. Если «при получении», то значения сразу добавляются в очередь на передачу.

    #21479
    vg
    Участник

    Спасибо!

    У меня возникла проблема при тестировании проекта.
    Изначально было 2 стационарных проекта, которые работали нормально.
    Один из них, назовём его «проект 1», опрашивал базу данных и отображал данные с некоторой логикой. Второй , «проект 2», опрашивал устройство по Modbus TCP и также отображал данные и поддерживал некоторую логику. Затем эти проекты захотели объединить под одной крышей. Проект 1 остался без изменений и работает корректно, а для проекта 2 понадобилось немного изменить принцип получения данных с устройства. Как раз для этого и начинал эту тему. В общем с промежуточной машины через Быстрый шлюз данные, полученные с устройства, передаются на главный сервер (на котором размещён объединённый проект). Данные передаются, но дело в том, что журнал событий начал засоряться сообщениями с некоторой периодичностью. А точнее повторением событий по одним и тем же входным каналам. Вчера этот период был 10 секунд, сегодня 1 минута. Причина мне пока неизвестна. А хочется знать 🙂

    События в журнал попадают из входных каналов, у которых стоит галочка «Соб. по изм.». В этих каналах отрабатывает логика, при которой значение канала или статус меняются только если новый статус отличается от предыдущего статуса (статус вычисляется сравнением с порогами). То есть был статус НОРМА, а стал ПРЕДУПРЕЖДЕНИЕ, появилось сообщение в журнале событий.

    public double GetSpeedValue(int status, double value, PreviousStatus prevStatus)
    {
    if (status != prevStatus.PrevSpeedStat)
    {
    prevStatus.PrevSpeedStat = status;
    prevStatus.PrevSpeedValue = value;
    return value;
    }
    else
    {
    return prevStatus.PrevSpeedValue;
    }
    }

    И в стационарной системе повторное сообщение в журнале событий появляется только при отключении от устройства и новом подключении к нему.
    Ошибка «Некорректные данные MBAP Header!».
    При этом отключение и новое подключение происходили в одну секунду. И происходило это очень редко, ни о какой периодичности речи не идёт.
    И в этом случае появление новых сообщений я могу понять, также как и при перезагрузке службы сервера или передачи конфигурации. Параметры были неопределены, стали определены и вот сообщение в журнале событий, так как изменился статус.
    Но на данный момент картина вот такая:
    https://pastenow.ru/0f5ac10938c6f8d87d6db14a9fb62912

    Значения те же, статусы те же. Изменения в журнале между этими «пакетами» событий не зафиксированы. Собственно у меня идеи только в направлении микро приостановок сервера или коммуникатора (логи опроса устройства на промежуточной машине и логи модуля Быстрый шлюз не отображают никаких ошибок, поэтому считаю, что на той стороне всё чисто).

    Даже если допустить, что какие то изменения происходят в значении каналов, то периодичность в 1 минуту и 1 секунду наводят на мысль, что это маловероятно.

    А как узнать информацию о возможных прерываниях при получении данных по Быстрому шлюзу (если допустить, что отправка проходит корректно, то может быть проблема с приёмом) не представляю.

    Главный сервер работает на Windows Server 2019.
    Промежуточный сервер работает на компьютере Q7 с Linux.

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

    На промежуточном сервере установлен Быстрый шлюз, который передаёт данные на главный сервер, верно?

    Избыточные события появляются на каком из серверов?
    Может ли быть так, что события появляются на промежуточном сервере и эти события передаются шлюзом на главный сервер, а главный сервер при этом генерирует ещё и свои события?

    #21487
    vg
    Участник

    Да, Быстрый шлюз установлен на промежуточном сервере и передаёт данные на главный сервер.

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

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

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

    Проверьте на промежуточном сервере, существуют ли файлы событий в директории C:\SCADA\ArchiveDAT\Events ? Если существуют, то нужно посмотреть, какие в них события.

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

Просмотр 5 сообщений - с 16 по 20 (из 20 всего)
  • Вы должны авторизироваться для ответа в этой теме.