FB_WriteFile Funktionsbeschreibung

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.2.0.3

Übernommen aus

-

Implementiert

-

Funktionsbeschreibung

Der Funktionsbaustein FB_WriteFile ermöglicht das Öffnen bzw. die Erstellung einer Datei im Dateisystem der Steuerung oder in einem erweiterten Speicher (z. B. SD-Speicherkarte) und das Schreiben des angegebenen Inhalts in die Datei. Informationen zum Dateisystem finden Sie im Kapitel zur Flash-Speicheranordnung im Programmierhandbuch Ihrer Steuerung. Das Dateiformat und der zu schreibende Inhalt haben keinen Einfluss auf den Funktionsbaustein.

Der Wert der ET_ModeFileOpen-Enumeration 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.

Der in die Datei zu schreibende Inhalt wird über einen Zeiger auf den Puffer im Anwendungsspeicher bereitgestellt, in dem die Daten gespeichert sind. Der Umfang der Daten wird in Byte angegeben und darf die Puffergröße nicht überschreiten.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_xExecute

BOOL

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

Siehe auch das Kapitel Verhalten der Funktionsbausteine mit dem Eingang i_xExecute.

i_sFilePath

STRING[255]

Dateipfad der Datei.

i_etModeFileOpen

ET_ModeFileOpen

Gibt den Modus für das Öffnen der 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_pbyBuffer

POINTER TO BYTE

Zeiger auf den von der Anwendung bereitgestellten Puffer. Er enthält den Inhalt, der in die Datei geschrieben werden soll.

i_udiSize

UDINT

Gibt die Anzahl der zu schreibenden Bytes an. Der Wert darf die Größe des Puffers nicht überschreiten.

HINWEIS: Stellen Sie sicher, dass der Zeiger ordnungsgemäß initialisiert und begrenzt ist, um Speicherzugriffsverletzungen aufgrund eines ungültigen Zeigers zu vermeiden. Verwenden Sie den arithmetischen Operator SIZEOF in Verbindung mit dem Zielpuffer, um den Wert für udiSize zu bestimmen.

Beispiel:

fbWriteFile.i_pbyBuffer := ADR(abyBuffer);
fbWriteFile.i_udiSize := SIZEOF(abyBuffer);

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.