DataFileCopy:复制文件命令

功能块描述

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

DataFileCopy 功能块可以:

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

o将数据从存储器复制到一定格式的文件中。有关详细信息,请参阅 Flash Memory Organization

图形表示形式

G-SE-0017243.2.jpg

 

 

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); 

Warning_Color.gif警告

意外的设备操作

在将文件复制到存储器之前,确认存储器位置的大小正确,文件的类型正确。

不遵循上述说明可能导致人员伤亡或设备损坏。

下表介绍输出变量:

输出

类型

注释

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=> );