WinCC Unified HMI MTP 1000 Unified Archive Dateien als csv-Datei auf USB

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
leider stehe ich wieder auf dem Schlauch mit diesem Thema. Hier ist mein aktueller Script mit Zeitanangaben, von wann und bis Wann soll der Script laufen sollen. Leider ohne Erfolg, da ich die Archivdaten nicht mal auf dem Trend sehen kann. Hat Jemand von euch Idee?
Gruß
Erdi
 

Anhänge

  • Bild_Bedienpanel.png
    Bild_Bedienpanel.png
    134,1 KB · Aufrufe: 23
  • HMI Variablen.png
    HMI Variablen.png
    36,7 KB · Aufrufe: 23
  • Script.png
    Script.png
    96,3 KB · Aufrufe: 21
  • Start und End.png
    Start und End.png
    63,8 KB · Aufrufe: 25
Stehe im Moment so ziemlich vor dem selben Problem wie du.
Was ich schon festgestellt habe, wenn du keine Daten im Archiv hast, dann wird eine leere Datei geschrieben in der nur die Spaltenüberschriften stehen.
Wird bei dir denn eine Datei geschrieben? Das klappt bei mir auch nur wenn ich einen festen Namen vorgebe, mit Variablen darin wie TimeStamp oder eine AuftragsNummer geht es bei mir nicht.
Wie sind denn deine ArchivVariablen angelegt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Danke für die Rückmeldung. Anbei meine Archive. Als Beispiel für Temperatur. Da habe ich 5 Sensoren. Als Test habe ich diese Loggingtags bei den Trends als Quelldatei eingefügt. Sieht man leider keine Werte. Wenn die Loggingstags keine Werte liefern, macht der Skript auch keinen Sinn. Aber die Live Werte sehe ich auf dem Trend, wenn ich diese als Quelldatei einfüge.
Bild_2024-11-02_094422019.png
 

Anhänge

  • Bild_2024-11-02_094710046.png
    Bild_2024-11-02_094710046.png
    135,7 KB · Aufrufe: 5
Verstehe ich dich richtig, wenn du die Archiv-Variable in der Trendkurve anzeigst, dann wird dir nichts angezeigt, wenn du aber die "aktuelle" Variable nimmst dann geht es?
Hast du mal probiert die Archivvariable über einen Trigger (z.B. 5s) ins Archiv zu schreiben und nicht nur bei Änderung? Zumindest für einen Test? Wie ist denn die Variable angelegt? Zyklisch im Betrieb oder Auf Anforderung? Die sollte auf zyklisch im Betrieb stehen.
 
Hallo, ja genau.

Die Archivvariable ist angelegt auf Änderung. Solle ich diese als Zyklisch ändern? Siehe unten. Gruß Erdi
 

Anhänge

  • Bild_2024-11-02_102532301.png
    Bild_2024-11-02_102532301.png
    101,3 KB · Aufrufe: 7
Funktioniert leider nicht.
Auf einem Trenddiagram links unten kann man sehen, ob die Kommunikation statt findet. X und X. Sobald ich die Quelldatei alle Loggingtags definiere, sehe ich die beiden Xs. Also X-X. Sehr komisch.
 
Hast du mal bei den vielen Einstellungen geschaut ob da irgendwo das Häkchen für die Sichtbarkeit fehlt? Das kann man ja an x-verschiedenen Stellen einstellen und wenn da irgendwo das Häkchen fehlt...
Hast du mal die Skalierung der Werteachse kontrolliert? Nicht das dein Messwert außerhalb der Skalierung liegt.
Dann habe ich da gerade noch gesehen, es gibt bei den Einstellungen für die Kurve die Option Archivierte Daten anzeigen. Ist die Einstellung aktiv?
1730544642079.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Skalierung passt soweit, da ich vorher die Live-Werte auf dem Trenddiagramm gezeigt habe. Das Häkchen ist aktiviert für Datenanzeigen. Anbei ein Bild von meinem HMI. Keine Werte zu sehen und die Verbindung ist leider nicht hergestellt. Das sieht man mit zwei X-Xs. Links unten.
 

Anhänge

  • Bild_2024-11-02_115722601.png
    Bild_2024-11-02_115722601.png
    359,5 KB · Aufrufe: 17
Hast du ein Meldefenster für Systemfehler? Wird eventuell der USB - Stick nicht erkannt? Dann würde auch kein Archiv geschrieben und die Verbindung wäre wohl auch inaktiv. Schau mal in den Systemeinstellungen am MTP ob der USB-Stick erkannt wird und ob die Schnittstellen freigegeben sind
 
Die beiden USB-Sticke sind erkannt. Die kann man unter connected devices sehen. Siehe Screenshots unten.
 

Anhänge

  • Bild_2024-11-02_135610276.png
    Bild_2024-11-02_135610276.png
    305,9 KB · Aufrufe: 13
  • Bild_2024-11-02_135625573.png
    Bild_2024-11-02_135625573.png
    344 KB · Aufrufe: 13
Aktuell kein Systemfehler. Ich versuche mal weiter, um die Lösung zu finden. Vielen Dank für deine Unterstützung. Sobald ich Neuigkeiten habe , melde mich bei dir.
 
Hallo zusammen,

Zufällig bin ich auf den Artikel gestoßen. Genau das möchte ich machen. Ich hätte dazu ein paar Fragen :

Der Datenbaustein den ich in eine csv schreiben möchte hat ein Array of [0..55] UDT

Wie kann ich das in dem Skript angeben? Insgesamt sind das ca 2900 Variablen.

Ich will, wie in dem Video, keinen automatischen Export auf den USB Stick, sondern nur wenn ich auf den Knopf drücke. Welchen Zweck haben die Archiv Variablen? Meine Werte können sich ändern (bspw wenn ich auf ein Eingabefeld tippe und die Zahl darin verändere) . Diese geänderten (neuen) Werte sollen gespeichert werden und nicht die des Vortages.

Ich würde mich über eine Antwort freuen.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zuerst einmal wieder die generelle Frage nach deiner Software und deinem Panel, was verwendest du?
Archiv-Variablen, werden vom System (HMI) automatisch in einer Datenbank gesichert. Wobei du angeben kannst wo (USB-Stick oder SD-Card), was (deine Variable) und wann (Zyklisch, bei Änderung oder auf Anforderung) gesichert werden soll. Die Variablen kannst du dann wieder auslesen und auf dem HMI anzeigen oder eben auch in eine Excel-Tabelle schreiben.
Die Zeitangabe in dem Skript betrifft den Zeitraum der Daten die in die csv-Datei geschrieben werden, dass kann automatisch oder eben per Tastendruck passieren.
Ein Array of.... habe ich allerdings noch nicht gesichert, liegen denn die ganzen Werte schon im HMI oder müssen die dann erst noch übertragen werden?
 
Ich verwende TIA V18 und ein unified Basic Panel. Automatisch sichern klingt schonmal gut, ich hab die Archiv Variablen bisher noch nicht verwendet. Leider verstehe ich nicht was du mit "erst übertragen werden" meinst. Ich habe einen normalen DB angelegt (TIA Programmbausteine). Dieser hat eine Struktur vom Typ Array[0..55] of PLCValues_UDT. Diese Struktur widerrum befindet sich (durch Detailansicht drag & drop) in meiner HMI Variablentabelle. Es sind (grob geschätzt) 2900 einzelne Variablen, 56 mal die gleiche Struktur. Diese möchte ich in eine csv schreiben. Ändern kann ich einzelne Werte jederzeit, ich benötige keine Datumsangabe, das aktuelle wäre natürlich schön, aber keine Sicherung zu einer bestimmten Zeit.

(umgekehrt soll das ganze am Ende auch funktionieren, csv lesen und in DB schreiben)
 
Leider verstehe ich nicht was du mit "erst übertragen werden" meinst.
Liegen die aktuellen Werte bereits im HMI vor oder müssen die erst vom HMI aus der SPS eingelesen werden?

Gibt es in den Unified Panels Funktionen zum Variablenwerte-lesen mit Fertigmeldung und ggf. warten auf das erfolgreiche Einlesen? Es nützt ja nichts, wenn in deiner csv-Datei 2900 mal 0 oder alte nicht aktuelle Werte ankommen. Man muss erstmal sicherstellen, dass die Werte im HMI garantiert aktuell/aktualisiert sind. Das macht man üblicherweise z.B. mit Rezepturen (da gibt es Funktionen zum lesen der Rezeptur-Datensätze mit Fertigmeldung) oder man bastelt sich selbst ein Handshake mit der SPS zum Einlesen der Datensätze ins HMI.

Du könntest auch deine 56 Datensätze als Datensätze von Rezepturen ansehen und fertige Rezeptur-Funktionen verwenden, müsstest dann aber auch mit dem Format der csv-Datei leben (eventuell noch einen Konverter für die Daten aus den Rezeptur-csv-Dateien in eigene csv-Datei mit eigenem Format programmieren).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich verwende TIA V18 und ein unified Basic Panel
Bei einem Basic-Panel ist Vorsicht geboten, da gehen viele Dinge nicht, auch unter Unified. Leider kann man die Funktionen teilweise projektieren, nur funktionieren sie dann nicht.
Gibt es in den Unified Panels Funktionen zum Variablenwerte-lesen mit Fertigmeldung und ggf. warten auf das erfolgreiche Einlesen?
Fertig wird es diese Funktion sicherlich nicht geben, könnte mir aber vorstellen, dass es sich mit js umsetzen lässt. Da bin ich allerdings nicht so der Experte und wieder die Frage ob die mit einem Basic-Panel klappt.
Das macht man üblicherweise z.B. mit Rezepturen (da gibt es Funktionen zum lesen der Rezeptur-Datensätze mit Fertigmeldung)
Auch bei Unified haben die Basic-Panel keine Rezepturfunktion, diese Möglichkeit ist also nicht gegeben.
 
Vielen Dank :) Ich schau mir das ganze an, vielleicht finde ich eine Lösung. Habt ihr auch noch eine Idee wie ich meine UDT in dem Skript angeben kann?
 
Zurück
Oben