codesys工程ST语言学习笔记(二)写文件操作与添加库方法

ST语言写文件功能

由于实验中需要大量的数据,文件读写比较方便
但是网上的文件读写的程序很多都用不了,小编将自己的工程发布出来
首先需要添加需要用的库
方法如下图

codesys工程ST语言学习笔记(二)写文件操作与添加库方法_第1张图片

codesys工程ST语言学习笔记(二)写文件操作与添加库方法_第2张图片

需要添加的库有

StringUtils,3.3.15.0
SysFile,3.5.15.0
SysTypes2 Interfaces,3.5.4.0
Util,3.5.15.0

如下图

codesys工程ST语言学习笔记(二)写文件操作与添加库方法_第3张图片

首先创建功能块

功能块WriteDataFunction代码
变量声明区

FUNCTION_BLOCK WriteDataFunction
VAR_INPUT
	joint:WSTRING;
	start:UINT;
END_VAR

VAR
    xWrite         : BOOL:=TRUE;
    szFileName     : STRING(128) := 'G:/实验1/codesys/fanjie2_300/Test1.txt';
    hFile          : SysTypes.RTS_IEC_HANDLE := SysTypes.RTS_INVALID_HANDLE;
    iecResult      : SysTypes.RTS_IEC_RESULT;
    wsTextLine     : WSTRING(10) := "Übersetzer";
    sUTF8TextLine  : STRING;
    udiPos         : __XWORD;
    udiWrite       : __XWORD;
	
END_VAR
VAR_OUTPUT
	end:uINT;
	
END_VAR

程序区

IF xWrite THEN
    //xWrite := FALSE;
    hFile := SysFileOpen(szFile:=szFileName, am:=SYSFILE.AM_APPEND_PLUS , pResult:=ADR(iecResult));//打开文件,其中AM_APPEND_PLUS方式不会覆盖文件内信息,
    IF hFile <> RTS_INVALID_HANDLE    THEN
        Stu.ConvertUTF16toUTF8(sourceStart := ADR(joint), targetStart := ADR(sUTF8TextLine), dwTargetBufferSize := SIZEOF(joint), bStrictConversion := TRUE);
		
		sysfileSetpos(hFile:=hFile,ulOffset:= start);//定位写文件的坐标开始位置start
		udiWrite := SysFileWrite(hFile:=hFile, pbyBuffer:=ADR(sUTF8TextLine), ulSize:=INT_TO_UDINT(LEN(sUTF8TextLine)), pResult:=ADR(iecResult));//写文件 
        iecResult  := SysFileClose(hFile:=hFile);
		end:=start+LEN(WSTRING_TO_STRING(joint));

    END_IF
END_IF

主函数
声明变量区代码

	
PROGRAM PLC_PRG
VAR
	fbWriteFile	:	WriteDataFunction;//实例化WriteFile功能块
	i: INT;
	start:INT;
	end: INT;
	a:BOOL:=TRUE;
	haha: WSTRING(INT#7);
END_VAR

程序区代码

IF a = TRUE THEN
	FOR i:=1 TO 6 BY 1 DO
		haha:="shifeng";
		fbWriteFile(joint:=haha,start:=start,end=>end);//循环在文件中写入,并且不覆盖文件中内容,end 用来记录输出的文件末位置,start输入 写入的位置。
		start:=end;
	END_FOR	
	a:=FALSE;
END_IF

运行结果图

codesys工程ST语言学习笔记(二)写文件操作与添加库方法_第4张图片
codesys工程ST语言学习笔记(二)写文件操作与添加库方法_第5张图片

成功生成了 txt文件
获取资源
  1. 点击下载
  2. 微信公众号联系回复:ST写文件
后续更新ST语言文件操作其它文章。。。。。
【关注微信公众号一起来交流】

你可能感兴趣的:(codesys学习笔记,文件操作,codesys,ST语言)