Отладка 4diac приложений
Уровни логирования FORTE
# Запуск с подробным логированием
forte --loglevel DEBUG
# Уровни: FATAL, ERROR, WARNING, INFO, DEBUG, TRACE
Лог FORTE
[INFO] Starting 4diac FORTE Runtime
[INFO] Waiting for connections on port 61499
[DEBUG] FB E_CYCLE: Event EO triggered
[DEBUG] FB MY_FB: Algorithm MAIN executed
[ERROR] Connection failed: timeout
Типичные проблемы и решения
FB не получает события
Причина: Неправильное соединение или FB не запущен.
Решение:
- Проверьте Watch Mode — есть ли события на выходе источника?
- Убедитесь, что ресурс запущен (зелёный статус)
- Проверьте маппинг FB на правильный ресурс
Данные не обновляются
Причина: Событие приходит, но данные не сопровождают его.
Решение: В IEC 61499 данные передаются только вместе с событием. Убедитесь, что соединения по данным привязаны к нужным событиям через With ассоциации.
FORTE падает при старте ресурса
Причина: Ошибка в алгоритме или неправильный тип данных.
Решение:
# Смотрим детальный лог
forte --loglevel DEBUG 2>&1 | grep ERROR
Проблема производительности
# Профилирование на Linux
perf record -g ./forte
perf report
Мониторинг событий и данных (Event/Data Flow)
Трассировка событий
В Debug Perspective можно отслеживать поток событий через FB-сеть:
- Правый клик на FB → Watch All — показывает все входы/выходы
- Счётчики событий показывают количество срабатываний каждого события
- Значения данных обновляются в реальном времени
Анализ event-data ассоциаций
Частая ошибка: данные не обновляются, хотя событие приходит.
Симптом: OUT всегда = 0, хотя EO срабатывает
Причина: Нет WITH-ассоциации между EO и OUT
Проверка:
1. Откройте определение типа FB (Ctrl+клик на имени типа)
2. Проверьте вкладку Interface → WITH-connections
3. Убедитесь, что выходное событие связано с выходными данными
Принудительное задание значений
В Debug Perspective:
- Force Value — задать фиксированное значение входу данных
- Trigger Event — вручную сгенерировать входное событие
Это позволяет тестировать отдельные FB без полной развёрнутой системы.