twincat中的FB_FileGets与FB_FileRead

时间:2019-04-20 07:18:15

标签: twincat

Beckhoff公司的twincat软件中有两个类似的功能来读取文件。 FB_FileGetsFB_FileRead。如果有人解释这些功能的区别,并弄清楚我们何时使用它们,我将不胜感激。它们是否具有相同的“先决条件”,在程序中以相同的方式使用?哪个具有更快的速度(以不同的文件格式快速读取),并且任何信息都使其清晰可见,从而可以进行更好的编程。

enter image description here vs enter image description here

1 个答案:

答案 0 :(得分:1)

FB_FileGets逐行读取文件。因此,当您调用它时,始终会得到一行文本文件作为字符串。一行的最大长度为255个字符。因此,通过使用此功能块,可以很容易地读取文件的所有行。如果255行长度限制没问题,则无需缓冲区和内存复制。

FB_FileRead从文件中读取给定数量的字节。因此,您可以读取一行中包含例如65000个字符的文件。

在所有您知道行少于255个字符并且您逐行处理数据的情况下,我都会使用FB_FileGets。使用非常简单。如果您不知道行大小,那么一次需要所有数据,或者文件很大,我将使用FB_FileRead

我还没有测试过,但是我认为FB_FileRead可能更快,因为它只是将字节复制到缓冲区中。而且您可以一次读取整个文件,而不是逐行读取。