Стартовая страница › Форумы › Понять, как работает ПО › Antimalware Windows 10
- В этой теме 13 ответов, 2 участника, последнее обновление 5 лет, 9 месяцев назад сделано
vg.
-
АвторЗаписи
-
24.10.2020 в 11:20 #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-разрядная система25.10.2020 в 11:28 #17442
MikhailМодераторДобрый день!
Какой драйвер используется в Коммуникаторе?
Сделайте, пожалуйста, скриншот настроек одной из линий.
Приведите часть журнала линии связи.29.10.2020 в 14:54 #17448vg
УчастникДля всех линий связи используется драйвер KpModbus.dll (за исключением SMS-оповещения, там используется KpSms.dll).
Опрос КП — https://pastenow.ru/42885dfdbd3e088f1bc1887676608c1f
Основные настройки — https://pastenow.ru/648caf8ed2e21354c93e2ecb4cc9950129.10.2020 в 15:01 #17449vg
УчастникP.S.
Журнал линии связи — https://pastenow.ru/fb02bca94bb0ddd42aa182b2eb73c47e29.10.2020 в 15:03 #17450vg
УчастникВ Журнале коммуникатора по несколько раз в секунду появляется сообщение «Получена неактуальная команда из файла: команда управления приложением».
29.10.2020 в 15:42 #17451
MikhailМодераторПоставьте поле Пауза хотя бы 50 мс. Лучше 200 мс. Это должно снизить нагрузку на процессор.
Получена неактуальная команда из файла: команда управления приложением
Очистите папку C:\SCADA\ScadaComm\Cmd
Такого в журнале быть не должно в постоянном режиме.29.10.2020 в 17:19 #17453vg
УчастникУстройства, с которыми я работаю производят 2 измерения в секунду по каждому каналу. Собственно если я делаю паузу 0, то обновление данных в линии связи происходит соответственно. Если выставляю паузу 50мс, то 1 раз в 3 секунды, если 200, то 1 раз в 5 секунд.
Сейчас я использую эмулятор, который выдаёт по 100 с небольшим параметров с каждого «устройства», но на одном канале не более 34 значений.
29.10.2020 в 17:24 #17455vg
УчастникТакже при попытке остановки службы ScadaServer(спустя какое то время работы) появляется ошибка:
https://pastenow.ru/4f2b9a3767670489bfe7474ca34bdbf0Вероятно это связано.
30.10.2020 в 16:30 #17456
MikhailМодераторТакже при попытке остановки службы ScadaServer
Нужно смотреть, что в ScadaServer.log
с которыми я работаю производят 2 измерения в секунду по каждому каналу. Собственно если я делаю паузу 0, то обновление данных в линии связи происходит соответственно
Скорость измерения вряд ли зависит от скорости опроса. Чтобы разгрузить CPU, необходима пауза.
02.11.2020 в 13:20 #17474vg
УчастникА вы пробовали «нагруженные» проекты запускать с паузой 0? Интересно, та же ситуация возникнет или проблема в моей конфигурации?
02.11.2020 в 14:08 #17476vg
УчастникВыставление паузы снижает нагрузку на ЦП, но не понимаю из-за чего замедляется обновление данных.
Я понимаю работу следующим образом при настройках (Таймаут 1000мс, Пауза 200мс):
В течение секунды система ждёт ответа от устройства. После приёма данных срабатывает пауза в 0.2 секунды, затем начинается новый период опроса, равный одной секунде.Но по скорости обновления журнала событий я подозреваю, что чтение происходит по группам элементов и пауза выставляется после чтения каждой группы. У меня в шаблоне устройства 23 группы элементов. Если выставить после каждой паузу в 0.2 секунды, то 4.6 секунды паузы в сумме + 0.5 секунды на сами измерения (частота «измерений» моего эмулятора) дают 5.1 секунды на один цикл.
Верна ли моя догадка?
Если да, то подскажите пожалуйста как считать большое количество данных в течение 0.5 секунды без разгона нагрузки ЦП до 100% ?
-
Ответ изменён 5 лет, 9 месяцев назад пользователем
vg.
02.11.2020 в 17:45 #17481
MikhailМодераторВ течение секунды система ждёт ответа от устройства.
Если ответ получен, то ожидание ответа прекращается.
чтение происходит по группам элементов и пауза выставляется после чтения каждой группы
Именно так и происходит.
как считать большое количество данных в течение 0.5 секунды без разгона нагрузки ЦП до 100%
1. Можно попробовать найти компромисс в продолжительности паузы.
2. Там где возможно, объединить группы элементов, даже если придётся считать несколько лишних регистров.
3. На общую скорость сильно влияет задержка ответа контроллера.
4. Если важно быстро получить изменение регистра после команды, то можно разбить один шаблон на несколько, чтобы после команды быстрее опрашивался нужный регистр.А вы пробовали «нагруженные» проекты запускать с паузой 0?
Были разные эксперименты. Сейчас уже не вспомню, к сожалению. Эксперименты возобновятся при разработки нового поколения Коммуникатора.
Думаю, что Вам нужно записать результаты эксперимента:
1. Длительность 100 сеансов при паузе 0.
2. Длительность 100 сеансов при паузе 50.
3. Длительность 100 сеансов при паузе 200.
И загрузка процессора в каждом случае.02.11.2020 в 17:46 #17482
MikhailМодераторЕщё можно убрать подробный журнал линии связи. Но не уверен, что это сильно ускорит. Стоит попробовать.
02.11.2020 в 20:12 #17486vg
УчастникБлагодарю за подробный ответ. Попробую.
-
Ответ изменён 5 лет, 9 месяцев назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.