Codesys写入CSV的方法(非excel)

一、序言

前文已经介绍了CODESYS读取CSV数据的方法,根据CSV数据的字符序列属性,按顺序读出其ASCII码值,转换成字符串,并通过数据处理,将每个数据对应的字符串拼接,然后存入对应的程序数组中进行记录。参考博客地址:

https://blog.csdn.net/qq_19979629/article/details/124309153

能够读取,当然可以写入,本文主要介绍CODESYS将数据写入CSV的方法,其原理在读取CSV分析时,有心的读者应该就可以想到,就是将读取CSV的方法,倒转过来就可将数据写入到CSV文件当中,下面我们来介绍写入CSC的具体步骤。

二、数据写入功能块

codesys写入功能与读取文件一样,需要添加4个库文件,本例使用codesys软件版本为V3.5.14.10:

a、SysFile, 3.5.15.0(System):该库提供访问文件的功能
b、SysTypes2 Interfaces, 3.5.4.0(System):该库提供访问文件的数据格式
c、Util, 3.5.15.0(System):该库提供数据类型转换
d、StringUtils, 3.5.15.0(System): 该库包含处理字符串的函数

文件打开等功能块已在《CODESYS读取csv文件的方法(非excel)》一文中有过介绍,这里仅介绍与写入功能相关的。

2.1、功能块说明

数据写入相关的功能有:SysFileWrite,SysFileSetPos,功能作用如下:

Codesys写入CSV的方法(非excel)_第1张图片Codesys写入CSV的方法(非excel)_第2张图片

 2.2、数据写入流程

CSV数据写入的步骤如下:

a、数组数据处理,将需要的数据转换成CSV需要的字符序列;

b、通过SysFileOpen指令打开文件;

c、通过SysFileSetPos设置开始写入的位置,一般设置偏移量为0,全覆盖;

d、通过SysFileClose关闭CSV文件,若文件不关闭,则下次无法读取和写入。

三、程序编写
3.1、创建变量

本文在读取CSV程序的基础上编写,需要添加以下变量,

Codesys写入CSV的方法(非excel)_第3张图片

 3.2 程序编写

a、数据合并

本文以CSV表格的前3行,前10列作为写入的目标,共计30个数据,与定义的写入数组对应,先将需要写入的数据合并到写入字符串当中,同一行的数据用“,”隔开,不同行用“$r”和“$n”隔开,再转换成ASCII码序列,程序如下:

Codesys写入CSV的方法(非excel)_第4张图片

 b、写入数据

 3.3、创建可视化视图

在原有读取的视图中增加写入数据,变量连接这里不再介绍,有问题的读者可以参考《CODESYS读取csv文件的方法(非excel)》一文,将原始CSV数据的变量对应为写入字数组,写入数据的变量对应位写入数据,写入按钮对应启动写入

Codesys写入CSV的方法(非excel)_第5张图片

3.4、仿真运行 

Codesys读取和写入CSV文件

4、综述

通过以上分析,程序仿真运行,codesys通过文件写入功能块是完全可以实现对CSV文件数据的写入,同时,跟读取一样需要注意的是:

1、写入CSV时,我们发现需要是覆盖的所有数据,即使我们仅仅需要改变其中的一个数据,也需要将所有数据合并并写入,因为CSV数据序列的特性,即使我们知道需要修改数据的偏移量,当数据改变时,被修改数据后面的所有数据的偏移量都出现了变化,因此需要重新读取所有数据才能确定位置,如此操作并不比直接写入数据方便。

2、而当数据量大的时候,我们建立的读取数组也需要有对应的容量来存储,否则就会丢失数据。本例中数据量较小,不超过50个,所以并无影响。

本文所采用的codesys版本为V3.5.14.10,所涉及的程序可通过以下地址下载:
https://download.csdn.net/download/qq_19979629/85218176

你可能感兴趣的:(codesys,可视化仿真,CSV写入,数据结构)