TIA WinCC V13: Variablen archivieren ereignisgesteuert

Fluffi

Level-2
Beiträge
451
Reaktionspunkte
69
Zuviel Werbung?
-> Hier kostenlos registrieren
hi

ich möchte gerne über die Archivfunktion von WinCC V13 ca 100 Variablen zu einem bestimmten Zeitpunkt einmal archivieren,
bzw. deren Werte in eine CSV-Datei auf einem USB Stick speichern.

Dazu habe ich ein Variablenarchiv mit den einzelnen Archivvariablen erstellt.
Die Erfassungsart der Variablen steht auf "auf Anforderung".

Das Ereignis für den Start der Archivierung lautet
StarteArchivierung mit Verweis auf das Variablenarchiv.

Mit diesen Einstellungen werden aber keine Werte in die .CSV-Datei geschrieben.
Stelle ich die Erfassungsart auf "zyklisch" landet die gleiche Variable öfters im Archiv.

Wie kann ich mein Vorhaben mit WinCC V13 umsetzen?
Ich stehe da gerade auf dem Schlauch. Ich möchte wie gesagt
die Archivierung nur 1x zu einem bestimmten Zeitpunkt ausführen.

Sonst habe ich das immer über ein Skript gemacht. Allerdings möchte ich einmal die
integrierte Archivierungsmethode verwenden.
 
In einer Funktionsliste für jede Variable die Systemfunktion ArchiviereVariable aufrufen (geht wahrscheinlich nicht in Skript).

Harald
 
Nein, das geht so nicht.
Entweder Du legst für jede Variable einen "Zyklisch fortlaufend" Archivierungszyklus fest oder Du setzt den Archivierungszyklus auf "Auf Anforderung" und erzeugst die Anforderung per Systemfunktion ArchiviereVariable. Das darfst Du für jede Variable extra festlegen.
(ArchiviereVariable kann auch zusätzlich zum eingestellten Archivierungszyklus angefordert werden)

Alternativ könntest Du versuchen, einen Archivierungszyklus von 1 oder 2 Minuten einzustellen und aktivierst die Archivierung nur für ca. 1 Minute (StarteArchivierung, StoppeArchivierung, SchliesseAlleArchive). Damit habe ich aber keine Erfahrung und vermute Probleme.

Auf jeden Fall solltest Du das CSV-Archiv genau anschauen (evtl. die Datei zur Kontrolle einlesen), ob alle Variablen mit dem aktuellen Wert im Archiv enthalten sind. Es gibt keine Rückmeldungen dafür, daß eine Variable archiviert wurde und ob der Wert der Variablen extra nochmal aus der Steuerung gelesen wurde.


Eigentlich ist Deine Aufgabe eine typische Anwendung für Rezepturen.
Du könntest die 100 Variablen in eine Rezeptur packen, die Rezeptur mit den 100 Variablen konsistent "am Stück" aus der Steuerung ins HMI laden (GetDataRecordTagsFromPLC) und als csv-Rezeptur speichern (ExportDataRecords). Dabei bekommt man für jeden Vorgang eine Fertigmeldung. Falls Dir das Format der csv-Datei nicht gefällt, dann kannst Du statt ExportDataRecords per Skript die Werte nach eigenen Wünschen formatiert in eine csv-Datei schreiben.
Dieses Lesen und Speichern als Rezeptur halte ich für das einzige sichere und konsistente Verfahren, die Werte aus der SPS in eine csv-Datei zu sichern. Was für Probleme auftreten können und wie man die löst: benutze mal die Forumssuche nach "GetDataRecordTagsFromPLC". Als Anregung für die Skripterei siehe mal http://www.sps-forum.de/hmi/47637-p...uf-speicherkarte-eines-tp277-6-speichern.html

Harald
 
Zurück
Oben