TIA Datei in S71500 per Kommandozeile hochladen

Flo.rian

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Datei in S7-1500 per Kommandozeile hochladen

Hallo Liebe Community,

ich bin neu hier und hoffe ich liege mit dem Beitrag richtig hier. Ich habe dazu auch nichts brauchbares im Internet gefunden und hoffe ihr könnt mir helfen.

Nun zu meinem Problem:

Ich will eine Datei in den Filebrowser einer S7-1500 Steuerung hochladen. Per Hand funktioniert alles, nur ich möchte dies über die Kommandozeile automatisieren. Den Webserver der S7-1500 kann ich aufrufen, wie kann ich jetzt die Datei hochladen?

Gruß
Flo
 
Zuletzt bearbeitet:
Ich würde mir mal Curl ansehen, das wäre über ein Kommandozeilenskrip steuerbar:
https://curl.haxx.se/

Etwas aufwändiger wird es wenn du dich vorher anmelden musst. Dann musst du das session cookie vom Login bei den weiteren Anfragen verarbeiten. Aber ich meine prinzipiell sollte das damit möglich sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und Danke für die schnelle Antwort.

Das scheint der richtige weg zu sein nur klappt das bei mir nicht.
Ich habe die Rechte für alle administrativ eingestellt, somit brauche ich zunächst keinen Benutzer-Login.
Zum Hochladen der Datei habe ich diese Befehle ausprobiert:


  • curl -F 'filename=@Datei.txt' http://....
  • curl -d "C:\Datei.txt" -X POST http://..

Das ist der html-Code auf der Seite zum Hochladen der Datei:

<form enctype="multipart/form-data" action="/Filebrowser?Path=/S71500/" method="POST" onsubmit="return checkUploadFile()">
<td><input id="filebrowser_upload_filename" type="file" name="filename" size="30" maxlength="80" style="background-color: transparent;"></td>
<td><input type="submit" value="Datei laden"></td>
</form>


Ich finde das mein erster Befehl schon richtig ausschaut, aber wahrscheinlich fehlt im Befehl noch was.

Gruß
Flo
 
Zuletzt bearbeitet von einem Moderator:
Hallo zusammen,

so sollte es funktionieren (variable Daten angepasst versteht sich von selbst :) )
Wichtig, die Datei muss vor dem Upload gelöscht werden wenn sie existiert.

Code:
:: Login to the webserver. User name: admin, password: admin, IP of the PLC: 192.168.0.1. Store the cookies after Login in "cookies.txt" and keep the session active for the copy procedure
..\wget.exe --no-check-certificate --post-data="Login=admin&Password=admin" --save-cookies="cookies.txt" --keep-session-cookies "http://10.11.3.1/FormLogin"


:: transfer file to webserver
..\curl.exe -b cookies.txt --referer "http://10.11.3.1/Portal/Portal.mwsl?PriNav=Filebrowser&Path=/Recipes/" --form filename=@..\DBL_Parameter.csv "http://10.11.3.1/Filebrowser?Path=/Recipes/"

Grüße
 
*Thread aus der Vergangenheit reaktivieren*

Ich versuche gerade einen automatisierten Download der Logs via Powershell zu realisieren. Im Siemensforum habe ich folgenden Beitrag gefunden:
https://support.industry.siemens.co...d-data-logs-automatically-from-s7-1200/144672

Scheinbar kann ich mich verbinden, allerdings kommt keine sichere Verbindung via SSL zustande.

Aktuell nur die 1. Zeile aktiv:
wget.exe -v --debug --no-check-certificate --secure-protocol=auto --post-data="Redirection&Login=admin&Password=admin&submit=Anmelden"--save-cookies=cookies.txt --referer=https://172.16.3.1/Portal/Portal.mwsl?PriNav=Start --keep-session-cookies https://172.16.3.1/FormLogin

Output console:
wget.exe : SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
In C:\Users\###\Desktop\Downloadtest\Test - Kopie - Kopie.ps1:1 Zeichen:1
+ wget.exe -v --debug --no-check-certificate --secure-protocol=auto --p ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (SYSTEM_WGETRC =...wget/etc/wgetrc:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc
Setting --check-certificate (checkcertificate) to 0
Setting --secure-protocol (secureprotocol) to auto
Setting --post-data (postdata) to Redirection&Login=admin&Password=9551&submit=Anmelden--save-cookies=cookies.txt
Setting --referer (referer) to https://172.16.3.1/Portal/Portal.mwsl?PriNav=Start
Setting --keep-session-cookies (keepsessioncookies) to 1
DEBUG output created by Wget 1.11.4 on Windows-MinGW.
--2021-10-28 11:35:42-- https://172.16.3.1/FormLogin
seconds 0,00, Verbindungsaufbau zu 172.16.3.1:443... seconds 0,00, verbunden.
Created socket 572.
Releasing 0x00e787f8 (new refcount 0).
Deleting unused 0x00e787f8.
Initiating SSL handshake.
SSL handshake failed.
OpenSSL: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
Closed fd 572
Es ist nicht möglich, eine SSL-Verbindung herzustellen.


Kann mir jemand einen Tipp geben was ich hier tun kann?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
*Thread aus der Vergangenheit reaktivieren*

Ich versuche gerade einen automatisierten Download der Logs via Powershell zu realisieren. Im Siemensforum habe ich folgenden Beitrag gefunden:
https://support.industry.siemens.co...d-data-logs-automatically-from-s7-1200/144672

Scheinbar kann ich mich verbinden, allerdings kommt keine sichere Verbindung via SSL zustande.

Aktuell nur die 1. Zeile aktiv:


Output console:



Kann mir jemand einen Tipp geben was ich hier tun kann?
Welche Firmwareversion hat denn deine CPU? Und was für eine ist es genau?
 
Ok das SSL Problem konnte ich lösen indem ich eine aktuelle Version der wget.exe heruntergeladen habe. Aktuell klappt leider der Download noch nicht. Aktuell weiß ich nicht so recht wo genau die Datenlogs auf der SPS liegen :(

Verwende ich den Pfad aus dem Beispiel:
wget.exe --no-check-certificate --secure-protocol=auto --post-data="Redirection&Login=admin&Password=admin&submit=Anmelden"--save-cookies=cookies.txt --referer=https://192.168.0.2/Portal/Portal.mwsl?PriNav=Start --keep-session-cookies https://192.168.0.2/FormLogin

:: Load the cookies again and switch to the "Filebrowser" of the webserver. There, the file "MyDataLog.csv" will be copied to the Desktop, called "info.csv"
:: Load the file
wget.exe --no-check-certificate --secure-protocol=auto --load-cookies=cookies.txt --referer=https://192.168.0.2/Portal/Portal.mwsl?PriNav=FileBrowser https://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DATALOG_NAME.csv --output-document=DataLog_LogOn_S7-1200.csv
Bekomme ich Error 404. Auch manuell im Browser lässt sich der Pfad nicht auflösen.

Verwende ich den Pfad:
Wird tatsächlich etwas heruntergeladen allerdings steht dann in der Outputdatei der HTML Code der Webpage :oops:

Welcher Pfad wäre der richtige auf der 1511?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok das SSL Problem konnte ich lösen indem ich eine aktuelle Version der wget.exe heruntergeladen habe. Aktuell klappt leider der Download noch nicht. Aktuell weiß ich nicht so recht wo genau die Datenlogs auf der SPS liegen :(

Verwende ich den Pfad aus dem Beispiel:

Bekomme ich Error 404. Auch manuell im Browser lässt sich der Pfad nicht auflösen.

Verwende ich den Pfad:

Wird tatsächlich etwas heruntergeladen allerdings steht dann in der Outputdatei der HTML Code der Webpage :oops:

Welcher Pfad wäre der richtige auf der 1511?

Hallo S7trainee,

falls für den Download erforderlich, kann folgendes wget-Kommando zur Anmeldung am Webserver verwendet werden.

Code:
wget.exe --no-check-certificate --post-data="Login=<username>&Password=<password>" --save-cookies="cookies.txt" --keep-session-cookies "https://<ip>/FormLogin"

Da die Datei für den Download im Ordner "DataLogs" liegt, kann folgendes wget-Kommando für den Download verwendet werden.

Code:
wget.exe --no-check-certificate --load-cookies cookies.txt "https://<ip>/DataLogs?Path=/DataLogs/<filename>&Action=DOWNLOAD" --referer="https://<ip>/Portal/Portal.mwsl?PriNav=DataLogs"  -O <outputFilename>

Der Pfad den du wahrscheinlich meinst ist der generelle Pfad für die Anwenderdateien. Da die "DataLogs" auch zu den Anwenderdateien gehören, kannst du auch über folgendes wget-Kommando den Download anstoßen.

Code:
wget.exe --no-check-certificate --load-cookies cookies.txt "https://<ip>/Filebrowser?Path=/DataLogs/<filename>&RAW" --referer="https://<ip>/Portal/Portal.mwsl?PriNav=Filebrowser&Path=/DataLogs/" -O <outputFilename>

Gleicher Aufbau kann für den Download anderer Dateien unter "UserFiles", "Recipes", ... verwendet werden.

Ergänzend:
Ursprünglich ging dieser Beitrag ja über den Upload von Dateien auf den Webserver. Hier macht es einen Unterschied ob in "UserFiles" oder einen anderen Ordner hochgeladen werden soll. (In "DataLogs" kann nichts hochgeladen werden.)

Auch beim Löschen gibt es Unterschiede zwischen "UserFiles", "DataLogs" und den sonstigen Ordnern.

Meine generelle Empfehlung wäre zum anmelden das obenstehende wget-Kommando zu nutzen und für einen Download, Upload oder zum Löschen ein cURL-Kommando zu verwenden.

Grüße
Hellebadier
 
Hallo zusammen,

nach einigen Tests konnte ich die Daten herunterladen. Dennoch sind während der Laufzeit immer wieder Abbrüche/komische Fehler aufgetreten. Daher wurde der Download via FTP realisiert. Das Ganze funktioniert bisher stabil und ohne Abbrüche.

Danke für den Support!
 
Zurück
Oben