此功能块可将存储器数据复制到文件,或将文件复制到存储器。该文件位于内部文件系统或外部文件系统(SD 卡)。
o从格式化文件中读取数据,或者
o将数据从存储器复制到一定格式的文件中。有关详细信息,请参阅 Flash Memory Organization。
若要查看 IL 或 ST 语言的一般表示形式,请参阅功能和功能块表示形式一章。
下表介绍输入变量:
输入 |
类型 |
注释 |
---|---|---|
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 |
表示检测到的数据文件复制错误的类型。 |
注意: 如果您在文件写入的区域内写入到存储器变量,将发生 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=> );