DataFileCopy: Befehle zum Kopieren von Dateien
Beschreibung des Funktionsbausteins
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:
oDaten aus einer formatierten Datei lesen oder
oDaten aus dem Arbeitsspeicher in eine formatierte Datei kopieren. Weitere Informationen finden Sie unter Flash Memory Organization.
Name der Bibliothek: PLCSystemBase
Namespace: PLCSystemBase
Darstellung in AWL (IL) und ST
Die allgemeine Darstellung in den Sprachen AWL (IL) oder ST finden Sie im Kapitel Darstellung von Funktionen und Funktionsbausteinen.
Beschreibung der E/A-Variablen
In der folgenden Tabelle werden die Eingangsvariablen beschrieben:
Eingang |
Typ |
Kommentar |
---|---|---|
xExecute |
BOOL |
Startet die Ausführung des Funktionsbausteins an einer steigenden Flanke. Bei fallender Flanke werden die Ausgänge des Funktionsbausteins zurückgesetzt, sobald die laufende Ausführung abgeschlossen ist. HINWEIS: Bei einer fallenden Flanke fährt die Funktion bis zum Abschluss ihrer Ausführung fort und aktualisiert die zugehörigen Ausgänge, die für einen Scanvorgang ihren Wert beibehalten und anschließend zurückgesetzt werden. |
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: Variable : int; uiSize := SIZEOF (Variable); |
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: Variable : int; dwAdd := ADR (Variable); |
|
UNBEABSICHTIGTER GERÄTEBETRIEB |
Stellen Sie sicher, dass der Speicherort des Arbeitsspeichers die richtige Größe und die Datei den richtigen Typ aufweist, bevor Sie die Datei in den Speicher kopieren. |
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. |
In der folgenden Tabelle werden die Ausgangsvariablen beschrieben:
Ausgang |
Typ |
Kommentar |
---|---|---|
xDone |
BOOL |
TRUE = Gibt an, dass die Aktion erfolgreich abgeschlossen wurde. |
xBusy |
BOOL |
TRUE = Gibt an, dass der Funktionsbaustein ausgeführt wird. |
xError |
BOOL |
TRUE = Gibt an, dass ein Fehler festgestellt wurde und der Funktionsbaustein die Aktion abgebrochen hat. |
eError |
Gibt den Typ des beim Kopieren der Datendatei erkannten Fehlers an. |
HINWEIS: Wenn Sie in eine Speichervariable innerhalb des Bereichs für den Dateischreibvorgang schreiben, wird ein CRC-Integritätsfehler ausgegeben.
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=> );