codesys工程ST语言学习笔记(三)读文件操作txt,访问hello world 文件

codesys读取文件的内容

智慧与美貌并存的小编又来了
今天分享文件操作的读取功能

文件的写功能见上篇博客点击codesys工程ST语言学习笔记(二)写文件操作与添加库方法

首先我们展示一些codesys的库文件
功能 变量 变量 变量 变量
SysFileClose 关闭文件 hFile:RTS_IEC_HANDLE
SysFileDelete删除文件 szFileName:REFERENCE TO STRING
SysFileGetSize获取文件大小 szFileName:文件名(包括地址) pResult:返回的是指针判断是否成功
SysFileSetPos设置在文件中的起始位置,比如写文件时使用 hFile:RTS_IEC_HANDLE ulOffset:_XWORD(起始点的位置)
。。。。。。 。。。。。 。。。。。。。
其余的笔者就不列举了,在codesys中可以查到。找到函数的定义处

codesys工程ST语言学习笔记(三)读文件操作txt,访问hello world 文件_第1张图片

上面有详细的说明

变量区代码

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));//读取文件的方式打开AM_READ;
    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;

在本地保存好自己想要访问的文件

codesys工程ST语言学习笔记(三)读文件操作txt,访问hello world 文件_第2张图片
codesys工程ST语言学习笔记(三)读文件操作txt,访问hello world 文件_第3张图片

结果展示

如下图红箭头标出所示,成功访问到文件的内容以及文件的大小。

codesys工程ST语言学习笔记(三)读文件操作txt,访问hello world 文件_第4张图片
codesys工程ST语言学习笔记(三)读文件操作txt,访问hello world 文件_第5张图片

可视化界面输出 文件的内容
下篇博客就会讲解如何使用codesys让输出变量显示出来,方便调试
注意
打开文件的方式记住要改成SYSFILE.AM_READ
笔者测试多次都未能成功读取数据就是因为忘记修改了参数
访问的路径地址如果写错了,也无法读取成功
工程连接

点击下载

【关注微信公众号一起来交流】

你可能感兴趣的:(codesys学习笔记,stm32,驱动程序,彩屏)