# WinCC Flex Programm bei Runtimestart ausführen



## lemmy13 (16 Juli 2009)

Hallo,

ich habe folgendes Problem:
Ich möchte gern eine externes Programm beim Start der WinCC Flexible Runtime ausführen (soll über den WinCC-Flex-OPC-Server mit der dahinterliegenden Steuerung kommunizieren). Leider finde ich kein Ereignis über dass ich im Flexible sowas machen könnte. Hab da schon 3 Tage lang gesucht. Im "normalen" WinCC konnte man das ja, aber im Flexible gibts sowas anscheinend nicht - oder ich bin zu blöd das zu finden.
Mir würde auch schon ein Ereignis "Runtime gestartet" für ein WinCC-Flex-Skript genügen (im Skript gibts ja die Möglichkeit externe Programme zu laden). Leider finde ich aber auch sowas nirgendwo. :-(

Kennt jemand für mein Problem eine passende Lösung???


----------



## rostiger Nagel (16 Juli 2009)

Hallo lemmy,
da gibt es die Funktion "StarteProgramm", um diese Funktion aufrufen zu können. Kannst du ja mit deinen Startbild eine Taste einfügen die dann diese Funktion aufruft.

gruß helmut


----------



## lemmy13 (16 Juli 2009)

Die Funktion habe ich gefunden, nur nützt mir die nicht soviel, wenn ich dazu noch einen Nutzer benötige. Das externe Programm funktioniert als Datenlogger und sollte automatisch beim Runtimestart mit ausgeführt werden. Wenn der Nutzer da vergisst auf den Knopf zu drücken läuft der Logger nich mit und das wäre nich akzeptabel ;-)


----------



## rostiger Nagel (16 Juli 2009)

Eine weitere Art dieses Funktion aufzurufen wäre, das du aus deiner SPS eine Variable zyklisch toggelst, diese Variable wird in der HMI eingebunden und ruft bei Wertänderung deine Funktion auf und setzt ein zweites Bit das das Toggeln in deiner CPU unterbindet. Mit einer Funktion Runtime Stopp kannst du dann dieses zweite Bit wieder zurück setzen.


----------



## lemmy13 (16 Juli 2009)

Das ist zwar von hinten durch die Brust ins Auge, aber das sollte funktionieren!  Danke für den Hinweis!


----------



## rostiger Nagel (16 Juli 2009)

ja das ist ein bischen umständlich, leider hat Siemens vergessen im Aufgabenplaner die Aufgabe "RuntimeStart" einzufügen, aber die Aufgabe "RuntimeStop" gibt es...

Bei meinen Oberflächen mache ich es so das ich als Startbildschirm unser Firmen-Logo habe und sonst nichts. Über den ganzen Startbildschirm lege ich dann eine unsichtbare Schaltfläche, wenn der kunde in irgendein anderes Bild will muss er die Schaltfläche betätigen, funktioniert eigendlich ganz gut.

gruß helmut


----------



## Paule (16 Juli 2009)

Hallo Lemmy,
es gibt doch immer noch den guten alten Bereichszeiger!
Und da wird bei der Koordinierung ein Bit gesetzt wenn das Panel bereit ist.


----------



## Günni1977 (16 Juli 2009)

hallo,
vielleicht noch ne Möglichkeit. bei jedem Bild gibt es die Funtionen "aufgebaut" und "abgebaut". wenn du "aufgebaut" beim Startbild nutzt und daran das Ereignis "StarteProgramm" hängst, sollte es auch funktionieren.


----------



## Larry Laffer (16 Juli 2009)

Hallo,
ich könnte hier jetzt auch noch meine geliebte Funktion "OB100"-Bild anführen :
Das Startbild ist ein anderes als dein Hauptbild.
Auf dem Startbild hast du ein Element, das eine Variable (z.B. Blinktakt) abfragt, die du sonst nirgends verwendest.
Hast du Verbindung mit der SPS, dann führt die "Wert-Änderung" dieser Variablen ein Script aus, das dann deine Startfunktionen ausführt und am Schluß auf dein Hauptbild wechselt.

Gruß
LL


----------



## lemmy13 (16 Juli 2009)

Danke für die vielen Tipp´s. Ich werde das mal mit der Blinkvariable versuchen. Ich denke das ist die beste Variante - da weiss ich auch gleich, dass die Verbindung zur SPS steht. ;-)


----------



## Waelder (16 Juli 2009)

Wie wärs mit dem "Bereichszeiger Koordinierung" ? Abfrage des Bits : Starting = 1 (RUN), d.H. wenn Run, dann Programm ausführen

Das Ding ist 1 Wort lang und beinhaltet :

 KOORD_BYTE1 : BYTE ;    //Koordinierung
STARTING : BOOL ;    //0=Anlauf 1=Run
MODE_HMI : BOOL ;    //0 = Online, 1 = Offline
LIFEBIT : BOOL ;    //Lifebit (Blinker)


----------



## volker (16 Juli 2009)

das mit dem startbild funzt gut, mach ich auch so.
aber wieso blinktakt?
benutze im bild die funktion ereignis 'bei bildaufbau' dort einfach starte programm wählen.


----------



## Larry Laffer (16 Juli 2009)

volker schrieb:


> das mit dem startbild funzt gut, mach ich auch so.
> aber wieso blinktakt?
> benutze im bild die funktion ereignis 'bei bildaufbau' dort einfach starte programm wählen.


 Den Blinktakt nehme ich deshalb, weil ich auf dioese Weise sicher stellen kann, dass die Visu zur SPS hin schon Verbindung hat und (alle) Variablen aktualisieren kann.
Ich hatte früher häufig das Problem, dass die Bediener die Anlage schon bedient hatten obwohl die Visu noch nicht Online war. Dadurch sind manchmal Variablen (z.B. SetzeBit) nicht zur SPS übergeben worden. 
Seit ich (im Bild) abwarte bis Kontakt besteht, habe ich dieses problem nie wieder gehabt ...

Gruß
LL


----------

