TIA TIA Portal V14..V17 Wunschliste [Diskussion]

Status
Für weitere Antworten geschlossen.
Nutzt jemand die Einstellung "Einstellwert" im DB und kann über Erfahrungen/Nutzen berichten?
Wir nutzen sie für Einstellparameter wie Zeitvorgaben, Positionen etc. Werte welche sich nicht dauernd ändern. Und da funtioniert es super.
Vor der änderung Momentaufnahme machen, und dann nur die mit Einstellwert markierten Variablen als Startwert übernehmen.
Kann man für jeden DB einzeln oder auch für das ganze Projekt machen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine andere Problem mit den genannte Verfahren ist das zwischen den Momentaufnahme und einspielen von den geänderte Programm dürfen die Altualwerte sich nicht ändern. Das ist nur realistisch bei langsahme Prozesse.

Langsam ist auch relativ. Selbst bei Langsamen Prozessen, wer ändert denn die DBs nur auf der Anlage. Ich habe ein Projekt oft Wochenlang in Arbeit. Bevor es wieder auf die Baustelle geht. Und vor Ort will ich ja möglichst nichts mehr am Programm verändern. Nur noch Software laden und wieder nach Hause gehen.
 
So heute wieder über ne neue Stolperfalle gefallen.
Is ja klar, das Daten-Bausteine ständig wegen jedem Scheiss reinitialisiert werden müssen.
Was besonders ärgerlich ist bei Aufzeichnungsdaten welche über Monate und Jahre Daten aufzeichnen und in einem DB versorgen zur späteren verwendung

Ich habe mir also einen schönen Baustein gebastelt der mir regelmässig einen Abzug des DBs in einem DB welcher im Ladespeicher generiert wird abspeichert.
Der Baustein macht also folgendes.
Er generiert wenn nicht vorhanden einen DB 6000x auf der Speicherkarte.
Er speichert in definierbaren Abständen den Inhalt des zu sichernden DBs in diesem DB auf der Speicherkarte.
Wenn im zu sichernden DB aus irgendeinem Grund die Startwerte wiederhergestellt werden, dann holt der Baustein die Daten von der Speicherkarte und schreibt sie zurück auf den DB im Arbeitsspeicher.
Soweit sogut. CPU Stop/run wird abgefangen, daten werden wieder hergestellt.
Jetzt wollte ich aber ein Update machen von V15 auf V15.1, dann will er auch das System updaten beim Runterladen, denke ich mir so bei mir. Ah zum glück kann ich alles reinitialisieren, die Wichtigen Bausteine holt er sich ja von der Speicherkarte.

Aber nix ist. TIA ist so frech und löscht bei so einem Update auch Bausteine welche weder von TIA erstellt wurden noch irgendwas mit der Konsistenz zu tun haben da sie ja vom Programm erstellt werden.
Was verdammt noch mal soll man da TUN wenn nichtmal Offlinedaten auf der Speicherkarte sicher sind.

Es hat doch überhaupt keinen Sinn von dem SPS programm erstellte Bausteine zu löschen deren Konsistenz TIA gar nicht überprüfen kann.
 
Es hat doch überhaupt keinen Sinn von dem SPS programm erstellte Bausteine zu löschen deren Konsistenz TIA gar nicht überprüfen kann.

Wie ist das den mit CSV Datein, würde TIA diese auch platt machen bei einen Update?

Wenn nicht würde ich vlt. diesen Weg nutzen, für Massedaten doch sowieso irgendwie besser.
 
Wie ist das den mit CSV Datein, würde TIA diese auch platt machen bei einen Update?

Wenn nicht würde ich vlt. diesen Weg nutzen, für Massedaten doch sowieso irgendwie besser.

Habe ich mir auch überlegt. Ich hätte die CSV vor allem gerne als Archivablage damit der Unterhalt diese direkt von der CPU herunterladen und irgendwo ablegen kann.

So sieht so ein DB z.B. Aus

Code:
TYPE "Daystruct"
VERSION : 0.1
   STRUCT
      woSaving : Real;
      wSaving : Real;
   END_STRUCT;


END_TYPE


TYPE "Energysaving_Struct"
VERSION : 0.1
   STRUCT
      LDB : Array[1.."maxLDB"] of Struct
         Month { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : Array[1..12] of Struct
            Day { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : Array[1..31] of "Daystruct";
         END_STRUCT;
      END_STRUCT;
   END_STRUCT;


END_TYPE


TYPE "EnergysaveDB_Struct"
VERSION : 0.1
   STRUCT
      Init : Bool;
      test : Word;
      SaveDate : "Energysaving_Struct";
   END_STRUCT;


END_TYPE


DATA_BLOCK "EnergysaveDB"
{ S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
NON_RETAIN
"EnergysaveDB_Struct"


BEGIN


END_DATA_BLOCK

Wenn ich den jetzt in ein CSV abspeichern könnte so das er auch verstanden wird. also z.b. für jede Variable ne Zeile angelegt wird. wäre das ja super.
Aber der Logbaustein frisst solche Strukturen so nicht, da müsste man dann doch ein recht komplexes Programm drumrumbauen. Muss ich mir mal näher ansehen.

Ausserdem kann man von der CSV nicht wieder zurück ins SPS Progamm lesen.
Das ginge allenfalls dann wirklich über Hochsprachen übers Panel. Das ist mir dann derzeit echt zu hoch.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Von Siemens gibt es ein Beispiel
Csv lesen und schreiben
Auch von Structs

Jup das habe ich auch schon überflogen, werde ich mich mal näher damit beschäftigen müssen. Leider bin ich was die Panel skripte angeht nicht wirklich so firm das ich das mal eben auf der Baustelle hindenkeln will und dann wieder nach Europa reise ohne das wirklich ausgiebig getestet zu haben. Naja ich dachte ich hätte meinen Sicherungsbaustein auch ausgiebig getestet, das die Sicherung aber bei nem Upgrade der CPU auch wieder gelöscht werden, das habe ich natürlich nicht bedacht.
 
Wenn ich das richtig lese, werden doch die Daten auf der Speicherkarte
in der CPU geschrieben bzw. gelesen, warum möchtest du etwas dazu
auf den Panel Skripten?
 
Wenn ich das richtig lese, werden doch die Daten auf der Speicherkarte
in der CPU geschrieben bzw. gelesen, warum möchtest du etwas dazu
auf den Panel Skripten?

Genau das möchte ich ja nicht. Mein Ziel wäre eigentlich den DB inhalt sicher auf der Speicherkarte in der CPU zu sichern. Was ja mit CREAT_DB WRIT_DBL READ_DBL durchaus gut funktioniert. Wenn der Inhalt der Speicherkarte bei einem Upgrade nicht komplett gelöscht werden würde und TIA Zeug auf der Karte in ruhe lassen würde das es nix angeht.
Es gäbe ja auch noch die Funktion auf der CPU um CSV Dateien zu erstellen. DAs wäre toll wenn man ganze DBL verarbeiten könnte und nicht variable für Variable da reinschreiben müsste (wo ich dann schon gerne wüsste wieviele Schreibzugriffe man da dann effektiv bräuchte).
Ausserdem kann man CSV Dateien ja nicht wieder zurücklesen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich dachte du suchst genau etwas um auf CPU Ebene zu bleiben.
In der HMI ist so etwas wirklich leicht zu lösen.
Ich mache das mit Betriebsdaten, da mache ich es mir besonders
leicht und nutze die Rezepturverwaltung und speichere jede Stunde
zwischen mit den Aufgabenplaner und beim runterfahren des Systems.

Beim Systemstart lade ich den Datensatz für die Betriebsdaten und
alles ist gut.
 
René, ist da jetzt ein Missverständnis? Das Programmbeispiel von #428 schreibt/liest auf/von Memory Card in der CPU - also genau was willst.

109479727 schrieb:
Der Baustein „DBtoCSV“ schreibt die gesammelten Daten des globalen Datenbausteins in eine CSV-Datei auf dem Ladespeicher. Der Baustein „CSVtoDB“ liest bei Bedarf die Daten aus der CSV-Datei und schreibt diese in den globalen Datenbaustein zurück.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
René, ist da jetzt ein Missverständnis? Das Programmbeispiel von #428 schreibt/liest auf/von Memory Card in der CPU - also genau was willst.

Ohh. Oha. Jaa das hört sich doch schon ganz gut an. Damit werde ich mich jetzt mal näher beschäftigen. Da bin ich aber gespannt wie TIA das mit auf der Memorykarte vorhandenen CSV Dateien handhabt wenn man CPUs hochrüstet.
 
Wie ist das den mit CSV Datein, würde TIA diese auch platt machen bei einen Update?

Wenn nicht würde ich vlt. diesen Weg nutzen, für Massedaten doch sowieso irgendwie besser.

Wenn ich das richtig lese, werden doch die Daten auf der Speicherkarte
in der CPU geschrieben bzw. gelesen
, warum möchtest du etwas dazu
auf den Panel Skripten?

Ohh. Oha. Jaa das hört sich doch schon ganz gut an. Damit werde ich mich jetzt mal näher beschäftigen. Da bin ich aber gespannt wie TIA das mit auf der Memorykarte vorhandenen CSV Dateien handhabt wenn man CPUs hochrüstet.

René jetzt machst du mich aber platt, ich dachte du wärst schon fleißig an Testen
ob das funktioniert oder nicht? Ich habe die ganze Zeit nicht verstanden was du meinst
mit Scripten auf den Panel.
 
René jetzt machst du mich aber platt, ich dachte du wärst schon fleißig an Testen
ob das funktioniert oder nicht? Ich habe die ganze Zeit nicht verstanden was du meinst
mit Scripten auf den Panel.

Leider hocke ich grad noch in Dubai auf Inbetriebsetzung und Fehlersuche. Da isses etwas schwer das so richtig auszuprobieren und zu testen. Plc Sim Advanced ist für solche Tests recht umständlich. Und eine CPU auf der ich wild drauf rumladen kann ist auch nicht vorhanden. Ich muss das ganze also auf zuhause verschieben. Glücklicherweise habe ich von den schon laufenden Anlagen vor dem Upgrade noch einen Snapshot gemacht. Zuhause habe ich dann auch genügend Zeit das so richtig in Angriff zu nehmen. Zeit ist auf IBS immer etwas knapp.

Als du mich nach den CSV Daten gefragt hast. Habe ich gedacht du meinst das LogtoCSV aus der Standardlib. Und damit konnte ich eben keine CSV zurücklesen. Dass das Siemensbeispiel wirklich Mit Rezepturen auf der CPU arbeitet ist mir gar nicht aufgefallen. Ich dachte das wäre das standardbeispiel das mir Siemens schonmal per Support nähergebracht hatte, welches Sicherungen übers Panel macht.
 
Baustein-Schnellvergleich zwischen Projekt und Referenzprojekt.
Bezug: V15 ( noch nicht 15.1)


1. Falls in den Projekten unterschiedlich viele Sprachen eingestellt sind, wird auch dann ein Baustein als "unterschiedlich" markiert, wenn er zuvor
von Referenzprojekt in das Projekt kopiert wurde.
Das macht den Schnellvergleich eigentlich sinnlos.
Abhilfe: Filtereinstellung, die das Vorhandensein der Sprachen ausblendet.

2. Beim Start des Schnellvergleichs werden die Bausteine ausgeklappt dargestellt.
Für "Schnell"-Vergleich wenig sinnvoll.
Ideal wäre direkt eine Zusammenfassung ( siehe Classic) aber zumindest Netzwerke eingeklappt, der Benutzer wird das ohnehin machen.

Gruss Werner
 
WinCC Advanced V15 Doku VB Skripte

Bezug: V15 ( noch nicht 15.1)

Dokumentation der eingebauten System-Funktionen

Systemfunktionen, die mehr Zeit benötigen, melden ihren Status bei Ende mit/ oder ohne Fehler durch das Triggern von unterschiedlichen Systemmeldungen.
Die Beschreibungen der Funktionen im Hilfe-System beinhalten aber keine Auflistung der bei der jeweiligen Funktion möglichen Rückgabe-Systemmeldungen.

Es ist daher kaum möglich Abläufe zu schreiben, die auch im Fehlerfall nicht hängen bleiben, selbst die Ausgabe einer Fehlermeldung ist problematisch.

Auch die Suche im Netz ist nicht ausreichend:
Es gibt auf Siemens-Seiten Beispiele, bei denen Systemmeldungen getriggert werden für die es aber keine Beschreibung gibt.

Gruss
Werner
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben