FC_RestoreFiles

 

FC_RestoreFiles - Allgemeine Informationen

Übersicht

Typ

Funktion

Verfügbar ab

SystemInterface_1.34.1.0

Verwendet von:

-

Versionen:

Aktuelle Version

Aufgabe

Daten von einem Gerät (FTP-Verzeichnis, USB-Gerät, RAM-Disk) auf die Flash-Disk der Steuerung laden.

Beschreibung

Diese Funktion kopiert Daten (Dateistruktur wie auf der Flash-Disk) aus dem übergebenen Verzeichnis (FTP-Verzeichnis, USB-Gerät, RAM-Disk) auf die Steuerung und kann sie anschließend neu starten.

Sie können wählen, ob die vorhandenen Daten auf der Flash-Disk vorher gelöscht werden müssen oder ob die neuen Daten die alten überschreiben/ergänzen.

Die Funktion prüft zunächst die Speicherplatzverfügbarkeit auf der Flash-Disk:

oi_xDeleteExistingFiles = true: Das Image muss kleiner als der gesamte Speicher der Flash-Disk sein.

oi_xDeleteExistingFiles = false: Das Image muss kleiner als der freie Speicher der Flash-Disk sein.

Zu beachten:

oStellen Sie sicher, dass ein gültiges Verzeichnis vorhanden ist, aus dem die Dateien kopiert werden.

oStellen Sie sicher, dass während der Ausführung kein Zugriff auf die Flash-Disk erfolgt, z. B. durch die IEC-Applikation, über das Netzwerk usw.

oDie Funktion führt optional einen (i_xResetController) und am Ende einen Kaltstart (ColdReset) durch.

Deshalb sollte sichergestellt werden, dass sich vor dem Ausführen der Funktion alle Geräte in der entsprechenden Ruheposition befinden.

Außerdem bedeutet das erfolgreiche Ausführen dieser Funktion mit Reset das Ende der IEC-Applikation.

Es muss also nur im Fehlerfall auf Rückgabewerte geachtet bzw. die IEC-Applikation weitergeführt werden.

Dateien, die zuvor mit der Funktion FC_BackupAllFiles erstellt wurden, können mit obiger Funktion wiederhergestellt werden.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_strSourcePath

STRING[1023]

Pfad der zu kopierenden Dateien

i_xDeleteExistingFiles

BOOL

TRUE = Löscht die vorhandenen Dateien der Flash-Disk

FALSE = Fügt neue Dateien hinzu/ersetzt alte Dateien

i_xResetController

BOOL

TRUE = Steuerungs-Reset nach erfolgreichem Kopieren

FALSE = Kein Steuerungs-Reset

Rückgabewert

Datentyp

Beschreibung

DINT

0: Dateien wurden erfolgreich kopiert und Steuerung wurde nicht neu gestartet.

-1: Fehler beim Kopieren (USB-Gerät zu früh abgezogen?).

-316: Nicht genügend Speicher auf der Flash-Disk verfügbar, unnötige Daten im Quellverzeichnis?

-318: Ungültiger Pfad.

Beispiel 1

Anforderung

Der komplette Inhalt der Flash-Disk wird durch ein Image auf einem USB-Gerät aktualisiert (Firmwareaktualisierung)

Programm

//The complete controller content is on the USB device in the corresponding directory
//(/FlashDisk/Image)
   sSourcePath := 'usb2msd:0/image/';
   xDeleteExistingFiles := true;
   xRebootController := true;
   diStatus := FC_RestoreFiles ( sSourcePath, xDeleteExistingFiles,    xRebootController );
   IF diStatus <> 0 THEN
//Error when copying
   ;   
   END_IF

Ergebnis

Das Flash-Disk-Image wurde vom USB-Gerät auf die Steuerung überspielt und die Steuerung wurde neu gestartet. Hierdurch wird die neue Firmware vom Image übernommen.

Beispiel 2

Anforderung

Nutzerdaten vom einem FTP-Verzeichnis auf die Steuerung übertragen

Programm

//The user data is on the FTP directory and it was recognized accordingly
   strSourcePath := 'FTP_directory/Controller_Image/';
   xDeleteExistingFiles := false;
   xRebootController := false;
   iStatus := FC_RestoreFiles ( strSourcePath, bDeleteExistingFiles, bRebootController );
   IF iStatus <> 0 THEN
//Error when copying
   ;   
   END_IF

Ergebnis

Die Nutzerdaten wurden vom FTP-Verzeichnis auf die Steuerung übertragen. Sie könnten jedoch gleichnamige Dateien auf der Steuerung ersetzt haben.