PROGRAM PLC_PRG
VAR
sFileName:STRING:='/home/PLC.txt';
eFileAOpenMode: ACCESS_MODE;
pResultFileOpen: RTS_IEC_RESULT;
TEST_Write: BOOL;
hFile: RTS_IEC_HANDLE;
sWrite: ARRAY[0..4] OF BYTE;
sRead: ARRAY[0..4] OF BYTE;
pResultWrite: RTS_IEC_RESULT;
TEST_Read: BOOL;
pResultRead: RTS_IEC_RESULT;
pResultFileOpen2: RTS_IEC_RESULT;
udiPosError: UDINT;
udiPos: __XWORD;
udiBytesRead: __XWORD;
udiWrite: __XWORD;
END_VAR
IF TEST_Write AND NOT TEST_Read THEN
eFileAOpenMode:=ACCESS_MODE.AM_WRITE_PLUS;
IF hFile=0 THEN
hFile:= SysFileOpen(szFile:=sFileName , am:=eFileAOpenMode , pResult:= ADR(pResultFileOpen));//文件打开操作
END_IF
IF hFile<>RTS_INVALID_HANDLE THEN
udiPosError := SysFileGetPos(hFile:=hFile, pulPos:=ADR(udiPos));
udiWrite := SysFileWrite(hFile:=hFile, pbyBuffer:=ADR(sWrite), ulSize:=SIZEOF(sWrite), pResult:=ADR(pResultWrite));//文件写操作
END_IF
END_IF
IF TEST_Read AND NOT TEST_Write THEN
eFileAOpenMode:=ACCESS_MODE.AM_READ;
IF hFile=0 THEN
hFile:= SysFileOpen(szFile:=sFileName , am:=eFileAOpenMode , pResult:= ADR(pResultFileOpen2));
END_IF
IF hFile=RTS_INVALID_HANDLE THEN
hFile:= SysFileOpen(szFile:=sFileName , am:=ACCESS_MODE.AM_WRITE_PLUS , pResult:= ADR(pResultFileOpen2));//文件打开
END_IF
IF hFile<>RTS_INVALID_HANDLE THEN
udiPos := SysFileSetPos(hFile:=hFile, ulOffset:=0);
udiBytesRead :=SysFileRead(hFile:=hFile , pbyBuffer:=ADR(sRead) , ulSize:=SIZEOF(sRead) , pResult:=ADR(pResultRead ));//文件读取
sRead[udiBytesRead] := 0;
END_IF
END_IF
IF NOT TEST_Read AND NOT TEST_Write THEN
IF hFile<>RTS_INVALID_HANDLE AND hFile<>0 THEN
SysFileClose(hFile:=hFile );//文件关闭
END_IF
hFile:=0;
udiWrite:=0;
udiBytesRead:=0;
END_IF
{{item.nickname}}
{{key+1}}楼{{item.content}}
{{item2.nickname}}
{{item2.content}}