# WinCC flex Startbild für 10 Sekunden anzeigen



## mkd (1 Oktober 2009)

Hallo,

ich möchte nach Runtime Start für x Sekunden ein Startbild anzeigen und nach Ablauf der Zeit automatisch auf das Anlagenbild wechseln.

Folgende Idee hatte ich zur Durchführung: 

- Im Aufgabenplaner eine Aufgabe "Einmal" anlegen die das Anlagenbild öffnet. Als Timer eine Interne Date and Time Variable vergeben (hier TimeSet).

- Im Startbild unter Ereignis Aufgebaut ein Skript ausführen:


```
tmr=DateAdd("s",10,Date+Time) 'aktuelles Datum/Uhrzeit + 10s
TimeSet=tmr                          'auf interne Variable schreiben => durch
                                           'Aufgabenplaner ausgeführtes Ereignis
```


Wenn ich jetzt die Runtime Starte, wird erst das Startbild aufgerufen, danach das Anlagenbild. So weit so gut.
Nur Funktioniert die Verzögerung nicht wie gewünscht. Mal passt die Zeit, mal wird das Anlagenbild viel früher aufgerufen.
Ich habe die Zeit auch mal erhöht.


```
tmr=DateAdd("s",50,Date+Time) 'aktuelles Datum/Uhrzeit + 50s
TimeSet=tmr                          'auf interne Variable schreiben => durch
                                           'Aufgabenplaner ausgeführtes Ereignis
```

Dann erfolgt der Bildwechsel auch manchmal sekundengenau, andere male aber schon nach wenigen Sekunden.

Um die DateAdd Funktion zu überprüfen, habe ich mir die Variable TimeSet im Bild anzeigen lassen. Das Ergebnis passt. 

Funktioniert das Ereignis im Aufgabenplaner nicht zeitgenau? Oder kennt Ihr eine andere Möglichkeit zur Realisierung meiner Aufgabe?


Gruß
Daniel


----------



## Kai (1 Oktober 2009)

Siehe die folgende Siemens-FAQ:

ID26120986 Wie kann in einem Skript eine Wartefunktion (Verzögerung) realisiert werden?

Gruß Kai


----------



## Blockmove (1 Oktober 2009)

Wie wär es denn mit einem Steuerungsauftrag durch die SPS?
Mit dem Ereignis "Bild aufgebaut" des Startbildes setzt du ein Bit in der SPS. 10s später sendet die SPS den Steuerungsauftrag 51 mit der Bildnr des Anlagenbildes.

Gruß
  Dieter


----------



## ToBo (1 Oktober 2009)

Blockmove schrieb:


> Wie wär es denn mit einem Steuerungsauftrag durch die SPS?
> Mit dem Ereignis "Bild aufgebaut" des Startbildes setzt du ein Bit in der SPS. 10s später sendet die SPS den Steuerungsauftrag 51 mit der Bildnr des Anlagenbildes.
> 
> Gruß
> Dieter


 

Genauso mache ich es auch.....


----------



## mkd (2 Oktober 2009)

Vielen Dank für eure Tipps!

Ich habe es jetzt nach dem Vorschlag von Kai gelöst.
Also Implementierung des Delay Scriptes und dann ist mein Script nur noch ein Zweizeiler


```
Delay(10)                            'Verzögerung 10 Sekunden

ActivateScreen "01_Bild_1", 0        'Anlagenbild aufrufen
```
Das Script rufe ich dann beim Startbild Ereignis 'Aufgebaut' auf.

M.M.n. gehören solche Geschichten nicht in die SPS. So muss ich alles auch nur einmal anpacken - das ist aber eine Sache der Einstellung 

Gruß
Daniel


----------



## Larry Laffer (2 Oktober 2009)

... sehe ich auch so ...
Du mußt aber beachten, dass während der Delay in dem Script abläuft kein weiteres Script in der Visu ausgeführt wird -/- Das sollte aber bei einem Anlauf-Script auch nicht so das Problem sein ...

Gruß
LL


----------



## superkato (30 März 2011)

ich versuch genau sowas zu realisieren.

nur wie skripte ich in wincc flex 08 ? ich kenn mich da nicht so aus.

Ich würde gerne alle meine Bilder nach dem Start alle 2 Sek. wechseln lassen.

Delay(2)                                  'Verzögerung 2 Sekunden  ActivateScreen 
"Bild_1", 0            'Bild_1 aufrufen
Delay(2) 
"Bild_2", 0             'Bild_2 aufrufen 
Delay(2)  
"Bild_3", 0            'Bild_3 aufrufen 

mfg
Sk


----------



## Larry Laffer (30 März 2011)

... zu dem Thema Skripte in Flex gibt es im Forum (u.A. in der Rubrik FAQ) massenhaft Beispiele.

Zu deinem Thema :
Ich würde in der SPS eine Variable alle 2 Sekunden eine Variable hochzählen. Diese in Flex einbinden und "bei Wertänderung" das Skript aufrufen, wo du die Bildschaltung in Abhängigkeit des Zählwertes der Variablen vornimmst (also bei Zählvariable = 1 das Bild_1 aktivieren und bei Zählvariable = 2 das Bild_2 usw.).

Gruß
Larry


----------



## JesperMP (30 März 2011)

Larry Laffer schrieb:


> Du mußt aber beachten, dass während der Delay in dem Script abläuft kein weiteres Script in der Visu ausgeführt wird -/- Das sollte aber bei einem Anlauf-Script auch nicht so das Problem sein ...


Auf diesen Grund suche ich auch eine andere Lösungsweg.
Anstatt ein Skript ständig ablaufen zu lassen, rufe ich ein Skript zyklish auf per "SimulateTag". Diese Funktion ist auf der Event "Loaded" in den gewünschten Bild geknüpft. Bei Wertänderung kann dann eine Skript aufgerufen werden womit es entscheidet wird was passieren soll.

Komplett ohne Skripte finde ich keinen Weg. Aber diesen verfahren blokiert nicht alle die andere Skripte.


----------

