FB_CsvRead注意事项

注意事项

读取 CSV 文件时的注意事项:

o仅支持采用 ASCII 编码的 CSV 文件。

不会检查文件编码是否实际上是 ASCII 编码。如果文件包含不属于 ASCII 字符代码集的字符,则应用程序提供的值无效。

o从文件中读取的这些值作为 STRING 值存储在应用程序中。这甚至适用于数值。在处理这些值之前,需要将它们转换成合适的数据类型。为此,最好是使用 STRING_TO_ 转换功能。这些转换功能根据目标数据类型要求使用 STRING 值的特定语法。创建文件时,应考虑以上要求,以便简化对读取值的处理。

o文件操作进程较为耗时。为了避免影响到应用程序中那些注重时间的控制功能,请为这些进程创建优先级较低的独立任务。有关任务管理的更多信息,请参阅您控制器编程指南中的章节系统和任务看门狗

o超时参数 i_timTimeout 用于监控读取操作。如果在 FB_CsvRead 功能块的执行期间超过所指定的超时值,读取操作便会被取消,而功能块则会生成错误消息。为了选择合适的超时参数值,请考虑让读取操作包含多个任务循环。这样,只需要计算所需任务循环数与任务时间间隔的乘积,就能得出超时参数的最小值。

o循环的数量除了取决于要读取的文件的大小之外,还取决于 GPL 中参数 Gc_uiCsvReadPro­cessingBlockSize 可以指定的处理块大小。将文件的内容分析拆分为多个读取操作,可减小单个任务循环的负荷。在每个读取操作期间,处理一个数据块,如有需要,可将该数据块存储到缓冲区。处理块越大,文件读取所需的循环就越少。但若处理块较大,也增加了单个读取操作的执行时间。

o指定作为定界符的字符代码不应作为值的一部分。

o只要功能块的输出 q_xBusy指示 TRUE,就不要处理通过 i_stTableReadValues.pbyTable 提供的缓冲区数据。

o不要同时以不同的功能块访问同一个文件。使用输出 q_xBusy来锁定不同功能块的执行。