Добрый день. Реализовал запись и чтение рецептов в файлы на ПЛК. Часть кода чтения рецепта из файла:

(*Создаем или открываем новый файл с таким же именем, как номер рецепта*)
FileHandler:=SysFileOpen(WORD_TO_STRING(recipenumb er),'r');

(*Если файла с рецептом ещё не существует, присваиваем переменным рецепта нули*)
IF FileHandler=0 THEN
recfeed1:=recfeed2:=recfeed3:=recfeed4:=recfeed5:= recpowder:=recbitum:=0;
END_IF

(*Если файл существует, считываем оттуда значения и присваиваем их переменным рецепта*)
IF FileHandler<>0 THEN
FileRead:=SysFileRead(FileHandler,ADR(recipe),SIZE OF(recipe));
recfeed1:=recipe[1];
recfeed2:=recipe[2];
recfeed3:=recipe[3];
recfeed4:=recipe[4];
recfeed5:=recipe[5];
recpowder:=recipe[6];
recbitum:=recipe[7];
END_IF
FileClose:=SysFileClose(FileHandler);
END_IF

Суть проблемы: два рецепта с номерами, соответственно, 1 и 2 записались, значения считываются с помощью данного кода успешно. Когда переключаю на 3 рецепт или рецепт с любым другим номером, переменным рецепта присваиваются нули, как и должно быть, но SysFileClose возвращает Invalid, соотвественно, файл не сохраняется. В чём может быть проблема, куда смотреть?