Dieser Funktionsbaustein kopiert Speicherdaten in eine bzw. aus einer Datei. Die Datei befindet sich entweder im internen oder in einem externen Dateisystem (SD-Karte).
Der Funktionsbaustein DataFileCopy kann:
Daten aus einer formatierten Datei lesen oder
Daten aus dem Arbeitsspeicher in eine formatierte Datei kopieren. Weitere Informationen finden Sie unter Organisation des nicht-flüchtigen Speichers.
Die allgemeine Darstellung in den Sprachen AWL (IL) oder ST finden Sie im Kapitel Darstellung von Funktionen und Funktionsbausteinen.
In der folgenden Tabelle werden die Eingangsvariablen beschrieben:
Eingang |
Typ |
Kommentar |
---|---|---|
xExecute |
BOOL |
Startet die Ausführung des Funktionsbausteins an der steigenden Flanke. Bei fallender Flanke werden die Ausgänge des Funktionsbausteins zurückgesetzt, sobald die laufende Ausführung abgeschlossen ist.
HINWEIS: Bei fallender Flanke wird die Funktion bis zum Abschluss ausgeführt und die zugehörigen Ausgänge werden aktualisiert. Die Ausgänge behalten ihren Wert für einen Zyklus und werden dann zurückgesetzt.
|
sFileName |
STRING |
Dateiname ohne Erweiterung (die Erweiterung .DTA wird automatisch hinzugefügt). Verwenden Sie nur alphanumerische Zeichen (a - z, A - Z, 0 - 9). |
xRead |
BOOL |
TRUE: Kopiert Daten aus einer Datei, die durch sFileName gekennzeichnet ist, in den internen Speicher der Steuerung. FALSE: Kopiert Daten aus dem internen Speicher der Steuerung in die Datei, die durch sFileName gekennzeichnet ist. |
xSecure |
BOOL |
TRUE: Die MAC-Adresse wird immer in der Datei gespeichert. Nur eine Steuerung mit derselben MAC-Adresse kann Daten aus der Datei auslesen. FALSE: Eine andere Steuerung mit demselben Speichertyp kann Daten aus der Datei auslesen. |
iLocation |
INT |
0: Der Speicherort der Datei ist /usr/DTA im internen Dateisystem. 1: Der Speicherort der Datei ist /usr/DTA in einem externen Dateisystem (SD-Karte).
HINWEIS: Wenn die Datei noch nicht im Verzeichnis vorhanden ist, wird sie erstellt.
|
uiSize |
UINT |
Gibt die Dateigröße in Byte an. Das Maximum ist 65534 Byte. Sie können nur Adressen von Variablen verwenden, die IEC 61131-3-konform sind (Variablen, Arrays, Strukturen), zum Beispiel:
|
dwAdd |
DWORD |
Verweist auf die Adresse im Arbeitsspeicher, an der die Funktion lesen oder schreiben wird. Sie können nur Adressen von Variablen verwenden, die IEC 61131-3-konform sind (Variablen, Arrays, Strukturen), zum Beispiel:
|
WARNUNG | |
---|---|
In der folgenden Tabelle werden die Ausgangsvariablen beschrieben:
Ausgang |
Typ |
Kommentar |
---|---|---|
xDone |
BOOL |
|
xBusy |
BOOL |
|
xError |
BOOL |
|
eError |
Gibt den Typ des beim Kopieren der Datendatei erkannten Fehlers an. |
In diesem Beispiel wird beschrieben, wie Dateibefehle kopiert werden:
VAR
LocalArray : ARRAY [0..29] OF BYTE;
myFileName: STRING := 'exportfile';
EXEC_FLAG: BOOL;
DataFileCopy: DataFileCopy;
END_VAR
DataFileCopy(
xExecute:= EXEC_FLAG,
sFileName:= myFileName,
xRead:= FALSE,
xSecure:= FALSE,
iLocation:= DFCL_INTERNAL,
uiSize:= SIZEOF(LocalArray),
dwAdd:= ADR(LocalArray),
xDone=> ,
xBusy=> ,
xError=> ,
eError=> );