WinCC Win CC Professional 17.0 : Skript funktioniert auf Tastendruck, aber über den Aufgabenplaner nicht :-(

mertens2

Level-2
Beiträge
283
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

habe die Aufgabe ein Archiv automatisch zu exportieren, einmal am Tag. habe Skript geschrieben, funktioniert wunderbar, wenn ich dieses über eine Taste in der Visu startet, das Archiv wird genau passend wunderbar abgelegt.
Jetzt habe ich als nächsten Schritt den Aufruf in den Aufgabenplaner (zyklisch 1min) gelegt. Und oh wunder, es funktioniert nicht. Das Skript wird aufgerufen und es kommt zu einem Laufzeitfehler.
Das Skript sieht im Wesentlichen so aus:

Set oControl = ScreenItems("Archiv Handlackierung1")
oControl.ExportDirectoryname = "D:\Datenarchiv\Handlackierung" 'Exportpfad
oControl.ExportFilename = "Handlackierung_"+CStr(DatePart("yyyy",Date))+"_"+apx2+CStr(DatePart("m",Date))+"_"+apx3+CStr(DatePart("d",Date))+"_"+apx4+CStr(DatePart("h",Now))+"_"+apx5+CStr(DatePart("n",Now))+".csv" 'Dateiname mit Pfadangabe aus Zeistempel 'Dateiname
oControl.ExportSelection = EXPORT_SELECTION_ALL 'Selektion: Alles oder nur Ausgewähltes
oControl.ExportShowDialog = False 'Dialog nicht anzeigen
oControl.Export 'Exportieren (wenn ExportShowDialog = true, dann öffnet sich der Dialog des Controls, sonst wird exportiert)


Es kommt zu dem Laufzeitfehlerin der ersten Zeile, "Typenkonflikt: Screen Items". Dabei ist egal, ob das entsprechende Bild aufgerufen ist oder nicht.
Archiv Handlackierung1 ist ein Online Table Control, welches die zu exp. Archivdaten anzeigt.

Jemand eine Idee?
 
Es kommt zu dem Laufzeitfehlerin der ersten Zeile, "Typenkonflikt: Screen Items". Dabei ist egal, ob das entsprechende Bild aufgerufen ist oder nicht.
Archiv Handlackierung1 ist ein Online Table Control, welches die zu exp. Archivdaten anzeigt.

Jemand eine Idee?
Puhh, bin jetzt nicht der VBS-Profi, aber woher soll das Script wissen, in welchem Bild das Online Table Control sein soll...

Wenn Du das Script in dem Bild aufrufst, wo sich auch dieses "Archiv Handlackierung1" befindet, geht das Script vermutlich davon aus, dass es im selben Bild ist...
 
aber woher soll das Script wissen, in welchem Bild das Online Table Control sein soll...

Wenn Du das Script in dem Bild aufrufst, wo sich auch dieses "Archiv Handlackierung1" befindet, geht das Script vermutlich davon aus, dass es im selben Bild ist...

Wi oben gesagt, funktioniert es auch nicht über den Aufgabenplaner, wenn das passende Bild geöffnet ist, das ist ja das komische. Aber grundsätzlich gebe ich Dir recht, es wird irgendetwas mit der Referenzierung des Bildes zu tun haben...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wi oben gesagt, funktioniert es auch nicht über den Aufgabenplaner, wenn das passende Bild geöffnet ist, das ist ja das komische. Aber grundsätzlich gebe ich Dir recht, es wird irgendetwas mit der Referenzierung des Bildes zu tun haben...
Hat ja nix damit zu tun, ob das Bild offen ist oder nicht. Aber ich vermute, Du musst eh das Bild öffnen und das Script in dem Bild ausführen... Im "Hintergrund" wird das Online Table Control nichts tun...

Was willst Du eigentlich machen?
 
Ich gehe auch davon aus, dass es so ist wie von @ducati geschrieben. Du referenzierst das Control nicht korrekt. Wahrscheinlioch ist es auch noch so, dass wenn das Script über den Aufgabenplaner gestartet wird deine Seite nicht mehr das aktive Element ist (sondern eben der Planer) ...
Versuch es doch einfach mal indem du die komplette referenzierung des Controls aufbaust - also mit Screen ...
 
Danke an ducati und Larry. Direkte Referenzierung aufs Bild brachte die Lösung:

Set oControl = HMIRuntime.Screens("Datenarchiv_archiv").ScreenItems("Archiv Handlackierung")
 
Zurück
Oben