Antimalware Windows 10

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

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

    В новом проекте, в котором используется 12 линий связи и соответственно 12 эмуляторов для генерации данных по 100 значений на каждом (4 линии пока простаивают, так как не имеют доступ к эмуляторам), стало активно кушаться ЦП. И это наглядно видно в диспетчере задач (до 100%).

    https://pastenow.ru/e78d7f25b30eeedd907f05663363ce6e

    Собственно, отключая защиту в реальном времени в настройках Windows 10 получаем следующую картину:

    https://pastenow.ru/8d03f2a2514c268791196540f741cb1e

    Что уже получше.

    Либо можно отключить службу ScadaCommService и тогда совсем полегчает, но это к сожалению не вариант 🙂

    Параметры компьютера:
    Intel Core i3-4170 CPU @ 3.70GHz
    8 Гб оперативной памяти
    64-разрядная система

    • Тема изменена 5 лет, 9 месяцев назад пользователем vg.
    • Тема изменена 5 лет, 9 месяцев назад пользователем vg.
    #17442
    Mikhail
    Модератор

    Добрый день!

    Какой драйвер используется в Коммуникаторе?
    Сделайте, пожалуйста, скриншот настроек одной из линий.
    Приведите часть журнала линии связи.

    #17448
    vg
    Участник

    Для всех линий связи используется драйвер KpModbus.dll (за исключением SMS-оповещения, там используется KpSms.dll).

    Опрос КП — https://pastenow.ru/42885dfdbd3e088f1bc1887676608c1f
    Основные настройки — https://pastenow.ru/648caf8ed2e21354c93e2ecb4cc99501

    #17449
    vg
    Участник

    P.S.
    Журнал линии связи — https://pastenow.ru/fb02bca94bb0ddd42aa182b2eb73c47e

    #17450
    vg
    Участник

    В Журнале коммуникатора по несколько раз в секунду появляется сообщение «Получена неактуальная команда из файла: команда управления приложением».

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

    Поставьте поле Пауза хотя бы 50 мс. Лучше 200 мс. Это должно снизить нагрузку на процессор.

    Получена неактуальная команда из файла: команда управления приложением

    Очистите папку C:\SCADA\ScadaComm\Cmd
    Такого в журнале быть не должно в постоянном режиме.

    #17453
    vg
    Участник

    Устройства, с которыми я работаю производят 2 измерения в секунду по каждому каналу. Собственно если я делаю паузу 0, то обновление данных в линии связи происходит соответственно. Если выставляю паузу 50мс, то 1 раз в 3 секунды, если 200, то 1 раз в 5 секунд.

    Сейчас я использую эмулятор, который выдаёт по 100 с небольшим параметров с каждого «устройства», но на одном канале не более 34 значений.

    #17455
    vg
    Участник

    Также при попытке остановки службы ScadaServer(спустя какое то время работы) появляется ошибка:
    https://pastenow.ru/4f2b9a3767670489bfe7474ca34bdbf0

    Вероятно это связано.

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

    Также при попытке остановки службы ScadaServer

    Нужно смотреть, что в ScadaServer.log

    с которыми я работаю производят 2 измерения в секунду по каждому каналу. Собственно если я делаю паузу 0, то обновление данных в линии связи происходит соответственно

    Скорость измерения вряд ли зависит от скорости опроса. Чтобы разгрузить CPU, необходима пауза.

    #17474
    vg
    Участник

    А вы пробовали «нагруженные» проекты запускать с паузой 0? Интересно, та же ситуация возникнет или проблема в моей конфигурации?

    #17476
    vg
    Участник

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

    Я понимаю работу следующим образом при настройках (Таймаут 1000мс, Пауза 200мс):
    В течение секунды система ждёт ответа от устройства. После приёма данных срабатывает пауза в 0.2 секунды, затем начинается новый период опроса, равный одной секунде.

    Но по скорости обновления журнала событий я подозреваю, что чтение происходит по группам элементов и пауза выставляется после чтения каждой группы. У меня в шаблоне устройства 23 группы элементов. Если выставить после каждой паузу в 0.2 секунды, то 4.6 секунды паузы в сумме + 0.5 секунды на сами измерения (частота «измерений» моего эмулятора) дают 5.1 секунды на один цикл.

    Верна ли моя догадка?

    Если да, то подскажите пожалуйста как считать большое количество данных в течение 0.5 секунды без разгона нагрузки ЦП до 100% ?

    • Ответ изменён 5 лет, 9 месяцев назад пользователем vg.
    #17481
    Mikhail
    Модератор

    В течение секунды система ждёт ответа от устройства.

    Если ответ получен, то ожидание ответа прекращается.

    чтение происходит по группам элементов и пауза выставляется после чтения каждой группы

    Именно так и происходит.

    как считать большое количество данных в течение 0.5 секунды без разгона нагрузки ЦП до 100%

    1. Можно попробовать найти компромисс в продолжительности паузы.
    2. Там где возможно, объединить группы элементов, даже если придётся считать несколько лишних регистров.
    3. На общую скорость сильно влияет задержка ответа контроллера.
    4. Если важно быстро получить изменение регистра после команды, то можно разбить один шаблон на несколько, чтобы после команды быстрее опрашивался нужный регистр.

    А вы пробовали «нагруженные» проекты запускать с паузой 0?

    Были разные эксперименты. Сейчас уже не вспомню, к сожалению. Эксперименты возобновятся при разработки нового поколения Коммуникатора.

    Думаю, что Вам нужно записать результаты эксперимента:
    1. Длительность 100 сеансов при паузе 0.
    2. Длительность 100 сеансов при паузе 50.
    3. Длительность 100 сеансов при паузе 200.
    И загрузка процессора в каждом случае.

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

    Ещё можно убрать подробный журнал линии связи. Но не уверен, что это сильно ускорит. Стоит попробовать.

    #17486
    vg
    Участник

    Благодарю за подробный ответ. Попробую.

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