codesys读取文件的内容
文件的写功能见上篇博客点击codesys工程ST语言学习笔记(二)写文件操作与添加库方法
功能 | 变量 | 变量 | 变量 | 变量 |
---|
SysFileClose 关闭文件 | hFile:RTS_IEC_HANDLE | | | |
SysFileDelete删除文件 | | szFileName:REFERENCE TO STRING | | |
SysFileGetSize获取文件大小 | szFileName:文件名(包括地址) | pResult:返回的是指针判断是否成功 | | |
SysFileSetPos设置在文件中的起始位置,比如写文件时使用 | hFile:RTS_IEC_HANDLE | ulOffset:_XWORD(起始点的位置) | | |
。。。。。。 | 。。。。。 | 。。。。。。。 | | |
其余的笔者就不列举了,在codesys中可以查到。找到函数的定义处 |
![在这里插入图片描述](https://img-blog.csdnimg.cn/96d0ccc6d347471ca4ba20d187abd087.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc2Y5MDkw,size_20,color_FFFFFF,t_70,g_se,x_16)
变量区代码
PROGRAM PLC_PRG
VAR
xRead : BOOL:=TRUE;
szFileName : STRING(128) := 'G:/sf_codesys_files/read_file/sf9090.txt';
hFile : SysTypes.RTS_IEC_HANDLE;
iecResult : SysTypes.RTS_IEC_RESULT;
recive : STRING;
udiRead : __XWORD;
udiSize : LWORD;
END_VAR
主程序区代码
IF xRead THEN
hFile := SysFileOpen(szFile:=szFileName, am:=SYSFILE.AM_READ , pResult:=ADR(iecResult));
IF hFile <> RTS_INVALID_HANDLE THEN
udisize:=SysFileGetSize(szFileName:=szFileName,pResult:=ADR(iecResult));
udiRead := SysFileread(hFile:=hFile, pbyBuffer:=ADR(recive), ulSize:=udisize, pResult:=ADR(iecResult));
iecResult := SysFileClose(hFile:=hFile);
END_IF
END_IF
xRead:=FALSE;
![在这里插入图片描述](https://img-blog.csdnimg.cn/9fe2b82fe24c43a48e487da9fad64c52.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc2Y5MDkw,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ad41600c0b0f4ca5a5186d510b9dd40f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc2Y5MDkw,size_20,color_FFFFFF,t_70,g_se,x_16)
如下图红箭头标出所示,成功访问到文件的内容以及文件的大小。
![在这里插入图片描述](https://img-blog.csdnimg.cn/1b2224443b4c4f70a20c3a165f5c2328.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc2Y5MDkw,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/256e228bf5fd4b19a6a89492be10b299.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc2Y5MDkw,size_20,color_FFFFFF,t_70,g_se,x_16)
下篇博客就会讲解如何使用codesys让输出变量显示出来,方便调试 |
打开文件的方式记住要改成SYSFILE.AM_READ |
笔者测试多次都未能成功读取数据就是因为忘记修改了参数 |
点击下载