24.12.2022 23:14 | |
Beigetreten: 23.04.2013 Letzter Bes: 15.09.2024 Beiträge: 48 Bewertung: (1) |
Hallo, wir machen bei uns gegen Ende des Jahres ein aktuelles Screenshot-Abbild sämtlicher PCS7-OS-Bilder des laufenden Betriebs. Bisher passiert dies immer manuell - d.h. man setzt sich eine Stunde vor eine OS und ruft ein Bild nach dem nächsten auf, macht einen Screenshot, speichert diesen als png und öffnet das nächste Bild. Die Stunde pro Jahr ist prinzipiell vertretbar, dennoch bin ich überzeugt davon, dass man dies auch automatisieren und damit optimieren könnte. Man kann doch gewiss einen C- oder VBS-Script erstellen, der im Prinzip folgendermaßen funktioniert: 1. Öffne Bild 1 xyz auf Server 1
Hat hier irgendwer einen Ansatz oder sogar eine Komplett-Lösung zur Optimierung meiner Banalität? Viele Grüße und ruhige Feiertage |
19.01.2023 11:48 | |
Beigetreten: 18.08.2014 Letzter Bes: 30.09.2024 Beiträge: 61 Bewertung: (18) |
Zwischenzeitlich habe ich eine Lösung erarbeitet, die zumindest für meine Anforderungen zufriedenstellend funktioniert. Dabei gelten folgende Vorbedingungen: Es gibt die Option, mittels Windows-Bordmitteln (inklusive des bei WinCC vorhandenen .NET-Framework) einen Screenshot (durch ein externes Programm) zu erstellen. Dabei ist keine Installation eines etwa nicht von Siemens freigegebenen Programmes nötig. Der (im Internet frei verfügbare) selbst compilierende Code wird als text in einer "Screencapture.bat" Datei gespeichert und ausgeführt. Danach erhält man eine "Screencapture.exe" Datei, die ich im weiteren Verlauf auf dem Zielclient unter C:\Screenshot gespeichert habe. Leider hat es sich gezeigt, dass man, damit das halbwegs gut funktioniert, bei meiner Lösung ein Dual-/Multiscreensystem für die Zeit der Screenshots auf Einzelscreen schalten muss, um nicht ein Bild über beide Screens, oder auch Kommandaausgabewindows vom Tool im Screenshot erhält. Außerdem erzeugt diese Funktion immer wieder mal "leere" Grafikdateien, die man dann wiederholt speichern müsste. Dies ist der Quellcode für ScreenCapture.bat: [snip]
DateianhangQuellcode.txt (243 Downloads) |
Zuletzt bearbeitet von: Jen_Moderator am: 01/20/2023 07:22:31Quellcode als Anhang hinzugefügt. |
|
Für diesen Beitrag bedanken sich3 Benutzer |
19.01.2023 12:18 | |
Beigetreten: 18.08.2014 Letzter Bes: 30.09.2024 Beiträge: 61 Bewertung: (18) |
Die Gesamte Funktion befindet sich in einem kleinen PDL Bild "PS_Screenshot.PDL". Dieses MUSS, wie folgt, über einen Button mit folgendem C-Script aufgerufen werden: SSMOpenTopFieldFixedSize(SSMGetScreen( lpszPictureName ),"PS_Screenshot.PDL"); Damit öffnet sich ein "persistentes" Window, das dann "zur Laufzeit" ganz an den unteren Rand (oder außerhalb) geschoben werden kann, da es auf dem Screenshot sichtbar ist. Links ist ein Einschaltbutton der Funktion. Daneben ein Zähler des Aktuellen Bereiches "Area". Rechts davon ein Button für einen manuellen Screenshot. Der soll dazu dienen, eventuell vorhandene Windows mit Parametereinstellungen zu öffnen und dann als Ergänzung händisch sichern zu können. Dort wird immer eine laufende Zahl ans Namenende angehängt, um nie ein bereits zuvor (automatisch) gespeichertes Bild zu überschreiben. In meinem Fall habe ich 48 Areas (Hauptregionen bzw. Buttons in der Kopfzeile. So lange läuft die Screenshotschleife durch. In dem Bild hängt der für die automatischen Screenshots relevante Code am EA-Feld unter Eigenschaften-Schrift-Fett. Der Trigger vom Skript "Standardzyklus- 5s" gibt den eingestellten Rythmus vor. Der Skript arbeitet im Wechsel: Ein Bild weiterblättern, Screenshot erstellen usw. (bei mir geht auch 2s, ist aber schon knapp mit dem Bildaufbau) Nur in der Hauptebene wird die Area über die Nummer angewählt, durch die "Unterhierachie wird dann mit dem SSM rechts/links/oben/unten navigiert. Ohne Kopf und erste Klammer /ab Deklarationsblock in Zeile.: 22-Anzahl der Areas anpassen 42-64 (65) in meinem Fall Trendkurvenübersichten "PKU..." (und unterlagerte Hierachie) von Screenshots ausschließen - ist aktuell deaktiviert 128,129,138 : Bilder mit "PK.." kein Screenshot (aktuell deaktiviert) 131-133 Funktion auslösen auf "ScreenCapture.exe" aktuell deaktiviert 134-136 Funktion auslösen auf Irvanview Die Angaben der Zeilen 128-136 gelten sinngemäß für den rechten Hand-Screenshot-Button bei "Mausklick". Ich hänge mal meine PDL an. Von PCS7 V9.0 SP3. Ggf. lässt sich diese in älteren WinCC-Versionen nicht öffnen. Dann könnte ich auch die Scripte einzeln hier hochladen; da müsste man das Bild halt im Zielsystem nachbauen. Gerne kommentieren. DateianhangPS_Screenshot.zip (265 Downloads) |
Zuletzt bearbeitet von: JOMAK am: 01/19/2023 12:39:29Zuletzt bearbeitet von: JOMAK am: 01/19/2023 13:51:58Zuletzt bearbeitet von: JOMAK am: 01/20/2023 06:18:06Zuletzt bearbeitet von: JOMAK am: 01/20/2023 07:35:58Zuletzt bearbeitet von: JOMAK am: 01/20/2023 10:29:48 |
|
Für diesen Beitrag bedanken sich3 Benutzer |
13.02.2023 14:23 | |
Beigetreten: 18.08.2014 Letzter Bes: 30.09.2024 Beiträge: 61 Bewertung: (18) |
Das mit dem mehrfach Durchlaufen kann ich nicht ganz nachvollziehen; ist bei mir nicht so. Was macht denn der Breichszähler, die Zahl in der Mitte? Diese entspricht ja der Picturetree- Area Nummer. Die Zahl sollte bei einem leeren Bereich nach den 2 Sekunden um Eins erhöht werden. Ich hatte halt alles nur mal auf die Basisfunktion ausgelegt; deshalb wird nicht jede Eventualität abgeprüft und z.B. noch die Pfade angelegt. Aber vielleicht schaue ich mir das noch mal an, wenn der Aufwand nicht zu gross ist, ob man noch was optimieren kann. Für den "Installationscheck müßte man im Graphicsdesigner die PS_Screenshot.PDL öffnen. Dann, nichts markiert, direkt die Eigenschaft von "Bild-Objekt": Ereignis - Sonstige-Bildanwahl. Folgenden Skript als C-Aktion hinterlegen: (Also,was innerhalb der Klammer steht) DateianhangBildanwahl.txt (260 Downloads) |
Zuletzt bearbeitet von: JOMAK am: 02/13/2023 14:25:35Zuletzt bearbeitet von: JOMAK am: 02/13/2023 14:26:29Zuletzt bearbeitet von: JOMAK am: 02/13/2023 14:27:55 |
|
Für diesen Beitrag bedanken sich1 Benutzer |
13.02.2023 14:50 | |
Beigetreten: 18.08.2014 Letzter Bes: 30.09.2024 Beiträge: 61 Bewertung: (18) |
Ich habe das übrigens bei mir so gelöst, dass der Button, der das Funktionsfenster öffnet, nur auf "meinem" Client angezeigt wird. Dafür wird der Button bei Eigenschaften-Sonstige-Anzeige bei "Statik" auf "nein" gestellt und der angehängte Visualbasic-Script als VB-Dynamik hinterlegt. DateianhangCompname_VB.txt (210 Downloads) |
Für diesen Beitrag bedanken sich1 Benutzer |
Folgen Sie uns auf