Datei-Transfer
Einführung
Der Datei-Transfer wird verwendet, um Dateien von einem IEC 61850-Server herunterzuladen. Die Dateiübertragungsfunktion, wie sie vom WinCC OA-Client implementiert wurde, verwendet MMS-Dienste und ist formatunabhängig, d. h., sie kann jedes vom Server verwendete Format verarbeiten.
Der WinCC OA-Client stellt detaillierte Informationen über den Status der laufenden Dateiübertragung im internen Datenpunktelement _IEC61850_IED.State.FileTransferResponseCode bereit, im Folgenden als State DPE bezeichnet.
Bereitgestellte Funktionen
Der WinCC OA-Client stellt die folgenden Funktionen bereit:
- Verzeichnis lesen – ruft eine Liste der zum Download verfügbaren Dateien ab.
- Datei herunterladen – lädt eine spezifische Datei herunter.
Verzeichnis lesen
Das Aufrufen dieser Funktion sendet eine read directory-Anfrage an den Server. Der Server antwortet, indem er eine Liste der zum Download verfügbaren Dateien sendet.
Die Funktion kann entweder über das Dateiübertragungs-Panel (siehe Liste der Dateien abrufen) oder durch Setzen der entsprechenden internen Datenpunkte (siehe Nach neuen Dateien suchen) aufgerufen werden.
Die Funktion erfordert die Angabe des Verzeichnisses auf dem Server, das der Client lesen möchte (siehe auch Zielpfad). Wenn Sie ein "/" an die Funktion übergeben, liest der Treiber das Verzeichnis, das auf dem Server als Root-Verzeichnis für Dateidienste konfiguriert wurde. Die Definition dieses Root-Verzeichnisses ist eine Serverkonfigurationsfrage und für den Client transparent. Das Lesen des Root-Verzeichnisses gibt eine Liste aller zum Download verfügbaren Dateien zurück.
Sie können ein spezifisches Verzeichnis auf dem Server lesen, indem Sie den Pfad ab dem Root-Verzeichnis der Dateidienste angeben, z. B.: /anysubdirectory/ gibt eine Liste aller Dateien in /anysubdirectory/ und allen darunterliegenden Verzeichnissen zurück.
Nach dem Senden der Anfrage schreibt der Treiber FILE_READ_DIRECTORY_IN_PROGRESS (100) in das State DPE.
Während eine Datei-Download-Anfrage in Bearbeitung ist, wird jede andere Anfrage abgelehnt.
Der Treiber schreibt die Liste der empfangenen Dateinamen in die interne DPE
_IEC61850_IED.FileTransfer.FileList
. Dateinamen werden mit dem vollständigen Pfad auf der Serverseite in dieses DPE
geschrieben, z. B.
\COMTRADE\FRA00001.cfg.
Nach erfolgreichem Abschluss schreibt der Treiber FILE_DIRECTORY_SUCCESS (0) in das State DPE. Im Falle eines Fehlers wird ein entsprechender Fehlercode in das State DPE geschrieben.
Datei herunterladen
Das Aufrufen dieser Funktion startet den download file-Prozess, das Herunterladen einer spezifischen Datei. Der Treiber sendet die Sequenz von Anfragen, die erforderlich sind, um die angegebene Datei herunterzuladen, und speichert die Datei am angegebenen Ort auf der WinCC OA-Seite (siehe auch Zielpfad unten). Im Folgenden wird der angegebene Ort als Zielverzeichnis bezeichnet.
Nach dem Senden der Anfrage schreibt der Treiber FILE_DOWNLOAD_IN_PROGRESS (101) in das State DPE.
Während eine Dateidownload-Anfrage in Bearbeitung ist, wird eine weitere Dateidownload-Anfrage vom Treiber in die Warteschlange gestellt, aber Verzeichnislese-Anfragen werden abgelehnt.
Nach erfolgreichem Abschluss schreibt der Treiber FILE_DOWNLOAD_SUCCESS (51) in das State DPE. Im Falle eines Fehlers wird ein entsprechender Fehlercode in das State DPE geschrieben.
Im Zielverzeichnis wird die Datei, die gerade heruntergeladen wird, mit dem
Anhang ".MMSdownload"
geöffnet. Dieser Anhang bleibt während des
Downloadprozesses bestehen und wird nach Abschluss entfernt.
Beispiel: Beim Herunterladen der Datei FRA00001.cfg sehen Sie die folgenden Dateinamen im Zielverzeichnis:
FRA00001.cfg.MMSdownload
=> Die DateiFRA00001.cfg.MMSdownload
wurde lokal (auf der Client-Seite) geöffnet, um\COMTRADE\FRA00001.cfg
vom Server herunterzuladen. Der Download der Datei ist in Bearbeitung.FRA00001.cfg
=> Der Download der Datei\COMTRADE\FRA00001.cfg
wurde erfolgreich abgeschlossen.
Beachten Sie, dass, wenn Sie eine Datei mit der Endung .MMSdownload
in Ihrem Zielverzeichnis sehen, dies bedeuten kann, dass:
- der Dateidownload in Bearbeitung ist.
- ein Fehler während des Dateidownloads aufgetreten ist. In diesem Fall ist die Datei beschädigt und sehr wahrscheinlich unbrauchbar.
Wenn eine Datei bereits heruntergeladen wurde, verweigert der Treiber einen weiteren Downloadversuch. Falls es notwendig ist, eine spezifische Datei erneut herunterzuladen, entfernen oder benennen Sie bitte die zuvor heruntergeladene Datei um.
Der Dateidownload ist ein Dienst, der viele Ressourcen verbraucht und eine hohe Belastung für alle beteiligten Komponenten (Client, Server, Netzwerk) darstellt. Es muss berücksichtigt werden, dass
- Wenn die Dateiliste lang ist, der Server sie in mehreren Segmenten sendet. Das bedeutet, dass selbst das Herunterladen der Dateiliste den Austausch mehrerer Nachrichten zwischen Client und Server erfordern kann.
- das Herunterladen einer großen Datei den Austausch von mehreren hundert Nachrichten zwischen Client und Server erfordern kann.
Aus diesem Grund dürfen Dateidienstanfragen nicht zu schnell hintereinander gesendet werden.
Konfiguration
Zielpfad
Dies definiert das Zielverzeichnis auf der Client-Seite, d. h. das Verzeichnis, in dem die heruntergeladenen Dateien gespeichert werden. Das Standardverzeichnis ist <project directory>\data\IEC61850\DR\.
Der Zielpfad ist gerätespezifisch. Es wird empfohlen, den Standardpfad in einen für das jeweilige Gerät spezifischen Pfad zu ändern, z. B. <project
directory>\data\IEC61850\DR\iec61850_srv\.
Manueller Dateidownload
Um Dateien manuell herunterzuladen, verwenden Sie bitte das Dateiübertragungsfenster ( ).

Server
- Servername
- Verwenden Sie diese Dropdown-Liste, um den IEC 61850-Server auszuwählen, von dem Sie die Dateien herunterladen möchten. Die in dieser Liste angezeigten Servernamen sind die Namen der in Ihrem WinCC OA-Projekt konfigurierten IEC 61850-Geräte.
Client-Konfiguration
- Zielpfad
- Definiert das Zielverzeichnis auf der Client-Seite, d. h. das Verzeichnis, in dem die vom Server heruntergeladenen Dateien gespeichert werden (siehe auch Zielpfad). Bitte verwenden Sie den Dateiauswahldialog neben dem Textfeld, um den Pfad festzulegen.
Dateiliste
- Quellpfad
- Definiert den Pfad zu dem Verzeichnis auf dem Server, das Sie lesen möchten (siehe auch Verzeichnis lesen).
- Dateiliste abrufen
- Die vom Server zurückgegebene Liste der Dateinamen wird im Haupttextfeld unten angezeigt. Die Dateinamen werden mit dem vollständigen Pfad auf der Serverseite angezeigt, z. B.
\COMTRADE\FRA00001.cfg
. - Ausgewählte Datei herunterladen
- Wählen Sie eine beliebige Datei im Haupttextfeld oben aus und klicken Sie auf diese Schaltfläche. Dadurch wird die ausgewählte Datei vom Server in das durch den Zielpfad definierte Zielverzeichnis heruntergeladen.
Automatisierter Dateidownload
Dieser Abschnitt bietet eine Anleitung zur Implementierung einer Benutzeranwendung, um Dateien automatisch von einem IEC 61850-Server herunterzuladen.
Anforderungen
Die Anwendung muss die folgenden Anforderungen erfüllen:
- Sie muss periodisch prüfen, ob neue Dateien auf dem Server verfügbar sind.
- Das Ergebnis dieser Prüfung wird eine Liste neuer Dateien sein, die leer oder nicht leer sein kann.
- Die Anwendung muss für jedes Element dieser Liste neuer Dateien einen Download initiieren.
- Die Anwendung muss korrekt heruntergeladene Dateien nachverfolgen, indem sie eine Liste heruntergeladener Dateien führt oder dynamisch generiert.
- Die Liste heruntergeladener Dateien muss die Dateinamen mit dem vollständigen Serverpfad speichern, z. B. \COMTRADE\FRA00001.cfg.
- Die Anwendung muss in der Lage sein, Fehler zu behandeln. Um dies zu ermöglichen, muss sie sich mit dem State DPE verbinden. Bitte beachten Sie, dass die Werte dieses DPE flüchtig sind und möglicherweise nur für wenige Millisekunden verfügbar sind.
Der Treiber stellt zwei Funktionen bereit, read directory und download file, die unter Bereitgestellte Funktionen beschrieben sind. Diese Funktionen zusammen mit der Datenpunkt-Schnittstelle des Treibers können als API für die Realisierung des automatisierten Dateidownloads betrachtet werden.
Empfohlene Implementierung
Überprüfung auf neue Dateien
- Legen Sie den Pfad zu dem Verzeichnis fest, das Sie auf dem Server lesen möchten, im internen DPE _IEC61850_IED.FileTransfer.SourcePath.
- Setzen Sie das interne DPE _IEC61850_IED.Command.FileTransfer.ReadDirectory auf TRUE. Dies wird die Anforderung zum Lesen des Verzeichnisses initiieren.
- Überprüfen Sie das State DPE.
- Nach der Initiierung der Leseanforderung soll dessen Wert FILE_READ_DIRECTORY_IN_PROGRESS (100) sein.
- Wenn die Dateiliste erfolgreich heruntergeladen wurde, wird
FILE_DIRECTORY_SUCCESS (0) in das State DPE
geschrieben.
- Lesen Sie die empfangene Liste der Dateien aus dem internen DPE _IEC61850_IED.FileTransfer.FileList.
- Vergleichen Sie diese Liste mit der Liste der heruntergeladenen Dateien. Der Unterschied zwischen diesen Listen wird die Liste der neuen Dateien sein.
- Die Liste der neuen Dateien muss die Dateinamen mit dem vollständigen Pfad auf der Serverseite speichern, z. B. \COMTRADE\FRA00001.cfg.
- Wenn ein Fehler gemeldet wird, wird der Fehlercode in das State DPE geschrieben, und nichts wird in _IEC61850_IED.FileTransfer.FileList geschrieben.
- Beachten Sie:
- Im Falle eines Fehlers ist die Liste, die unter _IEC61850_IED.FileTransfer.FileList gespeichert ist, die Liste, die nach der vorherigen Verzeichnisleseanfrage empfangen wurde.
- Wenn die Verzeichnisleseanfrage einmal fehlschlägt, ist das nicht kritisch, da die Anwendung diese Anfrage periodisch sendet. Wenn die Anfrage wiederholt fehlschlägt, liegt höchstwahrscheinlich ein Problem mit dem Server vor, und menschliches Eingreifen ist erforderlich. Wie die Anwendung dies meldet, ist eine Designfrage.
- Es ist notwendig, ein eindeutiges Stammverzeichnis für jedes in WinCC OA konfigurierte IEC 61850-Gerät festzulegen, z. B. <project directory>\data\IEC61850\DR\iec61850_srv\.
- Wenn der Wert im State DPE >= 100 ist, ist eine Verzeichnisleseanfrage nicht erlaubt und wird abgelehnt.
- Der Zeitraum zwischen zwei Verzeichnisleseanfragen darf nicht kürzer als 4 Sekunden sein.
- Die Nachverfolgung, welche Dateien korrekt heruntergeladen wurden, liegt im Verantwortungsbereich der Benutzeranwendung.
- Auch wenn Ihre Anwendung immer dasselbe Verzeichnis des Servers liest, müssen Sie den Quellpfad in _IEC61850_IED.FileTransfer.SourcePath jedes Mal festlegen, bevor Sie TRUE im internen DPE _IEC61850_IED.Command.FileTransfer.ReadDirectory setzen. Der Grund hierfür ist, dass nach der letzten automatisierten Überprüfung Ihrer Anwendung ein Lesevorgang aus einem anderen Verzeichnis entweder manuell oder durch eine andere Anwendung ausgelöst worden sein könnte.
- Sie können ein bestimmtes Verzeichnis auf dem Server lesen. Z. B. wenn Sie /COMTRADE/ als Quellpfad festlegen, würde Ihre Anwendung nur diese Art von Fehlerdateien automatisch herunterladen. Alle anderen auf dem Server verfügbaren Dateien müssen dann manuell oder durch eine andere Anwendung heruntergeladen werden. Dies eröffnet die Möglichkeit, Fehlerdateien periodisch mit höherer Frequenz zu überprüfen als Betriebsprotokolle (z. B. alle 4 Sekunden vs. nur einmal täglich).
Neue Dateien herunterladen
Falls die Liste der neuen Dateien nicht leer ist, d. h. neue Dateien auf dem Server erkannt wurden, muss die Anwendung diese Liste durchgehen und den Download für jede dieser Dateien anfordern. Für jedes Element der Liste muss die Benutzeranwendung:
- den Dateinamen im internen DPE _IEC61850_IED.FileTransfer.SelectedFileName festlegen. Der Dateiname muss mit dem vollständigen Pfad angegeben werden, z. B. \COMTRADE\FRA00001.cfg.
- das internen DPE _IEC61850_IED.Command.FileTransfer.DownloadFile auf TRUE setzen.
- das State DPE überprüfen.
- Nach der Initiierung des Downloads wird der Wert FILE_DOWNLOAD_IN_PROGRESS (101) sein.
- Wenn die Datei erfolgreich heruntergeladen wurde, wird
FILE_DOWNLOAD_SUCCESS (51) in das State DPE
geschrieben.
- Falls die Anwendung eine Liste der heruntergeladenen Dateien führt und diese Liste nicht dynamisch generiert, aktualisieren Sie die Liste der heruntergeladenen Dateien.
- Die Anwendung kann nun das nächste Element der Liste der neuen Dateien anfordern.
- Wenn ein Fehler gemeldet wird, wird der Fehlercode in das State DPE geschrieben.
- Beachten Sie, dass die Anwendung eine Liste der Fehlerdateien enthalten muss, d. h. Dateien, die nicht korrekt heruntergeladen wurden.
Weitere wichtige Informationen zum Vorgehen im Falle eines Dateidownload-Fehlers finden Sie unter Dateien, bei denen während des Downloads Fehler aufgetreten sind.
- Das Herunterladen einer Datei belastet alle beteiligten Komponenten stark (Client, Server, Netzwerk). Es erfordert den Austausch von mindestens drei Nachrichten zwischen Client und Server, kann jedoch im Falle größerer Dateien den Austausch von mehreren hundert Nachrichten erfordern. Daher kann der Download einer Datei von wenigen Millisekunden bis zu mehreren Minuten dauern.
- Wenn der Wert des State DPE 100 ist, ist eine Dateidownload-Anfrage nicht erlaubt und wird abgelehnt.
- Wenn der Wert des State DPE 101 ist, wird die Dateidownload-Anfrage vom Treiber in die Warteschlange gestellt.
- Wenn ein Fehler auftritt, meldet der Treiber den Fehler an das State DPE. Es wird nicht an den internen Datenpunkt gemeldet, für welche Datei dieser Fehler auftritt. Dies kann nur im Protokoll eingesehen werden. Aus diesem Grund wird empfohlen, die Dateien einzeln herunterzuladen und den Treiber nicht die Anfragen in die Warteschlange stellen zu lassen.
Wenn Ihre Anwendung die Schritte 1 und 2 in einer Schleife wiederholt, d. h. mehrere Dateien anfordert, ohne auf den Download jeder einzelnen zu warten, wird der Treiber die Anfragen in die Warteschlange stellen und automatisch eine angeforderte Datei nach der anderen herunterladen. Dies wird jedoch nicht empfohlen, da die Fehlerverfolgung in diesem Fall schwieriger wird (siehe oben).
Andere Datei-Downloads
Dateien, bei denen während des Downloads Fehler aufgetreten sind
Falls eine Datei nicht korrekt heruntergeladen werden konnte, muss der Dateiname zur Liste der Fehlerdateien hinzugefügt werden. Wie in der Liste der neuen Dateien muss die Liste der Fehlerdateien die Dateinamen mit dem vollständigen Pfad auf der Serverseite speichern, z. B. \COMTRADE\FRA00001.cfg.
Die Planung, wann diese Liste der Fehlerdateien verarbeitet wird, ist eine Konfigurationsfrage.
Fehler, die im State DPE gemeldet werden, können entweder protokollspezifische Fehler oder spezifische Dateidienstfehler sein. Für protokollspezifische Fehler siehe IEC 61850-Client-Fehler, für Dateidienstfehler siehe File Transfer Response Code.
Beachten Sie Folgendes:
- Wenn der Fehler durch ein allgemeines Serverproblem verursacht wird, z. B. wenn keine Verbindung zum Server besteht, kann die Anwendung mit der Anforderung von Dateien fortfahren, sobald das Problem behoben ist.
- Wenn der Fehler bei einer bestimmten Datei auftritt und sich wiederholt, ist ein menschliches Eingreifen erforderlich. Wie die Anwendung den Benutzer über diese Anforderung informiert, ist eine Konfigurationsfrage.
- Im Falle eines Fehlers während des Dateidownloads sollten Sie zwei Szenarien in
Betracht ziehen:
- Die lokale Datei wurde noch nicht erstellt: In diesem Fall reicht es aus, den Dateinamen zur Liste der Fehlerdateien hinzuzufügen.
- Die lokale Datei wurde bereits erstellt: In diesem Fall existiert eine Datei mit dem Suffix .MMSdownload, z. B. FRA00001.cfg.MMSdownload im Zielverzeichnis. Für einen neuen Versuch, diese Datei herunterzuladen, ist dies nicht relevant. Der Treiber überschreibt einfach die fehlerhaft heruntergeladene Datei und stellt ihren Namen wieder her, z. B. FRA00001.cfg, nachdem sie korrekt heruntergeladen wurde.
- Wenn eine bestimmte Datei wiederholt einen Download-Fehler verursacht, ist ein menschliches Eingreifen erforderlich. Wie die Anwendung den Benutzer über diese Anforderung informiert, ist eine Konfigurationsfrage.
Historische Dateien
Falls WinCC OA zum ersten Mal eine Verbindung zu einem IEC 61850-Server herstellt, der bereits seit einiger Zeit in Betrieb ist, könnten auf diesem Server viele Dateien verfügbar sein. Das Herunterladen einer so großen Anzahl von Dateien muss als Engineeringaufgabe betrachtet werden und darf nicht während des normalen Betriebs erfolgen.