DataFileCopy:复制文件命令

功能块描述

此功能块可将存储器数据复制到文件,或将文件复制到存储器。该文件位于内部文件系统或外部文件系统(SD 卡)。

DataFileCopy 功能块可以:

  • 从格式化文件中读取数据,或者

  • 将数据从存储器复制到一定格式的文件中。有关更多信息,请参阅非易失性存储器结构

图形表示形式

IL 和 ST 表示形式

若要查看 IL 或 ST 语言的一般表示形式,请参阅功能和功能块表示形式一章。

I/O 变量描述

下表介绍输入变量:

输入

类型

注释

xExecute

BOOL

在上升沿上,启动功能块的执行。

在下降沿上,当任何正在发生的执行结束时,复位功能块的输出。

注: 在下降沿上,功能继续执行,直到执行完成并更新其输出。这些输出保持一个周期的时间,然后便被复位。

sFileName

STRING

不带扩展名的文件名(自动添加扩展名 .DTA)。只使用 a...z、A...Z、0...9 字母数字字符。

xRead

BOOL

TRUE:将数据从 sFileName 识别的文件中复制到控制器的内部存储器。

FALSE:将数据从控制器的内部存储器复制到 sFileName 识别的文件中。

xSecure

BOOL

TRUE:MAC 地址始终存储在文件中。只有具有相同 MAC 地址的控制器才能从该文件中读取。

FALSE:采用相同类型存储器的其他控制器可以从该文件中读取数据。

iLocation

INT

0:文件位置是内部文件系统中的 /usr/DTA

1:文件位置是外部文件系统(SD 卡)中的 /usr/DTA

注: 如果目录中尚无此文件,则创建文件。

uiSize

UINT

表示以字节为单位的大小。最大为 65534 字节。

仅使用符合 IEC 61131-3(变量、数组、结构)规范的变量地址,例如:

Variable : int;

uiSize := SIZEOF (Variable);

dwAdd

DWORD

指示功能将对其执行读或写操作的存储器中的地址。

仅使用符合 IEC 61131-3(变量、数组、结构)规范的变量地址,例如:

Variable : int;

dwAdd := ADR (Variable);

 警告
意外的设备操作
在将文件复制到存储器之前,确认存储器位置的大小正确,文件的类型正确。
未按说明操作可能导致人身伤亡或设备损坏等严重后果。

下表介绍输出变量:

输出

类型

注释

xDone

BOOL

TRUE = 表示操作已成功完成。

xBusy

BOOL

TRUE = 表示功能块正在运行。

xError

BOOL

TRUE = 表示检测到错误,功能块中止操作。

eError

DataFileCopyError

表示检测到的数据文件复制错误的类型。

注: 如果修改内存中的用于写入文件的数据(变量、数组、结构),则会导致 CRC 完整性错误。

示例

此示例介绍如何复制文件命令:

VAR
LocalArray : ARRAY [0..29] OF BYTE;
myFileName: STRING := 'exportfile';
EXEC_FLAG: BOOL;
DataFileCopy: DataFileCopy;
END_VAR
DataFileCopy(
xExecute:= EXEC_FLAG,
sFileName:= myFileName,
xRead:= FALSE,
xSecure:= FALSE,
iLocation:= DFCL_INTERNAL,
uiSize:= SIZEOF(LocalArray),
dwAdd:= ADR(LocalArray),
xDone=> ,
xBusy=> ,
xError=> ,
eError=> );