Уважаемые коллеги.
Столкнулся с такой проблемой:
Использую ПЛК207.03.CS.WEB, Codesys v3.5 SP4.
Всё работает нормально, пока не активировано сохранение алармов в AlarmStorage.
Контроллер работает до возникновения события, которое должно быть записано в файл БД sqlite3.
После этого по логу консоли видно, что в Linux'е пишет:
sched: RT throttling activated,
потом активируется oom-killer
dropbear invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0
, который, как следует из его описания, при нехватке виртуальной памяти выбирает
самый плохой/ненужный процесс и убивает его для освобождения памяти.
И конечно он выбирает именно codesyssp
Out of memory: Kill process 527 (codesyssp) score 833 or sacrifice child
Killed process 527 (codesyssp) total-vm:58848kB, anon-rss:24900kB, file-rss:28652kB
Т.е. CodeSys "самоликвидируется".
После этого контроллер "висит", хотя Linux в консоли и продолжает работать.
Причём файл БД успешно сохраняется при этом, хотя и с пустыми таблицами.
Пробовал указывать в качестве места для хранения AlarmStorage и внутреннюю память и USB- диск и SD- карту
- результат один и тот же.
Подскажите, что я делаю не так?
Где проблема: в Codesys, target или в прошивке СПК207?
Во вложениях :
log.txt - лог консоли Linux
Архивация.Jpg - скриншот - установлена галочка "Архивация" для "Warnings" и только для них, для "Errors" и "Info" она не установлена и с последними проблем нет.
AlarmGroup.jpg -скриншот - "Warning", ID 25 - проблеммный.
AlarmStorage.jpg -скриншот - сконфигурирована Субдиректория для БД - пробовал каталог в ПЛК и symbolink на SD card - результат один.