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 = true wendet 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: status ist gleich ok.
  • Fehler: Die Antwort enthält Fehlerdetails.

Mögliche Fehlercodes:

  • ParseError (-32700)
  • InvalidRequest (-32600)
  • MethodNotFound (-32601)
  • InvalidParams (-32602)
  • QueueOverflow (-32000)
  • InvalidResponse (-32001)
  • Timeout (-32002)