Запись в файл
Код:
PROGRAM PLC_PRG
VAR
strFileName : STRING :='/var/opt/codesys/test.txt' ;
// путь где должен лежать файл в PLC
strReadedString : STRING;
// тип данных при чтение
strStringToWrite : STRING:= '12345' ;
// тип данных при записи
pWBuffer : POINTER TO BYTE := ADR(strStringToWrite);
// указатель на буфер с данными для записи в файл
pBuffer : POINTER TO BYTE := ADR(strReadedString);
// Указатель на буфер для чтения данных
nBufferSize : __XWORD:= 25;
// количество символов которое может считать
stFileHandle: SysFile.RTS_IEC_HANDLE;
pResult : POINTER TO SysFile.RTS_IEC_RESULT;
//тип данных в UDINT
nSize : __XWORD;
// переменная для чтения файла
wSize : __XWORD;
// переменная для записи файла
bDone : BOOL;
//переменная для проверки
am: SysFile.ACCESS_MODE;
// тип использования файла
WriteToFile: BOOL;
//переменная для проверки записи файла
END_VAR
IF NOT WriteToFile THEN
StFileHandle:=SysFileOpen(strFileName, SysFile.AM_WRITE, ADR(pResult));
// открытие файла для записи
wSize:=SysFileWrite(stFileHandle, pWBuffer ,TO___XWORD(LEN(strStringToWrite)), ADR(pResult));
// записывание в файл
pResult:= SysFileClose(stFileHandle);// закрытие файл
IF Wsize > 0 THEN
WriteToFile := TRUE; //конец записи файла
END_IF
END_IF
StFileHandle:=SysFileOpen(szFile := strFileName, am:= SysFile.AM_READ, pResult:= pResult);
// открытие файла для чтения
nSize:=SysFileRead(hFile:= stFileHandle, pbyBuffer:= pBuffer, ulSize:= nBufferSize, pResult:= pResult) ;
// чтение файла
IF nSize > 0 THEN
bDone := TRUE;
SysFileClose(hFile:= stFileHandle); // закрытие файла
END_IF
Результат работы программы:

Результат работы программы