Сообщение от
SKV
В теме уже 35 сообщений, хотя просмотров моего примера только 2. Забавно.
Сделал на основании своего таймера небольшой блок статистики.
ФБ TimeStatistic позволяет измерять последнее, среднее, минимальное и максимальное время между двумя точками программы.
Для того чтобы это сделать в первой точке нужно вызвать:
TimeStatistic.FirstPoint();
во второй вызвать
TimeStatistic.SecondPoint();
В прикрепленном примере измеряется время скана при этом следует обратить внимание, что сначала вызвается SecondPoint, а затем FirstPoint.
Преимущества данного блока перед блоком статистики, который встроен в конфигуратор ПЛК ОВЕН, в том что он измеряет не только время последнего скана, но также минимально, максимальное и среднее. К тому же в многозадачной системе можно измерять времена скана для каждой задачи.
Измерить время цикла можно и без навороченных таймеров
Код:
(*Время цикла*)
t1:=TIME();
tCycle:= t1 - tmp; (*Время цикла*)
tmp:= t1;
(*КОНЕЦ ВЫЧИСЛЕНИЯ ВРЕМЕНИ ЦИКЛА*)
(*
Здесь строки
прогграммы
*)
tProg:=TIME()-t1; (*Время выполнения программы*)
Последняя строка вычисляет время выполнения программы.
Для вычисления ср, мин, макс. значения можно просто использовать ФБ "STATISTICS_INT" на вход ему подать "Cycle time in 100 mks" из модуля статистики.
И не будет "Преимущества данного блока перед блоком статистики, который встроен в конфигуратор ПЛК ОВЕН, в том что он измеряет не только время последнего скана, но также минимально, максимальное и среднее".