При эксплуатации или разработке ПО в среде CODESYS, могут наблюдаться ошибки чтения базы данных Trends или Alarm. Все они, как правило, приводят к аварийному завершению визуализации ПЛК и сопровождаются аварийным сообщением выделенным красным цветом на сером фоне экрана. Сам Runtime при этом продолжает работать, целевое ПО тоже.
Ошибки могут иметь и другой вид, иногда можно увидеть красные надписи в элементе чтения графиков или в таблице тревог, это уже может говорить о проблеме c SD накопителем. Все тревоги и тренды пишутся по умолчанию на SD карту ПЛК.
Ниже приведено решение по восстановление работоспособности трендов и тревог.
4. В проекте создать функцию restart
Определение функции.
FUNCTION restart : RTS_IEC_RESULT
var
sCommand :string := 'systemctl restart codesys ';
end_var
Тело функции.
// перезапуск RunTime Codesys
SysProcessExecuteCommand(pszComand := sCommand, pResult := ADR(restart));
SysProcessExecuteCommand - функция библиотеки SysProcess(System) версия 3.5.7.0. Данную библиотеку необходимо добавить в проект
через менеджер библиотек, командой "Добавить библиотеку".
Далее в проекте, например в системном меню создать кнопку "Перезапуск Runtime", на кнопку добавить обработчик по клику мыши, выбрать функцию ST код, в текстовом редакторе "Выполнить ST-код", добавить вызов функции restart. Закрыть редактор нажатием кнопки "ОК".

Теперь по нажатию по кнопке в работающем проекте будет происходить перезапуск runtime Codesys. После того как выполнены пункты 1-4, проект нужно снова загрузить в ПЛК, после того, как проект запустился, нажать кнопку "Перезапуск Runtime", которую добавили ранее.
После этого тренды и тревоги будут работать исправно, история будет сохраняться в базу данных на SD карту. Если процессе отладки ПО, проблема с трендами и тревогами повторится, процедуру нужно выполнить заново.
Если SD карта форматируется в процессе работы основного ПО, где уже используются тренды или тревоги, то после форматирования обязательно требуется заводской сброс устройства из среды CODESYS и новая загрузка ПО в ПЛК или обновление ПО через системную утилиту, через раздел "Обновление", так как базы данных создаются только в момент загрузки ПО из среды разработки, если этого не выполнить, то будут получены выше перечисленные проблемы.
Обновление проекта CODESYS c использованием системной утилиты - Форум КБ АГАВА
Ошибки могут иметь и другой вид, иногда можно увидеть красные надписи в элементе чтения графиков или в таблице тревог, это уже может говорить о проблеме c SD накопителем. Все тревоги и тренды пишутся по умолчанию на SD карту ПЛК.
Ниже приведено решение по восстановление работоспособности трендов и тревог.
- Убедиться что SD карта имеет не более 1 раздела.
- Перейти в системную утилиту ПЛК в раздел накопители, отформатировать SD карту в файловую систему ext4
- Открыть проект в среде CODESYS, в котором используются тренды или тревоги и выполнить команду «Сброс заводской устройства [Device]» и заново загрузить проект в ПЛК.
4. В проекте создать функцию restart
Определение функции.
FUNCTION restart : RTS_IEC_RESULT
var
sCommand :string := 'systemctl restart codesys ';
end_var
Тело функции.
// перезапуск RunTime Codesys
SysProcessExecuteCommand(pszComand := sCommand, pResult := ADR(restart));
SysProcessExecuteCommand - функция библиотеки SysProcess(System) версия 3.5.7.0. Данную библиотеку необходимо добавить в проект
через менеджер библиотек, командой "Добавить библиотеку".
Далее в проекте, например в системном меню создать кнопку "Перезапуск Runtime", на кнопку добавить обработчик по клику мыши, выбрать функцию ST код, в текстовом редакторе "Выполнить ST-код", добавить вызов функции restart. Закрыть редактор нажатием кнопки "ОК".
Теперь по нажатию по кнопке в работающем проекте будет происходить перезапуск runtime Codesys. После того как выполнены пункты 1-4, проект нужно снова загрузить в ПЛК, после того, как проект запустился, нажать кнопку "Перезапуск Runtime", которую добавили ранее.
После этого тренды и тревоги будут работать исправно, история будет сохраняться в базу данных на SD карту. Если процессе отладки ПО, проблема с трендами и тревогами повторится, процедуру нужно выполнить заново.
Если SD карта форматируется в процессе работы основного ПО, где уже используются тренды или тревоги, то после форматирования обязательно требуется заводской сброс устройства из среды CODESYS и новая загрузка ПО в ПЛК или обновление ПО через системную утилиту, через раздел "Обновление", так как базы данных создаются только в момент загрузки ПО из среды разработки, если этого не выполнить, то будут получены выше перечисленные проблемы.
Обновление проекта CODESYS c использованием системной утилиты - Форум КБ АГАВА
