此功能块可将存储器数据复制到文件,或将文件复制到存储器。该文件位于内部文件系统或外部文件系统(SD 卡)。
DataFileCopy 功能块可以:
从格式化文件中读取数据,或者
将数据从存储器复制到一定格式的文件中。有关更多信息,请参阅非易失性存储器结构。
下表介绍输入变量:
输入 |
类型 |
注释 |
---|---|---|
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(变量、数组、结构)规范的变量地址,例如:
|
dwAdd |
DWORD |
指示功能将对其执行读或写操作的存储器中的地址。 仅使用符合 IEC 61131-3(变量、数组、结构)规范的变量地址,例如:
|
警告 | |
---|---|
下表介绍输出变量:
输出 |
类型 |
注释 |
---|---|---|
xDone |
BOOL |
|
xBusy |
BOOL |
|
xError |
BOOL |
|
eError |
表示检测到的数据文件复制错误的类型。 |
此示例介绍如何复制文件命令:
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=> );