FB_CsvWrite Funktionsbeschreibung

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.0.8.0

Übernommen aus

-

Implementiert

-

Funktionsbeschreibung

Der Funktionsbaustein FB_CsvWrite ermöglicht das Schreiben von Werten in eine CSV-Datei, die sich im Dateisystem der Steuerung oder in einem Erweiterungsspeicher (z. B. SD-Speicherkarte) befindet. Er ermöglicht ebenfalls die Erstellung einer neuen Datei. Informationen zum Dateisystem finden Sie im Kapitel zur Flash-Speicheranordnung im Programmierhandbuch Ihrer Steuerung.

Die in die Datei zu schreibenden Daten werden in dem von der Anwendung bereitgestellten Puffer als Variablen des Typs STRING gespeichert. Deklarieren Sie den Puffer in der Anwendung als zweidimensionales ARRAY des Typs STRING. Verwenden Sie den Eingang i_stTableWriteValues zur Bereitstellung der Dimensionen und des Zeigers des Arrays für den Funktionsbaustein. Weitere Informationen finden Sie in der Struktur ST_CsvTable.

Bei der Ausführung des Funktionsbausteins wird der Eingang i_stTableReadValues.pbyTable intern zur weiteren Verwendung gespeichert. Wenn während der Ausführung des Funktionsbausteins (q_xBusy = TRUE) eine Online-Änderung erkannt wird, werden die intern verwendeten Variablen mit dem aktuellen Wert des Eingangs aktualisiert.

HINWEIS: Weisen Sie i_stTableReadValues.pbyTable während der Funktionsbausteinausführung keinem anderen Speicherbereich zu.

Das zweidimensionale Array repräsentiert die Tabellenstrukture mit Zeilen und Spalten. Jede Zeile entspricht einem Datensatz. Die Anzahl der Spalten entspricht der maximalen Anzahl an Werten, die ein Datensatz aufnehmen kann.

Der Eingang i_stWriteParameter stellt den Parameter zur Steuerung des Schreibvorgangs bereit. Verwenden Sie den Parameter sDelimiter zur Festlegung des Zeichencodes für die Trennzeichen, die zur Trennung der einzelnen Werte in der Datei eingefügt werden. Der Wert des Parameters etModeFileOpen ermöglicht Ihnen die Angabe, ob die Daten an eine bereits vorhandene Datei angefügt werden sollen oder ob eine neue Datei erstellt werden soll. Mithilfe der Parameter uiNumOfRows und uiNumOfColumns können Sie die Menge der zu schreibenden Daten festlegen.

Der Zeichencode LF (0A hex) wird eingefügt, um einen Zeilenumbruch zwischen zwei Datensätzen auszulösen.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_xExecute

BOOL

Bei einer steigenden Flanke an diesem Eingang öffnet bzw. erstellt der Funktionsbaustein die angegebene CSV-Datei und schreibt den angegebenen Inhalt in die Datei.

i_sFilePath

STRING[255]

Dateipfad der CSV-Datei.

Wenn ein Dateiname ohne Dateierweiterung angegeben wird, fügt der Funktionsbaustein die Erweiterung .csv hinzu.

i_stWriteParameter

ST_WriteParameter

Gibt den Modus für das Öffnen der CSV-Datei und den in die Datei zu schreibenden Inhalt an.

i_timTimeout

TIME

Nach Ablauf dieses Zeitraums wird die Ausführung abgebrochen.

Wenn der Wert T#0s ist, wird der Standardwert T#2s angewendet.

i_stTableWriteValues

ST_CsvTable

Struktur zur Übergabe des von der Anwendung bereitgestellten Puffers an den Funktionsbaustein (siehe die ST_CsvTable-Struktur).

Ausgang

Datentyp

Beschreibung

q_xDone

BOOL

Wenn dieser Ausgang auf TRUE gesetzt wird, wurde die Ausführung erfolgreich abgeschlossen.

q_xBusy

BOOL

Wenn dieser Ausgang auf TRUE gesetzt wird, bedeutet das, dass der Funktionsbaustein ausgeführt wird.

q_xError

BOOL

Wenn dieser Ausgang auf TRUE gesetzt wird, wurde ein Fehler identifiziert. Für weitere Informationen, siehe q_etResult und q_etResultMsg.

q_etResult

ET_Result

Stellt Diagnose- und Statusinformationen in Form numerischer Werte bereit.

Wenn q_xBusy = TRUE, dann gibt der Wert den Status an.

Wenn q_xDone oder q_xError = TRUE, dann entspricht der Wert dem Ergebnis.

q_sResultMsg

STRING[80]

Stellt zusätzliche Diagnose- und Statusinformationen in Form von Textmeldungen bereit.

q_udiFileSize

UDINT

Gibt die Dateigröße der zuletzt verarbeiteten Datei in Byte an.

Verwendung von Variablen des Typs POINTER TO … oder REFERENCE TO …

Der Funktionsbaustein stellt Eingänge und/oder Ein-/Ausgänge vom Typ POINTER TO… oder REFERENCE TO… bereit. Mithilfe eines derartigen Zeigers bzw. einer derartigen Referenz greift der Funktionsbaustein auf den adressierten Speicherbereich zu.

HINWEIS: Bei einer Online-Änderung kann es vorkommen, dass die Speicherbereiche zu neuen Speicherpositionen verschoben wurden. Infolgedessen ist ein Zeiger bzw. eine Referenz dadurch ungültig. Um Fehler in Verbindung mit ungültigen Zeigern zu vermeiden, müssen Variablen des Typs POINTER TO… oder REFERENCE TO… zyklisch aktualisiert werden oder zumindest am Anfang des Zyklus, in dem sie verwendet werden.