Просмотр полной версии : CAA.File.library: ошибка 5802
GoodLuck
05.12.2014, 09:16
Пытаюсь открыть файл, который записан на SD карте, с помощью библиотеки CAA.File.library. В результате выдает ошибку 5802. В справке кодесиса нет расшифровки для данного кода ошибки.
Не пойму в чем дело, раньше все было нормально, правда с другими SD. Вероятно, все дело в карте памяти, хотя формат карты SDHC, скорость 10.
Но, может быть кто-то знает в чем проблема?
PhilipLykov
04.12.2015, 09:06
Получилось ли у вас решить проблему? У меня такая же ошибка.
Трофимов Артем
04.12.2015, 09:40
судя по вложенным в CAA.File библиотекам - данная ошибка - ошибка хэндла файла
не обнуляется ли он где либо у Вас? есть ли доступ до карты? может она не примонтирована?
21180
PhilipLykov
04.12.2015, 10:27
Артем, спасибо за помощь.
Дело в том что эта ошибка появляется при первом же открытии файла. И соответсвенно хэндл не возвращается.
Трофимов Артем
04.12.2015, 15:07
путь до файла какой у Вас?
тип файла какой?
каковы атрибуты файла?
через winscp файл виден в ОС ПЛК?
PhilipLykov
04.12.2015, 17:02
Файл на диске создается корректно ('/root/TestFile.txt'), я его там вижу.
21195
Сейчас он уже не выдает ошибку, но и xDone также не устанавливает.
PhilipLykov
04.12.2015, 17:31
А я вот еще чего не могу понять: почему после "filop.xExclusive:=FALSE;" он все равно остается равен TRUE?
GoodLuck
04.12.2015, 20:38
Получилось ли у вас решить проблему? У меня такая же ошибка.
Данную проблему решить не получилось, удалось ее обойти. Не знаю, как у вас, но у меня эта ошибка появляется время от времени. Поэтому если, допустим, в течение 3 сек, файл открыть не удалось, то все обнуляю и делаю повторное открытие файла. Со второго раза никакой ошибки не выдает.
Вы бы приобрели в магазине флешку и эксперементировали на ней, ресурсы внутренней флеш ограничены, так скоро Вы останетесь без контроллера
PhilipLykov
05.12.2015, 12:44
потому что следующей строкой Вы присваиваете этой переменной true и выполняете блок, так что эта Ваша строчка бесполезна в этом коде
и да, Вы бы приобрели в магазине флешку и эксперементировали на ней, ресурсы внутренней флеш ограничены, так скоро Вы останетесь без контроллера
Вы правы по поводу ресурса флэш памяти, так и поступлю.
А вот по поводу кода, Вы вероятно перепутали, там следующей строкой xExecute, а не xExclusive. Проблема с кодом решилась после того как я сделал Reset Origin и залил заново код. Я этот код вношу в собственную библиотеку и вероятно это как-то не корректно заливается при он-лайн изменении кода.
Но главное что проблема не исчезла, у меня по прежнему файл создается, ошибки уже нет никакой, но хэндл не возвращается и xDone не встает.
PhilipLykov
07.12.2015, 02:01
Я нашел проблему. Я пишу библиотеку для ведения простого лога ошибок и аварий. Я объявил функции File.Open и т.п. не в функциональном блоке, а в его методе. Поэтому все содержимое переменных функций File.* очищалось с каждым циклом.
Кстати, а может быть есть готовая библиотека для простого логирования в текстовый файл?
Кстати, а может быть есть готовая библиотека для простого логирования в текстовый файл?
ищите примеры с бибкой syslibexec
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot