PDA

Просмотр полной версии : Ошибка в SysFileCopy



Devix
28.04.2009, 16:40
Если файл назначения существует и он больше файла источника то при копирование в файле назначения остаяются старые данные.

Тоесть допустим есть файлы с содержимым:
test1.dat:
0x10 0x11 0x12 0x13 0x14

test2.dat:
0x20 0x21

После вызова SysFileCopy(test1.dat, test2.dat) файл test1.dat содержит:
0x20 0x21 0x12 0x13 0x14

должен содержать:
0x20 0x21


Еще вопрос с какая максимальный поток данных выдержит flash карта?

Прошивка: 2.07.2
Target: 2.06

Devix
28.04.2009, 16:44
По проведенным наблюдениям у вас SysFileDelete очень тормозная.
Если её вставить в цикл записи данных(8байт) c частотой в 1с. то контроллер может как зависнуть так и перезагрузится.

Филоненко Владислав
29.04.2009, 10:06
SysFileСopy - это стандартное поведение функции копирования. Если хочется иного - надо сначала удалить файл-получатель.
SysFileDelete - проектик и ТТХ ПЛК, плиз!

Devix
30.04.2009, 19:00
SysFileСopy - это стандартное поведение функции копирования. Если хочется иного - надо сначала удалить файл-получатель.
SysFileDelete - проектик и ТТХ ПЛК, плиз!

Понятно.

Пример прикрепил. прошивка таже, target тотже. плк150-220.и-м. К контроллеру был подключен только ethernet шнур.

Филоненко Владислав
04.05.2009, 09:14
Попробовал. Стабильно работает. Сколько надо ждать?

Совет - накапливайте данные и записывайте сразу блогом. Каждая запись (даже 1 байта) вызывает запись во Flash.

Devix
04.05.2009, 11:05
у меня сразу зависает.

А от codesys или его библиотек может зависать?

Филоненко Владислав
04.05.2009, 15:06
Версии CoDeSys и библиотек.
И лог-файл загрузки