PDA

Просмотр полной версии : Исключение SIGABRT



Nikitos_Nu
08.10.2024, 10:17
Здравствуйте.
Написал программу с заполнением массива и сохранением в файл. Массив отображается на графике в визуализации. Проверял в эмуляторе - работало нормально. Как начал тестировать программу на СПК110, столкнулся с проблемами.

1. Во время заполнения массива, выскакивает исключение SIGABRT.
7919179192
В интернете нашел, что это исключение переполнения (RTSEXCPT_OVERFLOW := 16#00000103). Проверил все переменные - не заметил ничего криминального.

2. Не работает сохранение рецептов, как показано у Вас в обучающем ролике по Менеджеру рецептов.

Подскажите, пожалуйста, с чем это может быть связано.

Архив проекта https://cloud.mail.ru/public/HNdG/MJVoLscMp

Евгений Кислов
08.10.2024, 11:15
Добрый день.

1.



IF j>=101 THEN
Work2:=FALSE;
//Закрываем файл
SysFileClose(hFile:= hFile);
END_IF


Как только дошли до 101 элемента массива - закрываем файл.
В этот момент полученный при его открытии дескриптор становится невалидным.
На следующем цикле контроллера опять попадаем в этот блок кода.
j всё ещё 101, так что происходит попытка закрытия неоткрытого файла => исключение.

2. У меня в вашем проекте рецепты работают корректно.
Можете связаться со мной по телеграм (см. в подписи), и мы более детально рассмотрим этот вопрос при подключении по AnyDesk.

Nikitos_Nu
08.10.2024, 13:42
Спасибо за помощь.
Оказалось, что рецепты работали. Просто я не там смотрел.