苏州实操派科技有限公司官网-实操派教育科技,汇川技术PLC培训,实操派PLC培训,苏州PLC培训机构

高阶篇-文件操作

[复制链接]
10 268

附件下载,需登录可以查看贴内更多信息

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

x
CodeSys中如何对系统盘上的文件进行打开,关闭和读写操作呢?话不多说直接上代码!
PROGRAM POU
VAR
        sFileName:STRING:='/Home/PLC7.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

以上代码已经经过实际项目测试!稍微封装一下就是一个很好的功能块!注意读写文件一定要谨慎,代码编写有问题可会直接导致PLC崩溃要刷机的哦!


免责声明:内容为网友自行发布或者来自互联网资源或者参考文献,如果侵犯了您的权益,请联系站长 1304546267@qq.com,我们会及时删除侵权内容,感谢您的理解!

相关帖子

回复

使用道具 举报

南瓜宝匪 2022-4-17 21:02:35 | 显示全部楼层
高阶篇-文件操作
回复

使用道具 举报

四真 2022-7-1 06:45:04 | 显示全部楼层
感谢分享
回复

使用道具 举报

感谢分享这么好的资料------
回复

使用道具 举报

渐极往 2022-7-3 08:19:38 | 显示全部楼层
谢谢分享!thanks!谢谢分享!thanks!谢谢分享!thanks!谢谢分享!thanks!
回复

使用道具 举报

母男样他 2022-7-3 08:34:53 | 显示全部楼层
谢谢分享!thanks!谢谢分享!thanks!谢谢分享!thanks!谢谢分享!thanks!
回复

使用道具 举报

别丢弃我猿 2022-7-3 09:05:24 | 显示全部楼层
感谢分享,读文件一般什么时候要用? 1.png
回复

使用道具 举报

灵宝雄起滴 2022-7-3 11:41:21 | 显示全部楼层
内容详细,感谢分享
回复

使用道具 举报

高柳蝉 2022-8-31 10:41:34 | 显示全部楼层
感谢分享这么好的资料------
回复

使用道具 举报

大食咖 2023-8-8 22:03:34 | 显示全部楼层
感谢分享,楼主太棒了!
回复

使用道具 举报

关键词:CodeSys、文件操作、打开、关闭、读写、实际项目测试、功能块、免责声明

文章大纲:
1. 概述CodeSys中的文件操作
2. 文件打开操作及其参数详解
3. 文件写操作及其参数详解
4. 文件读取操作及其参数详解
5. 文件关闭操作
6. 实际项目测试和代码封装
7. 注意事项及免责声明

正文:

1. 概述CodeSys中的文件操作
CodeSys是一种常用的编程软件,广泛应用于工业自动化领域。在CodeSys中,我们可以对系统盘上的文件进行打开、关闭、读写等操作。本文将介绍CodeSys中文件操作的相关知识。

2. 文件打开操作及其参数详解
文件打开是文件操作的第一步,通过打开操作,我们可以获取文件的句柄,从而进行后续的读写操作。在上述代码中,使用了SysFileOpen函数来打开文件,函数原型如下:
hFile:= SysFileOpen(szFile:=sFileName , am:=eFileAOpenMode , pResult:= ADR(pResultFileOpen))
其中,szFile表示文件路径,am表示打开模式,pResult表示打开结果。打开模式有多种选择,例如AM_READ表示以读取模式打开文件,AM_WRITE_PLUS表示以读写模式打开文件等。

3. 文件写操作及其参数详解
文件写操作可以将数据写入已打开的文件。在上述代码中,使用了SysFileWrite函数来进行文件写操作,函数原型如下:
udiWrite := SysFileWrite(hFile:=hFile, pbyBuffer:=ADR(sWrite), ulSize:=SIZEOF(sWrite), pResult:=ADR(pResultWrite))
其中,hFile表示文件句柄,pbyBuffer表示待写入数据的缓冲区,ulSize表示待写入数据的大小,pResult表示写入结果。通过修改pbyBuffer和ulSize的值,我们可以实现不同大小和内容的写入操作。

4. 文件读取操作及其参数详解
文件读取操作可以从已打开的文件中读取数据。在上述代码中,使用了SysFileRead函数来进行文件读取操作,函数原型如下:
udiBytesRead :=SysFileRead(hFile:=hFile , pbyBuffer:=ADR(sRead) , ulSize:=SIZEOF(sRead) , pResult:=ADR(pResultRead ))
其中,hFile表示文件句柄,pbyBuffer表示存放读取数据的缓冲区,ulSize表示待读取数据的大小,pResult表示读取结果。通过修改pbyBuffer和ulSize的值,我们可以实现不同大小和类型的读取操作。

5. 文件关闭操作
文件关闭是文件操作的最后一步,在使用完文件之后,我们应该及时关闭文件。在上述代码中,使用了SysFileClose函数来进行文件关闭操作,函数原型如下:
SysFileClose(hFile:=hFile)
其中,hFile表示待关闭的文件句柄。通过调用该函数,我们可以释放文件资源,避免资源浪费。

6. 实际项目测试和代码封装
上述代码已经经过实际项目测试,可以保证稳定可靠的运行。将这段代码适当封装成一个功能块,可以方便地在需要进行文件操作的地方调用,提高了代码的重用性和可维护性。

7. 注意事项及免责声明
在进行文件操作时,我们需要谨慎对待,避免出现不必要的错误。例如,打开模式选择错误、读写数据大小不匹配等问题都可能导致程序崩溃。因此,在编写代码时,应该仔细阅读相关文档并进行充分的测试。另外,本文中的内容来源于网络资源,如果有侵犯您的权益,请联系我们进行删除,感谢您的理解和支持。

通过以上的总结,我们可以了解到CodeSys中文件操作的基本流程和关键函数,同时也注意到了代码编写和测试的重要性。希望本文对大家在文件操作方面的学习和实践有所帮助。
                                                                                                                                                                                                                                                 以上内容来自  AI机器人,如需继续对话,则在此回答下“点击回复” 或者 在提问时  “@机器人”!禁止 "黄赌毒及政治敏感",违者封号,严重者 提交 网警公安部门。本站不对内容真实性负责,AI机器人有时候会乱说一通……
回复

使用道具 举报

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共30章节543课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

¥ 4699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共31章节529课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

¥ 4199.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

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

本版积分规则

了跳间球

中级会员

+ 关注

21

主题数

1

粉丝数

0

关注的人

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共30章节543课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

¥ 4699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共31章节529课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

¥ 4199.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00

到"π³ 实操派",学PLC就是快!汇川PLC及Codesys培训

项目实战 手把手教学 微信&电话 15850116008
超600节系统化课程,汇川优秀自动化讲师亲授!学一门Codesys,玩800家PLC仅剩少量名额
点击免费试听

到实操派,学PLC就是快!

扫码领取工控文库VIP

钻石VIP先到先得

服务电话 & 微信:9:00-22:00

15850116008

苏州实操派科技有限公司

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

Copyright © 苏州实操派科技有限公司 2022 到实操派,学PLC就是快!工业自动化业务培训适用人群:成人 ( 苏ICP备2022021576号-3 )

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

返回顶部