一、开发环境说明
- 编程软件: Codesys V3.5 SP17
- 运行设备:PC电脑
- 编程语言: ST
二、配置操作
1、新建Codesys工程,依次点击【文件】—【新建工程】—【标准工程】— 输入名称,如下图所示
2、添加依赖库文件,依次点击【库管理器】—【添加库】–【高级】— 输入库名称 —【确定】,如下图所示
需要添加的库:
- SysFile : 读文件的操作
- StringUtils :读字符串的操作
- SysTypes2 Interfaces :定义相关的数据结构、类型
3、读写文件的函数:
用到的主要库函数
函数名 | 说明 |
---|---|
SysFileOpen | 打开或创建文件,并返回文件句柄。 |
SysFileClose | 关闭句柄指定的文件 |
SysFileRead | 从文件中读取字节 |
SysFileWrite | 往文件中写入字节 |
SysFileGetPos | 获取当前文件指针的位置 |
4、在PLC_PRG中编写代码,调用函数实现XML文件操作
(*0 initial *)
iPeopleIndex := 0;
(*1 open file*)
pbyteFileHandle:= SysFileOpen(szFile:= strFileName, am:= ACCESS_MODE.AM_READ_PLUS,pResult:=ADR(udiResult));
(*2 read file*)
WHILE (FC_FileReadLine(pbyteFileHandle,strLineValue =>strTempLine,wSize=>wLineSize)) DO
StrToUpperA( ADR(strTempLine));
IF (FIND( strTempLine,'<PEOPLE>') <> 0) THEN
FC_FileDealLine( pbyteFileHandle,TRUE , 'NAME' , ADR(struPeople[iPeopleIndex].strName) , E_DataType.eType_STRING );
FC_FileDealLine( pbyteFileHandle,TRUE , 'AGE' , ADR(struPeople[iPeopleIndex].uiAge) , E_DataType.eType_INT );
FC_FileDealLine( pbyteFileHandle,TRUE , 'HEIGHT' , ADR(struPeople[iPeopleIndex].rHeighT) , E_DataType.eType_REAL );
FC_FileDealLine( pbyteFileHandle,TRUE , 'student' , ADR(struPeople[iPeopleIndex].bStudent) , E_DataType.eType_BOOL );
iPeopleIndex := iPeopleIndex + 1;
END_IF
END_WHILE
(*3 close file*)
SysFileClose(hFile := pbyteFileHandle);