FB_CsvRead- Wichtige Hinweise

Hinweise

Beachten Sie die folgenden Einschränkungen beim Lesen einer CSV-Datei:

oUnterstützt werden nur CSV-Dateien mit ASCII-Codierung.

Es wird nicht geprüft, ob es sich bei der Dateicodierung tatsächlich um ASCII handelt. Wenn die Datei Zeichen außerhalb des Bereichs des ASCII-Zeichencodesatzes enthält, sind die von der Anwendung wiedergegebenen Wert ungültig.

oDie aus der Datei ausgelesenen Werte werden als STRING-Werte in der Anwendung gespeichert. Das gilt ebenfalls für numerische Werte. Bevor die Werte verarbeitet werden können, müssen sie in einen geeigneten Datentyp konvertiert werden. Dazu werden am besten die STRING_TO_-Konvertierungsfunktionen verwendet. Für die Konvertierungsfunktionen müssen die STRING-Werte je nach Zieldatentyp eine spezifische Syntax aufweisen. Beachten Sie diese Anforderungen bei der Erstellung von Dateien, um die Verarbeitung ausgelesener Werte zu erleichtern.

oOperationen mit Dateien sind zeitaufwändige Prozesse. Um eine Beeinträchtigung zeitkritischer Steuerungsfunktionen in Ihrer Anwendung zu verhindern, erstellen Sie für diese Prozesse eine separate Task mit niedrigerer Priorität. Weitere Informationen zur Taskverwaltung finden Sie im Kapitel zu den system- und taskspezifischen Watchdogs im Programmierhandbuch Ihrer Steuerung.

oDer Timeout-Parameter i_timTimeout ermöglicht die Überwachung des Lesevorgangs. Wenn der für das Timeout festgelegte Wert bei der Ausführung des FB_CsvRead-Funktions­bausteins überschritten wird, wird der Lesevorgang abgebrochen und der Funktionsbaustein gibt einen Fehler aus. Um einen geeigneten Wert für den Timeout-Parameter auszuwählen, sollten Sie berücksichtigen, dass sich der Lesevorgang über mehrere Taskzyklen erstreckt. Berechnen Sie deshalb die Anzahl der erforderlichen Taskzyklen und das Taskintervall, um den Mindestwert für den Timeout-Parameter zu bestimmen.

oDie Anzahl der Zyklen ist neben der Größe der zu lesenden Datei auch von der Größe des Verarbeitungsblocks abhängig, der über den Parameter Gc_uiCsvReadProcessing­BlockSize in der GPL festgelegt werden kann. Die Analyse des Dateiinhalts wird in mehrere Lesevorgänge untergliedert, um die Last für einen einzelnen Taskzyklus zu verringern. Im Rahmen jedes Lesevorgangs wird ein Datenblock verarbeitet und nach Bedarf im Puffer gespeichert. Je größer der zu verarbeitende Block, umso weniger Zyklen werden für das Lesen der Datei benötigt. Allerdings führt eine erhöhte Blockgröße zu einer Verlängerung der Ausführungszeit für den betroffenen Lesevorgang.

oDer als Trennzeichen verwendete Zeichencode wird nicht als Teil eines Werts unterstützt.

oVerarbeiten Sie keine Daten aus dem über i_stTableReadValues.pbyTable bereitge­stellten Puffer, solange der Ausgang q_xBusy des Funktionsbausteins den Wert TRUE aufweist.

oGreifen Sie auf nicht mit unterschiedlichen Funktionsbausteinen gleichzeitig auf dieselbe Datei zu. Verwenden Sie den Ausgang q_xBusy, um die Ausführung verschiedener Funktionsbau­steine zu sperren.