Код:
IF pwr AND pwr<>oldPwr THEN (* при включении питания *)
hFile:=SysFileOpen('rcpt.bin', 'r'); (* получение дескриптора файла *)
IF hFile>0 THEN (* если файл существует *)
logFileSize := SysFileGetSize('rcpt.bin'); (* вычисляем размер файла *)
length_read := SysFileRead(hFile, ADR(reception), MIN(UDINT_TO_DWORD(logFileSize),224)); (* читаем данные по минимуму, либо размер файла, либо размер массива *)
IF length_read = MAX(UDINT_TO_DWORD(logFileSize),224) THEN (* если приняли соответствующее количество байт *)
SysFileClose(hFile); (* закрываем файл *)
END_IF;
END_IF;
hFile:=SysFileOpen('ppid.bin', 'r'); (* получение дескриптора файла значений ПИД*)
IF hFile>0 THEN (* если файл существует *)
length_read := SysFileRead(hFile, ADR(pids), 10); (* читаем данные *)
SysFileClose(hFile);
END_IF;
ELSIF oldPwr AND pwr<>oldPwr THEN (* при отключении питания *)
;
END_IF;
oldPwr:=pwr AND hFile<>0;