WinCC flex Startbild für 10 Sekunden anzeigen

mkd

Level-2
Beiträge
197
Reaktionspunkte
30
Zuviel Werbung?
-> Hier kostenlos registrieren
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:

Code:
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.

Code:
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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

Code:
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... 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
 
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
 
:confused: ... 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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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.
 
Zurück
Oben