关于自动化:如何在CODESYS(IEC 61131-3)中执行文件I / O?

How to perform file I/O in CODESYS (IEC 61131-3 )?

我正在使用自动化设备(配备codesys)计算功能块的输出值。为了确保函数正常工作,我们希望将此输出值与另一个未写入的函数块的输出结果进行比较。

为了报告此比较的结果,我们希望以图表的形式绘制上述两个值。因此,我们需要有这两个数据的时间字符串(以csv或任何其他格式)。我做了一些谷歌调查,也看了一下这个问题。似乎没有关于如何使用codesys进行文件I/O的大量信息。

我想知道是否有人有类似的经验(执行同步文件I/O以生成csv数据)。

任何想法都受到高度赞赏。谢谢。


请参阅文件库:https://help.codesys.com/webapp/examples;product=caa_file;version=3.5.11.0

基本上你要做的是:

  • 例如,为csv行创建数据缓冲区LineArray : ARRAY[1..100] OF STRING[255].
  • 以一定的间隔将测量值保存到字符串缓冲区。使用CONCATREAL_TO_STRING创建有效的csv行。

  • 同时,用FILE.Open功能块打开文件

  • 使用打开的文件句柄将数据从缓冲区写入文件(FILE.Write)。记住在使用例如memcpy编写之后移动缓冲区。

  • 写完所有行后,使用FILE.Close


  • 这个问题最近在关于codesys的Alizadeh博士教程系列中被问到。这里有一个链接。它基本上比使用codesys跟踪功能要窄。