Вложений: 10
Релиз библиотеки OwenDebug
Внимание! Общение в этой теме закрыто. Все обсуждения – в СООТВЕТСТВУЮЩЕЙ теме.
Все чаще к нам обращаются клиенты с просьбой помочь разобраться почему в его программе большое время цикла.
Обычно для такого рода задач используют так называемые профилировщики (CODESYS Profiler например).
Для небольших проектов их функционал избыточен и мы предлагаем Вам использовать библиотеку 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
В дальнейшем мы будем дорабатывать библиотеку, добавляя в нее новые функции и функциональные блоки для того, чтобы упростить Вам написание программ.
|
Скачать последнюю версию:
|
Если есть идеи о том, какой функционал стоит добавить в этот пример – смело пишите в теме для ОБСУЖДЕНИЯ.
P.S. В этой теме будут только обновления примера, так что подписывайтесь на тему, чтобы быть в курсе обновлений.