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 DataFileCopy-Funktionsbaustein kann folgende Aktionen ausführen:
Daten aus einer formatierten Datei lesen oder
Daten aus dem Arbeitsspeicher in eine formatierte Datei kopieren. Weitere Informationen finden Sie unter Non-Volatile Memory Organization.
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: Kopieren von Daten aus der von sFileName identifizierten Datei in den internen Speicher der Steuerung. FALSE: Kopieren von Daten aus dem internen Speicher der Steuerung in die von sFileName identifizierte Datei. |
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 Dateien ist /usr/DTA im internen Dateisystem. 1: Der Speicherort der Dateien ist /usr/DTA im 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=> );