FL_OPEN - открытие файла

Назначение.
Функциональный блок используется для открытия файла.
Состав структурной переменной.
Переменная со структурным типом FL_OPEN будет добавлена в локальный словарь автоматически при добавлении блока в редактор.

Описание алгоритма.
-
На вход PATH в виде строки передается полное имя файла, включая путь к файлу в файловой системе мастер-модуля и его расширение:
-
'/sd/<имя_файла>.<расширение>' - для мастер-модуля M1201E;
-
/unimod/usr/<имя_файла>.<расширение>' - для прочих мастер-модулей.2. Если файл имеет двоичный формат, необходимо установить входной параметр BIN=TRUE.3. По указанному адресу PATH проверяется наличие файла, при его отсутствии в указанной директории создается новый файл с указанным именем и расширением. Каждому открытому файлу присваивается уникальный идентификатор, который передается на выход FILE_ID. Если файл на момент выполнения блока находится в открытом состоянии, на выход FILE_ID передается ранее присвоенный файлу уникальный идентификатор.4. После открытия текущая позиция курсора устанавливается в начало файла.5. При возникновении ошибки открытия, ее код будет передан на выход FAULT, при этом FILE_ID=0. Список ошибок с кратким описанием приведен в конце настоящего раздела.
Режимы открытия файла.
Режим работы с открытым файлом определяется входным сигналом RDONLY:
-
RDONLY=FALSE - файл доступен для чтения и записи;
-
RDONLY=TRUE - файл доступен только для чтения.
Ограничение размера файла.
Размер открываемого файла может быть ограничен с использованием входного параметра SIZE:
-
SIZE=-1 - файл открывается полностью, без ограничений;
-
SIZE >= 0 - будет открыта начальная часть файла, ограниченная размером SIZE, а оставшаяся часть файла останется закрытой и недоступной для чтения или записи.
Работа с текстовыми файлами.
При работе с текстовыми файлами по умолчанию в качестве разделителя данных используется символ перевода на новую строку, при этом входной параметр SEP должен принимать значение по умолчанию SEP=0. Другие разделители в настоящее время не поддерживаются.
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.FL_OPEN(PATH, RDONLY, BIN, SEP, SIZE);
//чтение уникального идентификатора открытого файла
FILE_ID := Block.FILE_ID;
//чтение кода ошибки
FAULT := Block.FAULT;
|
Список возможных ошибок на выходе FAULT.
|
