PDA

Просмотр полной версии : Релиз библиотеки OwenDebug



Осинский Алексей
07.08.2017, 14:05
Внимание! Общение в этой теме закрыто. Все обсуждения – в СООТВЕТСТВУЮЩЕЙ теме (http://www.owen.ru/forum/showthread.php?t=27202).


Все чаще к нам обращаются клиенты с просьбой помочь разобраться почему в его программе большое время цикла.
Обычно для такого рода задач используют так называемые профилировщики (CODESYS Profiler (https://store.codesys.com/codesys-profiler.html) например).

Для небольших проектов их функционал избыточен и мы предлагаем Вам использовать библиотеку OwenDebugTools.
На текущий момент в ней всего 2 ФБ:
1) TaskInfo, позволяет отображать статистику задачи на визуализации (или использовать ее в коде программы);
2) ExecutionTimer, позволяет измерить время выполнения участка кода и, например, отобразить на визуализации.

Использование ФБ TaskInfo в проекте:
1.1) Для начала необходимо объявить экземпляр ФБ (в глобальных переменных), следующим кодом
g_fbMainTaskInfo : OwenDebug.TaskInfo ('Application','MainTask');
где:
Application - имя приложения («1» на рис. 1.1);
MainTask - имя задачи («2» на рис. 1.1), статистику которой необходимо отслежи-вать (не зависит от регистра).
32486
Рисунок 1.1

1.2) Добавить отдельную задачу, которая будет вызывать ФБ мониторинга задач
32487
Рисунок 1.2

задать для нее имя
32488
Рисунок 1.3

и добавить в нее вызов ФБ (рис 1.4, 1.5).
32489
Рисунок 1.4 Добавление вызова ФБ

32490
Рисунок 1.5 POU для вызова

Для отображения статистики на визуализации выполните следующие шаги:
1.3) Добавьте в проект визуализацию;
1.4) Добавьте на необходимую визуализацию фрейм frm_TaskInfo из библиотеки OwenDebug (рисунок 1.6);
32491
Рисунок 1.6

1.5) Укажите экземпляр ФБ, статистику которого необходимо отображать рис. (1.7).
32492
Рисунок 1.6

1.6) Если имя приложения и задачи указаны верно, то после загрузки проекта в контроллер Вы увидите информацию как на рисунке 1.8.
32493
Рисунок 1.7


Если информация указана не верно – увидите сообщение о том, что задача не найдена.


Использование ФБ ExecutionTimer в проекте:
2.1) Объявить экземпляр таймера
Для начала необходимо объявить экземпляр таймера, следующим кодом
m_fb_ExternalTmer : OwenDebug.ExecutionTimer ('External timer');
В кавычках указывается имя таймера, отображаемое на визуализации. Если использование таймера с визуализацией не планируется – оставьте пустые кавычки.

2.2)
До участка кода, время выполнения которого необходимо отслеживать, напишите код
m_fb_ExternalTmer.start();
а после участка кода, время выполнения которого необходимо отслеживать, напишите код
m_fb_ExternalTmer.stop();

Для отображения статистики на визуализации выполните шаги 1.3-1.6, но вместо фрейма frm_TaskInfo добавляйте


Ниже Вы сможете найти пример, который демонстрирует все описанное выше.
32494

В дальнейшем мы будем дорабатывать библиотеку, добавляя в нее новые функции и функциональные блоки для того, чтобы упростить Вам написание программ.




Скачать последнюю версию:

32495



Версия
Дата
Список изменений


3.5.4.1
7.08.2017

Первая версия библиотеки











Если есть идеи о том, какой функционал стоит добавить в этот пример – смело пишите в теме для ОБСУЖДЕНИЯ (http://www.owen.ru/forum/showthread.php?t=27202).

P.S. В этой теме будут только обновления примера, так что подписывайтесь на тему, чтобы быть в курсе обновлений.