TIA C-Script Befehl SetVisible hängt bei Clients

steve589

Level-2
Beiträge
12
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen und ein frohes neues noch,

ich arbeite mit WinCC V16 Professional und öffne da "Pop-Ups" (Bildfenster) zur Bedienung von Antrieben. Diese werden in einem C-Script über den Befehl SetVisible sichtbar geschalten.
Jedoch dauert es bei den WinCC-Clients oft mehrere Sekunden bis das Pop-Up sichtbar geschalten wird. Wenn ich auf den WinCC-Servern arbeite, habe ich das Problem nicht. Es hängt wirklich an diesem Befehl. Alle anderen Befehle zum Abfragen von Eigenschaften der Bildfenster werden zackig ausgeführt. Das konnte ich feststellen, indem ich vor jeden Befehl einen GSC-Diagnoseeintrag ausgegeben habe.

Weiß da jemand Abhilfe?

Liebe Grüße
 
Ach was ich noch anmerken muss:
1. Die Rechner hängen alle in einer Domäne. Es kann ja gut sein, dass das eine Rolle spielt? Die Buttons, die die Pop-Ups öffnen sind jedoch noch mit keiner Berechtigung versehen.
2. Die Verzögerung scheint auch nur aufzutreten, wenn das erste Pop-Up geöffnet wird (kein anderes sichtbar).
 
Zuletzt bearbeitet:
Buttons, Text-/Werteanzeigen, Symbole. Keine Controls. An den Buttons hängen Scripte und Animationen.

Ich versorge das Bildfenster in dieser Reihenfolge mit einem Tag-Prefix, Titel, und einem Bild. Zuerst Habe ich das Bildfenster als allererstes sichtbar geschalten, doch Siemens meinte, sie haben die Erfahrung gemacht, das es stabiler läuft, wenn dies zum Schluss geschieht. Jedoch habe ich in beiden Fällen das gleiche Verhalten.



Das hat mir Siemens geschickt:

ich habe den Script angeschaut, mir ist aufgefallen, dass Sie den Bildfenster zuerst sichtbar gemacht wird und erst danach versorgt. Wir empfehlen immer zuerst Dan TagPrefix und Bildname an das Bildfenster zu übergeben und erst dann es sichtbar schalten. Erfahrungsgemäss funktioniert es so stabiler.
In Ihrem Fall anstatt
//***********************
SetVisible(lpszPictureName,pwName,TRUE);
printf("Tag-Prefix setzen \n");
SetTagPrefix(lpszPictureName,pwName,tPrefix);
SetPropChar(lpszPictureName,pwName,"CaptionText",titlePW);
SetPictureName(lpszPictureName,pwName,popUpPicName);
//************************

sollte man wie folgt machen.
//**************************
printf("Tag-Prefix setzen \n");
SetTagPrefix(lpszPictureName,pwName,tPrefix);
SetPropChar(lpszPictureName,pwName,"CaptionText",titlePW);
SetPictureName(lpszPictureName,pwName,popUpPicName);
SetVisible(lpszPictureName,pwName,TRUE);
//****************************
 
Ich habe das gleiche Phänomen mit V16 in einer Client/Server-Umgebung. Die Fenster werden mit VB-Script angezeigt. Das Timing bzgl. "Sichtbar-Setzen" habe ich jedoch noch nicht so genau untersucht.
Außerdem habe ich noch folgende Beobachtung gemacht: Trennt man nach dem Start der Client-Runtime die Verbindung zum Domänen-Controller (Defaultroute entfernt), dann tritt das Problem nicht mehr auf. In einem Setup ohne Domäncontroller besteht das Problem auch nicht. Auch bei mir ist die Verzögerung nur beim ersten Popup.

Gibt es für diese Probleme schon eine Lösung?
 
Zurück
Oben