DNP3-Dateiübertragung
Die Dateiübertragungsfunktion ermöglicht das Herunterladen von Dateien von einer entfernten RTU und das Hochladen von Dateien zur Aktualisierung der RTU-Konfiguration.
Typische Anwendungsfälle sind das Herunterladen von Störungsaufzeichnungsdateien von der RTU oder das Hochladen von Konfigurationsdateien zur Aktualisierung der RTU-Einstellungen.
Wichtige Hinweise
In einem verteilten WinCC OA-Projekt werden Dateien immer in das Projektverzeichnis heruntergeladen und von dort hochgeladen, in dem der DNP3-Treiber ausgeführt wird.
In einem redundanten WinCC OA-Projekt kann die Dateiübertragung entweder auf dem aktiven oder dem passiven Treiber ausgeführt werden.
- Um Dateien auf Host 1 zu übertragen, schreiben Sie auf das
_DriverCommon-Datenpunkteelement von Host 1. - Um Dateien auf Host 2 zu übertragen, schreiben Sie auf das
_DriverCommon-Datenpunkteelement von Host 2.
Beispiel für Treiber Nummer 1:
- Host 1:
_Driver1.RPC.Request - Host 2:
_Driver1_2.RPC.Request
Lokale Verzeichniskonfiguration
Der Stammordner für die lokale Dateispeicherung wird durch den folgenden Konfigurationseintrag definiert:
[dnp3] ftRootDir (Standard:
<PROJ>/data/dnp3/)
- Ausgehende Dateien:
[dnp3] ftOutSubDir(Standard: leer) - Eingehende Dateien:
[dnp3] ftInSubDir(Standard: leer)
Die Parameter remoteFile, remoteDir und
fileName werden relativ zum konfigurierten entfernten
Basisverzeichnis ([dnp3] ftRemoteDir) interpretiert.
Ausführung über JRPC 2.0
Dateiübertragungsoperationen werden ausgeführt, indem eine JRPC 2.0-Anfrage an das RPC-Anfrage-Datenpunkteelement des Treibers geschrieben wird.
- Anfrage:
_Driver<n>.RPC.Request - Antwort:
_Driver<n>.RPC.Response
Dateiübertragungsoperationen
1. Datei hochladen (Put File)
Lädt eine Datei aus dem lokalen Verzeichnis auf die entfernte RTU hoch.
Beispiel:
{
"jsonrpc": "2.0",
"id": "123",
"method": "dnp3_putFile",
"params": {
"connDp": "_dnp3_connection",
"localFile": "config.cfg",
"remoteFile": "config.cfg",
"userName": "",
"password": "",
"permissions": 0,
"activateConfig": true
}
}
Optionaler Parameter:
-
activateConfig=truewendet die neue Konfiguration an (Funktionscode 31).
Wichtige Parameter:
id: Eindeutige Anfragekennung.connDp: Name des Verbindungsdatenpunkts.localFile: Dateiname im Ausgangsverzeichnis.remoteFile: Zieldateiname auf der RTU.userName: Optionaler Benutzername.password: Optionales Passwort.permissions: Dateiberechtigungen.
2. Datei herunterladen (Get File)
Lädt eine Datei von der entfernten RTU in das lokale Verzeichnis herunter.
Beispiel:
{
"jsonrpc": "2.0",
"id": "124",
"method": "dnp3_getFile",
"params": {
"connDp": "_dnp3_connection",
"remoteFile": "disturbance.dat",
"userName": "",
"password": ""
}
}
3. Verzeichnis lesen (Read Directory)
Ruft Dateiinformationen von der entfernten RTU ab.
Beispiel:
{
"jsonrpc": "2.0",
"id": "125",
"method": "dnp3_readDirectory",
"params": {
"connDp": "_dnp3_connection",
"remoteDir": "",
"userName": "",
"password": ""
}
}
4. Datei löschen (Delete File)
Löscht eine Datei von der entfernten RTU.
Beispiel:
{
"jsonrpc": "2.0",
"id": "126",
"method": "dnp3_deleteFile",
"params": {
"connDp": "_dnp3_connection",
"authenticationKey": 0,
"fileName": "FRA00001.cfg",
"userName": "",
"password": ""
}
}
Fehlerbehandlung
Antworten werden im JRPC 2.0-Format auf dem Antwort-Datenpunkteelement zurückgegeben.
- Erfolg:
statusist gleichok. - Fehler: Die Antwort enthält Fehlerdetails.
Mögliche Fehlercodes:
ParseError(-32700)InvalidRequest(-32600)MethodNotFound(-32601)InvalidParams(-32602)QueueOverflow(-32000)InvalidResponse(-32001)Timeout(-32002)
