Я Вам сегодня ответил на e-mail. Проверьте пожалуйста и давайте локализовать проблему вместе.
Для начала нам нужно понять что зависает, потом будем разбираться почему.
Отключайте части программы и смотрите, в который момент проект перестанет зависать - значит последняя из отключенных частей приводила к зависанию.
Возможно Евгений прав и проблема из-за некорректной работы с файлами.
Есть возможность определить к-вот открытых файлов можно по следующему методу:
Код:
1) подключиться с использованием putty;
2) выполнить команду "ps";
3) найти процесс с именем codesyssp, и запомнить его PID;
4) выполнить команду "ls /proc/PID/fd", где PID - ID процесса из 3 шага;
5) запомнить максимальное число, которое выведет команда
В общем случае к-во открытых файлов в системе не переваливает за 100, если у Вас перевалит за 300-500 и будет увеличиваться со временем, то явно проблема в файлах.
Если Вы используете библиотеку SPK_Tools версии 1.3.12, то объявите экземпляр ФБ:
Код:
fb_HandleCount:FileHandles;
и вызывайте циклически код
Код:
fb_HandleCount.xStart := TRUE;
fb_HandleCount();
if fb_HandleCount.xDone then
//организуйте задержку перед следующим вызовом ФБ для избежания перегрузки процессора, после окончания задержки выполните код
fb_HandleCount.xStart := FALSE;
fb_HandleCount();
end_if
Отобразите на визуализации значение переменной fb_HandleCount.wHandlesCount
и следите за его изменением. Если значение будет расти - проблема в работе с файлами.
В будущих прошивках этот функционал будет поддержан в таргет-файле и эти танцы не будут нужны.
И да, в общем случае, одного обращения более чем достаточно, нет смысла писать сразу везде. Это не ускорит решение Вашего вопроса.