Перегружен процессор

Простейшие вопросы в области инженерной разработки

Перегружен процессор

Postby AlexOskar on 18 Jun 2017, 10:20

Здравствуйте форумчане!
Создал VI с несколькими режимами работы, но столкнулся с проблемой - один из режимов очень сильно загружает процессор (колеблется от 88 до 100%). Перепробовал и перечитал много всего, но ничего не помогает (увеличение задержек в цикле только замедляет скорость колебания загрузки процессора). Да и сложного, на мой взгляд, ничего в цикле не вычисляется.
Проблемным является цикл CONTROL LOOP. Если запустить VI в режиме "Автоматическое управление", то начнет работать цикл внутри кейса "Automatic control". С этого момента и начинается сильная загрузка ЦП. При переходе в режим "Ручное управление" (кейс "Manual control") - все становится отлично (загрузка ЦП не более 15%).
Подскажите, пожалуйста, что так сильно грузит ЦП и как это можно поправить?
Last edited by AlexOskar on 21 Jun 2017, 16:06, edited 1 time in total.
AlexOskar
user
user
 
Posts: 89
Joined: 05 Jul 2016, 21:02
LabVIEW Version: 12
Karma: 6

Re: Перегружен процессор

Postby alex3f on 19 Jun 2017, 08:12

Попробуйте убрать узлы свойств "Галка РУЧ" и "Галка АВТ" из цикла.
alex3f
beginner
beginner
 
Posts: 13
Joined: 23 Aug 2016, 09:16
LabVIEW Version: 2016
Karma: 5

Re: Перегружен процессор

Postby Shurik_85 on 19 Jun 2017, 15:39

Может стоит как-то синхронизировать между собой значения входных параметров TimeUot функции "Wait on Notification Function", "Wait" во внутреннем и во внешнем цикле. А то они все по 250 мс, и в случае если "Wait on Notification Function" получает уведомление на 250-ой мс (например), то на выполнение остальной части кода внутреннего цикла времени уже нет (т.к. "Wait" уже отмерила свои 250 мс, поскольку запустилась она одновременно с "Wait on Notification Function"), то же касается и "Wait" во внешнем цикле, которая запустилась одновременно с "Case" вашего автомата состояний (здесь состояние только усугубляется, если внутренний цикл прокрутился не один раз). Соответственно, раз время "Wait" истекло, то проц будет пытаться выполнить все (хоть и не сложные) оставшиеся операции за максимально короткое время, и нагружаться на все 100 % как во внутреннем, так и во внешнем цикле.
Кстати, изменение свойств видимости элементов фронтальной панели через узлы свойств тоже нормально добавляет работы процу, особенно если по времени "завал".

Так что как-то нужно как-то ручками синхронизировать работу перечисленных функций:
- может быть явно заставить их работать последовательно;
- может быть подобрать правильные задержки;
- может менять входной параметр функций "Wait" в зависимости от того выполнилось ли условие TimeOut у "Wait on Notification Function", или смотреть выполнять/не выполнять её вообще;
- может гарантировать генерацию уведомлений чаще (не реже), чем раз в 200 мс (меньше 250);
- ...

А вообще если, то как-то не очень запускать "цикл в цикле" при использовании автомата состояний. Не дождался уведомления на текущей итерации - не делай ничего, выйди из кейса и зайди в него же на следующей итерации внешнего цикла. Как-то так.
Shurik_85
beginner
beginner
 
Posts: 43
Joined: 13 Apr 2014, 18:53
LabVIEW Version: 14
Karma: 6

Re: Перегружен процессор

Postby Artem.spb on 20 Jun 2017, 11:59

Artem.spb
expert
expert
 
Posts: 1252
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 218
CLD hardware I/O VIP freelance

Re: Перегружен процессор

Postby AlexOskar on 21 Jun 2017, 09:46

AlexOskar
user
user
 
Posts: 89
Joined: 05 Jul 2016, 21:02
LabVIEW Version: 12
Karma: 6

Re: Перегружен процессор

Postby Shurik_85 on 23 Jun 2017, 15:21

Shurik_85
beginner
beginner
 
Posts: 43
Joined: 13 Apr 2014, 18:53
LabVIEW Version: 14
Karma: 6

Re: Перегружен процессор

Postby Kosist on 24 Jun 2017, 11:00

Нужно обращаться "к истокам" - вот ведь все расписано - http://digital.ni.com/public.nsf/allkb/ ... 57004DD8E2
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 787
Joined: 21 Feb 2011, 23:44
Location: СумГУ
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 236
CLAD I/O VIP students


Return to Для чайников

Who is online

Users browsing this forum: Baidu, Yahoo and 17 guests

cron