TIA automatisches sichern von Datenbaustein S7-1500

mbb

Level-2
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich suche nach einer Möglichkeit mehre Datenbausteine außerhalb der CPU zu sichern. Aktuell verwende ich eine ET200SP CPU 1512 F-1 und TP700.

Aktuell läuft es so das ich eine Funktion geschrieben habe die die Datenbausteine in eine Binär Datei auf der Memorycard der CPU ablegt. Hatte auch eine zweite Möglichkeit gefunden die Rezeptfunktion zu verwenden, aber da liegt dann auch eine CSV Datei auf der Memorycard. Das einzige was ich gefunden habe war der Webbrowser der CPU, aber das bringt mir nichts, weil es automatisch ablaufen soll.

Kann ich mit den HMI über VBSkript die Datei der Memorycard der CPU auf ein USB-Stick vom HMI sichern?

Oder gibt es eine Möglichkeit eine Datei von der Memorycard der CPU per FTP, NFS oder so zu übertragen?
 
Du könntest z.B. das Automation Tool von Siemens nutzen. Damit sicherst du halt nicht nur die Datenbausteine sondern die komplette SPS ( HMI könntest du auch sichern ).

In welcher Form soll denn gesichert werden? Irgendwie, hauptsache man kann dann wiederherstellen oder soll es lesbar sein und weiterverarbeitet werden?

Funktionalitäten des SIMATIC Automation Tools

  • Scannen eines PROFINET/Ethernet Anlagennetzes
  • Identifikation aller verbundenen Geräte durch Blinktests von Geräte-LEDs oder HMI-Displays
  • Erstellen einer Tabelle, die die erreichbaren Geräte im Netzwerk abbildet
  • Adresszuweisung (IP, Subnetz, Gateway) und Stationsnamenänderung (PROFINET Device)
  • Übertragung des Datums und der auf UTC-Zeit umgerechneten PG / PC-Zeit auf die Baugruppe
  • Programm-Download auf CPU und HMI Panels
  • Betriebsartenumstellung RUN/Stop
  • Urlöschen des CPU-Speichers
  • Backup und Restore von Projekten für CPU und HMI
  • Auslesen von Service Daten einer CPU und ET 200 Modulen
  • Lesen des CPU Diagnosepuffers
  • Rücksetzen auf Werkseinstellungen
  • Firmwareaktualisierung der CPU und deren angeschlossener Module
  • Möglichkeit zum Laden von Firmware-Updatedateien auf Geräte und Aktivierung der neuen Firmware zu einem späteren Zeitpunkt
  • Unterstützung von CPUs, die über ein CM (Kommunikationsmodul) oder einen CP (Kommunikationsprozessor) angeschlossen sind
  • Rezeptdaten (auf SMC) - Laden aus CPU, Laden in CPU oder Löschen von einer CPU
  • Datenprotokolldaten (auf SMC) - Laden aus CPU oder Löschen von einer CPU
  • Zusätzliche Informationen in der Gerätetabelle für CPUs: TIA Portal-Version und projektierte CPU-Version
  • Dokumentation und Sicherung der Konfiguration in
    • Standardtext .csv oder
    • Verschlüsselte und passwortgesicherte .sat Datei
  • Bereitstellung API, z.B. für eine automatisierte Verwendung der unterstützten Operationen mit .NET

  • Advanced Funktionen:
    • Bis zu 10 gleichzeitige Verbindungen.
    • Planer für die Planung von Gerätevorgängen zu einem Zeitpunkt und mit einer Häufigkeit Ihrer Wahl
    • Möglichkeit, mehrere Geräte in einen Vorgang einzufügen
    • Unterstützung von Geräten hinter einem NAT-Router
    • Archivierung von SAT-Projekten und zugehörigen Dateidaten
    • Karten-Browser zum Arbeiten mit Dateien und Ordnern auf SIMATIC Memory Cards in Ihren CPUs
 
Es soll nur gesichert werden, egal ob Binär oder lesbar in CSV. Es dient nur als Backup zum wiederherstellen.
Das wichtige ist es soll ohne menschliches zutun passieren und kein Programm für eine Windows Maschine, den bei uns ist alles Linux und ein geschlossendes System (offline).

Das idealste wäre wenn das HMI sich die Datei von der Memorycard holen könnte, den wäre es Netzwerk unabhängig. Da auf der Linux-Ebene oft mal gebastelt wird.
 
Hi

Siemens bietet Bausteine für einen Ftp-Client an, falls dir das hilft.

Den FTP-Client habe ich auch schon gesehen. Leider funktioniert er nur ab TIA v17, wenn man die S7-1500 ohne CP betreibt. Würde ich als Notlösung in betracht ziehen. Wenn es keine andere Möglichkeit gibt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
den bei uns ist alles Linux und ein geschlossendes System (offline).
Das Tool gibt es auch für Linux:
https://support.industry.siemens.co...erfreigabe-linux-transfertool-?dti=0&lc=de-DE

Kann ich mit den HMI über VBSkript die Datei der Memorycard der CPU auf ein USB-Stick vom HMI sichern?
Kannst du im Prinzip schon, Problem könnte halt die Datenkonsistenz werden.
 
Läuft das auch Autonom oder muss jemand das Programm starten und die Dateien sichern?
Schau dir am besten mal das Handbuch an, ich habe es selber noch nie eingesetzt.
Die genannten Funktionen können als Massenoperation ausgeführt werden, also mittels LINUX Script als Shell-Kommando an verschiedene Geräte übertragen werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier mal ein Auszug aus dem Handbuch:
Habe ich auch gerade gelesen. Ist sehr interessant für eventuelle andere Anwendungen. Danke. Aber ich möchte die Aktuallwerte sichern und nicht die Initialwerte. Und das sieht mir nach einer Kompletsicherung des SPS Projektes aus.
 
Wie oft sollen die DB gesichert werden? Habt Ihr vielleicht schon ein Backup-Tool, was automatisch regelmäßig geänderte (Daten-)Bausteine von SPS im Netzwerk sichert? Für die Konsistenz der Daten musst Du vermutlich beim Sicherungs-Trigger die DB zunächst in andere DB umkopieren. Wie groß sind die DB?
Welches HMI genau hast Du (Artikelnummer)? Ist Dein TP700 ein Comfort Panel, sprich: kann es überhaupt Skripte? Die Werte aus den DB können mit einem Comfort Panel (oder einer PC Runtime) automatisch getriggert aus der SPS lesen und z.B. in csv-Dateien auf USB-Stick oder Memorycard oder eine Netzwerkfreigabe geschrieben werden. Damit die Daten konsistent und vollständig im HMI Panel ankommen, müssen die Daten mit Handshake ausgelesen werden, z.B. als Rezeptur oder mit eigenem Handshake. siehe Forumssuche nach "GetDataRecordTagsFromPLC"

Harald
 
Wie oft sollen die DB gesichert werden?
Relativ selten und zufällig von einer Person die nichts mit SPS'en zutun hat. ca. 1 mal im Monat.
Habt Ihr vielleicht schon ein Backup-Tool, was automatisch regelmäßig geänderte (Daten-)Bausteine von SPS im Netzwerk sichert?
Für SPS haben wir kein Backup-Tool im Netzwerk. Sowas läuft entweder "manuel" durch Notebook mit TiaPortal. Oder halt ein File schreiben auf die Memory Card der CPU.
Für die Konsistenz der Daten musst Du vermutlich beim Sicherungs-Trigger die DB zunächst in andere DB umkopieren. Wie groß sind die DB?
größter aktueller DB hat: 2640 Adressen, 11539 Bytes Ladespeicher
Es sind mehrere in einer SPS ca. 36 DBs. und ca. 20.000 Variablen.
Welches HMI genau hast Du (Artikelnummer)? Ist Dein TP700 ein Comfort Panel, sprich: kann es überhaupt Skripte?
TP700 Comfort Panal(6AV2124-0GC01-0AX0) und ja es kann VBSkripte.
Die Werte aus den DB können mit einem Comfort Panel (oder einer PC Runtime) automatisch getriggert aus der SPS lesen und z.B. in csv-Dateien auf USB-Stick oder Memorycard oder eine Netzwerkfreigabe geschrieben werden. Damit die Daten konsistent und vollständig im HMI Panel ankommen, müssen die Daten mit Handshake ausgelesen werden, z.B. als Rezeptur oder mit eigenem Handshake. siehe Forumssuche nach "GetDataRecordTagsFromPLC"

Harald

Die Funktion "GetDataRecordTagsFromPLC" hatte ich auch schon gefunden, aber die läuft nur mit der Rezeptur vom HMI oder? Also kopiert die PLC Variablen in die HMI Rezeptur?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gibt es keine Möglichkeit ein File welches auf der MemoryCard der CPU liegt mit dem HMI per VBScript umkopieren? Oder kommt man vom HMI nicht an die MemoryCard der CPU heran?
 
Für GetDataRecordTagsFromPLC müssten die DB im HMI als Rezeptur oder "Array of Rezeptur" projektiert werden.
Man könnte sich auch ein eigenes Handshake programmieren, z.B. mit einer Prüfsumme über den gesamten DB.

Eine csv-Datei von der Memorycard der CPU zum HMI Panel kopieren würde das Konsistenzproblem beim Einlesen der Werte ins HMI umgehen. Allerdings kenne ich keine fertige Möglichkeit dafür. Weder von der CPU aus noch vom HMI aus.

Harald
 
Zuletzt bearbeitet:
Für GetDataRecordTagsFromPLC müssten die DB im HMI als Rezeptur oder "Array of Rezeptur" projektiert werden.
Man könnte sich auch ein eigenes Handshake programmieren, z.B. mit einer Prüfsumme über den gesamten DB.

Eine csv-Datei von der Memorycard der CPU zum HMI Panel kopieren würde das Konsistenzproblem beim Einlesen der Werte ins HMI umgehen. Allerdings kenne ich keine fertige Möglichkeit dafür. Weder von der CPU aus noch vom HMI aus.

Harald
Habe mit der Rezeptur mal ein wenig rumgespielt. Vielleicht probiere ich es mal. Mein DB, der Structs beinhaltet, kann ich nicht einfügen aber ein 0...1599 of DWord Array DB. Also könnte ich für jeden DB ein passenden Array DB anlegen und diesen dann umkopieren. :unsure:

Wie funktioniert es mit der Checksumme über ein DB? Bzw. wie würde die Funktion heißen?

Danke schon mal für eure Hilfe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielleicht kann mir jemand helfen. Ich verstehe nicht warum "GetDataRecordTagsFormPLC" bei mir nicht funkioniert. Es soll nur das Rezept im HMI von den Datenbaustein der SPS aktuallisiert werden, damit ich danach mit "ExportDataRecords" das Rezept als CSV rausschreiben kann. Leider bekomme ich immer bei vom ExportDataRecords eine 12 als Status zurück.

Der umgekehrte Weg funktioniert einwarnfrei. Also mit "SetDataRecordTagsToPLC".

Code:

Dim rdState

' Variablen aus SPS lesen mit Fertigmeldung
GetDataRecordTagsFromPLC "Rezeptur", "Lesestatus"

' in Schleife auf Ende Var-Lesen warten
Do
rdState = SmartTags("Lesestatus")
Loop While (rdState And 4) = 0 ' 4=fertig OK / 12=abgebrochen mit Fehler

If rdState = 4 Then
' Fertigmeldung weitergeben an die SPS
SmartTags("readDatafinish") = 1

ExportDataRecords "Rezeptur", 0, "\Storage Card USB\record.csv", hmiOverwriteAlways, hmiOn, "readDatafinish"
End If

If rdState <> 4 Then
ShowSystemAlarm "Fehler beim Lesen der Protokollwerte!"
SmartTags("readDatafinish") = 0
End If
 
Zurück
Oben