Tenga en cuenta las siguientes restricciones en la lectura de un archivo CSV:
oSólo se admiten archivos CSV con codificación ASCII.
No se comprueba que la codificación del archivo sea realmente ASCII. Si el archivo contiene caracteres que no pertenecen al código de caracteres ASCII establecido, los valores representados por la aplicación no son válidos.
oLos valores leídos del archivo se almacenan como valores STRING en la aplicación. Esto se aplica incluso a los valores numéricos. Para poder procesar los valores, deben convertirse al tipo de datos adecuado. Para ello, se recomienda utilizar las funciones de conversión STRING_TO_. Las funciones de conversión requieren una sintaxis específica de los valores STRING según el tipo de datos de destino. Tenga en cuenta estos requisitos al crear los archivos para simplificar el proceso de los valores de lectura.
oLas operaciones de archivo son procesos que requieren mucho tiempo. Para no afectar a las funciones de control críticas en el tiempo de su aplicación, cree una tarea independiente con una prioridad más baja para estos procesos. Para obtener más información sobre la gestión de tareas, consulte el capítulo Watchdogs del sistema y de tareas en la guía de programación de su controlador.
oEl parámetro de timeout i_timTimeout se utiliza para supervisar la operación de lectura. Si durante la ejecución del bloque de funciones FB_CsvRead se supera el valor de timeout especificado, la operación de lectura se cancela y el bloque de funciones indica un error. Para seleccionar un valor adecuado para el parámetro de timeout, tenga en cuenta que la operación de lectura requiere diversos ciclos de tareas. Por tanto, calcule el producto del número de ciclos de tarea necesarias y el intervalo tareas para especificar el valor mínimo para el parámetro de timeout.
oEl número de ciclos depende, además del tamaño del archivo que se va a leer, del tamaño del bloque de proceso que se puede especificar con el parámetro Gc_uiCsvReadProcessingBlockSize en la GPL. El análisis del contenido del archivo se divide en diversas operaciones de lectura para reducir la carga del ciclo de tarea. Durante cada operación de lectura, se procesa un bloque de datos y, si se solicita, se almacena en el búfer. Cuanto mayor sea el tamaño del bloque de proceso, menos ciclos se necesitan para leer el archivo. Sin embargo, un tamaño mayor de bloque incrementa el tiempo de ejecución de esta operación de lectura específica.
oEl código de caracteres especificado como delimitador no se admite como parte de un valor.
oNo procese los datos desde el búfer incluido mediante i_stTableReadValues.pbyTable mientras la salida q_xBusy del bloque de funciones indique TRUE.
oNo acceda a un mismo archivo con diferentes bloques de funciones a la vez. Utilice la salida q_xBusy para bloquear la ejecución de bloques de funciones distintos.