DataFileCopy: Comandos para copiar archivos

Descripción de bloques de funciones

Esta función permite copiar los datos de la memoria en un archivo y viceversa. El archivo se encuentra en el sistema interno o el sistema externo (llave USB) de archivos.

El bloque de funciones DataFileCopy puede:

oleer datos de un archivo formateado, o

ocopiar datos del búfer de memoria a un archivo formateado. Para obtener más información, consulte Organización de la memoria Flash.

Representación gráfica

G-SE-0017243.2.jpg

 

 

Representación IL y ST

Para ver la representación general en lenguaje IL o ST, consulte el capítulo Representación de funciones y de bloques de funciones.

Descripción de variables de E/S

En esta tabla se describen las variables de entrada:

Entrada

Tipo

Comentario

xExecute

BOOL

En el flanco ascendente, inicia la ejecución del bloque de funciones.

En el flanco descendente, restablece las salidas del bloque de funciones cuando finaliza cualquier ejecución en curso.

NOTA: Con el flanco descendente, la función continúa hasta que concluye su ejecución y actualiza sus salidas. Las salidas se conservan durante un ciclo y se restablecen.

sFileName

STRING

Nombre de archivo sin extensión (la extensión .DTA se incluye automáticamente). Utilice solamente caracteres alfanuméricos (mayúsculas, minúsculas o números).

xRead

BOOL

TRUE: copiar datos del archivo identificado por sFileName a la memoria interna del controlador.

FALSE: copiar datos de la memoria interna del controlador al archivo identificado por sFileName.

xSecure

BOOL

TRUE: La dirección MAC se almacena siempre en el archivo. Sólo un controlador con la misma dirección MAC podrá leer el archivo.

FALSE: Otro controlador con el mismo tipo de memoria puede leer el archivo.

iLocation

INT

0: la ubicación del archivo en el sistema interno de archivos es /usr/DTA.

1: la ubicación del archivo en el sistema externo de archivos (llave USB) es /usr/DTA.

NOTA: Si el archivo no existe todavía en el directorio, se creará.

uiSize

UINT

Indica el tamaño en bytes. El máximo son 65.534 bytes.

Utilice solamente direcciones de variables conforme a IEC 61131-3 (variables, matrices, estructuras), por ejemplo:

Variable : int;

uiSize := SIZEOF (Variable); 

dwAdd

DWORD

Indica la dirección de la memoria desde la que leerá o en la que escribirá la función.

Utilice solamente direcciones de variables conforme a IEC 61131-3 (variables, matrices, estructuras), por ejemplo:

Variable : int;

dwAdd := ADR (Variable); 

Warning_Color.gifADVERTENCIA

FUNCIONAMIENTO IMPREVISTO DEL EQUIPO

Compruebe que el tamaño de la ubicación de la memoria es el adecuado y que el tipo de archivo es el correcto antes de copiar el archivo a la memoria.

El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o daño al equipo.

En esta tabla se describen las variables de salida:

Salida

Tipo

Comentario

xDone

BOOL

TRUE indica que la acción se ha llevado a cabo correctamente.

xBusy

BOOL

TRUE indica que el bloque de funciones se está ejecutando.

xError

BOOL

TRUE indica que se ha detectado un error y que el bloque de funciones ha anulado la acción.

eError

DataFileCopyError

Indica el tipo de error de copia de archivo de datos que se ha detectado.

NOTA:  Si escribe en la variable de memoria dentro del área de escritura del archivo, se producirá un error de integridad de CRC.

Ejemplo

En este ejemplo se describe cómo copiar comandos de archivos:

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