Codesys用ST语言实现对CSV文件的读写操作+代码下载

一、开发环境说明

  • 编程软件: Codesys V3.5 SP17
  • 运行设备:PC电脑
  • 编程语言: ST

二、配置操作

1、新建Codesys工程,依次点击【文件】—【新建工程】—【标准工程】— 输入名称,如下图所示

在这里插入图片描述

2、添加依赖库文件,依次点击【库管理器】—【添加库】–【高级】— 输入库名称 —【确定】,如下图所示

需要添加的库:

  • SysFile
  • StringUtils
  • SysTypes2 Interfaces
  • Util

在这里插入图片描述
在这里插入图片描述

3、编写读写CSV文件的函数:
  • ReadCSVData
  • WriteCSVData

用到的主要库函数

函数名说明
SysFileOpen打开或创建文件,并返回文件句柄。
SysFileClose关闭句柄指定的文件
SysFileRead从文件中读取字节
SysFileWrite往文件中写入字节
SysFileGetPos获取当前文件指针的位置
4、在PLC_PRG中编写代码,调用函数实现CSV文件操作
//声明部分
PROGRAM PLC_PRG

VAR
  pbyteFileHandle  : RTS_IEC_HANDLE;//文件句柄	
  strFileName      : STRING := 'D:\File.csv';//csv文件路径
  astrCsvData  : ARRAY[0..20] OF STRING(20) ;//读写的数据  
  udiResult        : ARRAY[1..2] OF  RTS_IEC_RESULT;//返回操作的结果  0 --成功
END_VAR
VAR
	bRead  : BOOL;//读操作
	bWrite : BOOL;//写操作
	iCount : INT; //临时值 for循环用
END_VAR

IF bRead  = TRUE THEN //读操作
   bRead          := FALSE;//只读一次 上升沿触发   
   pbyteFileHandle:= SysFileOpen(szFile:= strFileName, am:= ACCESS_MODE.AM_READ_PLUS, pResult:= ADR(udiResult[1]));//打开文件,获取文件句柄
   FOR iCount     := 0 TO  10 BY 1 DO //读10个值
	   astrCsvData[iCount]    :=  ReadCSVData(hFileHandle := pbyteFileHandle);//调用读函数
	   IF astrCsvData[iCount]  = '' THEN //如果读到的字符为空,表示读完,返回
		   SysFileClose(hFile := pbyteFileHandle);//释放文件句柄
		   RETURN;
	   END_IF
   END_FOR
   SysFileClose(hFile:= pbyteFileHandle);//释放文件句柄
END_IF


IF bWrite   = TRUE THEN //写操作
	bWrite := FALSE;  //只写一次 上升沿触发   
	pbyteFileHandle:= SysFileOpen(szFile:= strFileName, am:= ACCESS_MODE.AM_WRITE_PLUS, pResult:= ADR(udiResult[2]));//打开文件,获取文件句柄
	FOR iCount     := 0 TO  10 BY 1 DO //写10个值
	   WriteCsvData(hFileHandle := pbyteFileHandle, strWriteData := astrCsvData[iCount]);//调用写函数
    END_FOR
	SysFileClose(hFile:= pbyteFileHandle);//释放文件句柄
END_IF

三、编写codesys界面,进行效果展示

请添加图片描述

四、代码下载请添加图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值