АБАК ПЛК
Руководство по настройке и программированию
×

Функциональные блоки для реализации замеров времени

 
К функциональным блокам для реализации замеров времени относятся:
  • execute_time_check – функциональный блок для замера времени выполнения участка кода, расположенного между вызовом метода getTimeStamp() и вызовом блока execute_time_check.
  • timestampBeforeRead – функция получения метки времени на этапе работы среды выполнения «Before Read Inputs». Её необходимо вызывать в менеджере задач в системных событиях.
  • timestampDeltaRead – функция получения метки времени на этапе работы среды выполнения «After Read Inputs». Её необходимо вызывать в менеджере задач в системных событиях.
  • timestampBeforeWrite – функция получения метки времени на этапе работы среды выполнения «Before Write Ouputs». Её необходимо вызывать в менеджере задач в системных событиях.
  • timestampDeltaWrite – функция получения метки времени на этапе работы среды выполнения «After Write Ouputs». Её необходимо вызывать в менеджере задач в системных событиях.
 
Результаты работы функций записываются в глобальный список переменных библиотеки «profilerData». В проекте к этому списку можно обратиться через «AbakPLCUtils.ProfilerData». В этом списке хранится следующая информация:
  • time_before_read – LTIME – метка времени «До чтения входов»
  • time_after_read – LTIME – метка времени «После чтения входов»
  • time_before_write – LTIME – метка времени «До записи выходов»
  • time_after_write – LTIME – метка времени «После записи выходов»
  • delta_read – LTIME – последняя измеренная длительность этапа чтения входов
  • delta_write – LTIME – последняя измеренная длительность этапа записи выходов
  • max_delta_read – LTIME – максимальная длительность чтения входов
  • max_delta_write – LTIME – максимальная длительность записи выходов
  • delta_total – LTIME – длительность чтения входов + MainTask + последняя измеренная длительность записи выходов
  • max_delta_all – LTIME – максимальная длительность чтения входов + MainTask + длительность записи выходов
 
Функциональный блок «execute_time_check» имеет следующие выходные данные:
  • max_time – LTIME – максимальное время выполнения участка
  • min_time – LTIME – минимальное время выполнения участка
  • last_time – LTIME – время выполнения участка в последнем замере
  • max_time_cycle – LTIME – LTIME#0ns – максимальное время между вызовами блока (интервал последовательных вызовов)
  • min_time_cycle – LTIME – минимальное время между вызовами блока (интервал последовательных вызовов)
  • last_time_cycle – LTIME – время между вызовами блока в последнем замере (интервал последовательных вызовов)
 
Функциональный блок «execute_time_check» имеет следующие методы, необходимые при использовании:
  • метод «getTimeStamp» – вызывается для фиксации начальной временной точки перед контролируемым участком кода.
  • метод «resetData» – сбрасывает результаты измерений до начальных значений.
 
Пример использования описанного функционала с комментариями приведен в AbakController_v1.0.4.0.package в шаблонном проекте ABAKPLC_examples.project (устройство ex_profiler).
Онлайн помощь создана в Dr.Explain