查看: 8409|回复: 30
收起左侧

[教程经验] 文件操作篇:3、基础内容-文件操作函数

Z.Y.Q 2020-8-13 10:11:29 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
本帖最后由 Z.Y.Q 于 2020-8-26 17:58 编辑

中型PLC系列-文件操作篇

本课程分为基础内容和实操内容两部分,前者帮助大家了解文件操作基本内容,后者帮助大家快速上手应用。

基础内容:
1、文件操作的应用
2、文件操作函数库
3、文件操作函数 (附文件操作视频上篇)

实操内容:
4、TXT\CSV、U盘\SD卡文件读写&实操
5、带中文字符文件读写&实操(附文件操作视频下篇)

基础内容:3、文件操作函数

1、文件的打开与关闭

基于SysFile介绍Open、Close函数

SysFileOpen

该函数主要作用是打开或者创建一个文件。
该函数返回值即是hfile,作为后续写文件等功能块的输入。

SysFile路径给定注意不要使用反斜杠 \ 。

image.png
打开文件模式基础有读(READ)、写(WRITE)和追加(APPEND)模式,以及衍生的三种Plus模式,

READ:如果目标路径文件存在,打开已有文件,不存在,返回错误值。
WRITE:如果目标路径文件存在,则对文件重新写入,不存在,将会自动创建新文件,再写入。
APPEND:如果目标路径文件存在,打开已有文件,并再文件最后将内容追加写入,不存在,返回错误值。
READ_PLUS:打开文件,并具有读写权限。如果目标路径文件存在,打开已有文件,不存在,返回错误值。
WRITE_PLUS:如果目标路径文件存在,则对文件重新写入,不存在,将会自动创建具有读/写权限新文件,再写入。
APPEND_PLUS:相比APPEND,APPEND_PLUS更常用,相比前者,后者文件不存在,将会自动创建新文件。

PLUS模式使用时,在读取一个文件后,要进行写操作时,需先调用SysFileGetPos或者SysFileSetPos来明确指针位置。
正确使用顺序例如:
SysFileRead();
SysFileSetPos();
SysFileWrite();

image.png

SysFileClose

该函数主要作用是依据输入的hfile,关闭目标文件。
函数返回值是错误码,具体内容可以查看CmpErrors库内容。

文件关闭在读写操作后配套使用以避免文件的数据丢失等错误发生。
打开文件进行读写操作后未关闭,会导致内存溢出等问题,严重使PLC系统崩溃。

image.png

小练习

image.png

image.png
image.png
image.png

2、文件的读出与写入

基于SysFile介绍Read、Write函数

SysFileRead

该函数主要作用是按给定读出文件中若干个字节。
函数返回值类型为_XWORD,表示从文件中读取的字节数,调用功能块返回值为0,认为读取失败。

Input中的ulSize表示需要从文件中读取的字节数,缓冲区长度要大于该数据长度。

image.png

SysFileWrite

该函数主要作用是按给定写入若干个字节进文件。

Write使用的前提是文件必须已经正确打开,即使用Open函数在先,一般Open模式选择Write、Append或者相关PLUS模式。
为了正确的将内容写入文件指定位置,还需要配合SetPos函数使用,不然会出现每次从头覆盖写入的情况。

image.png

SysFileSetPos

该函数主要作用是将文件指针设定到给定位置。

image.png

SysFileGetPos

该函数主要作用是获取当前文件实际指针位置。

image.png

小练习

image.png
image.png
image.png
image.png
image.png
image.png

3、其它

我们这里介绍下常用的Get和Copy函数,其余的有兴趣可以到库内查找学习。

SysFileCopy

该函数主要作用是将一个文件内容复制到另一个目标文件中去。
同样注意路径不要填写反斜杠\。

image.png

SysFileDelete

该函数主要作用是删除目标文件。

注意路径不要填写反斜杠\。

文件不得在打开状态,否则,删除无效。

image.png

SysFileGetTime

该函数主要作用是获取文件最后一次更新/修改的时间,所取得时间一般要配合UDINT_TO_DT或其他转换时间函数使用。
SysFileGetTime()还能获取创建时间、访问时间。

image.png

SysFileGetPath

该函数主要作用是获取文件路径,也可以用来获取当前系统的标准路径。

image.png

SysFileGetName

该函数主要作用是获取文件名称。

image.png

SysFileGetName

该函数主要作用是获取文件大小,指针指空会有异常,慎用。

image.png

SysFileFlush

该函数主要作用是强制刷新当前缓存数据,写入存储介质中。

image.png

SysFileEOF

该函数一般在读取操作后,关闭文件前调用,如果到达文件末尾则返回True。

常见是用来确认当前配方信息都已读取完成。

image.png

SysFileRename

该函数用来重命名文件,需要注意的是FileName需要完整的路径,不能只写文件名。

image.png

小练习

image.png
image.png


本章的一些示例程序附在实操课程中

附件内容:

简单示例.zip (1.22 MB, 下载次数: 429)





上一篇:文件操作篇:2、基础内容-文件操作函数库
下一篇:Am400+脉冲轴指令要怎么写

已有 1 人打赏作者

里海边境 赏了楼主5水滴
1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香! 鲜花榜单
  • +1

    楼主威武~

回复 邀请回答送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部