Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 8 von 8

Thema: WinCC flexible Skript beim Bildabbau beenden

  1. #1
    Registriert seit
    24.01.2012
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe folgendes Problem:
    Wir wollen ein Skript realisieren, dass nach X Minuten auf das Hauptbild zurückwechselt. Die Minuten sind dabei einstellbar, ebenso ob das Skript überhaupt aktiv sein soll oder nicht. Das funktioniert soweit auch alles. Es ist allerdings so, dass das Skript beim Bildabbau scheinbar nicht beendet wird. Das zieht das Problem nach sich, dass die Umschaltezeit im HIntergrund weiter läuft. Kommt der Bediener also wieder zurück auf das Bild, dann lief der Counter bereits schon und es bleiben nicht die eingestellten Minuten bis zum nächsten Bildwechsel. Das ganze Problem würde sich beheben lassen, wenn das Skript bei jedem Bildabbau beendet werden würde und/oder bei jedem Bildaufbau neugestartet werden würde. Leider finde ich keine Lösung dazu. Weiß jemand Rat?

    Code:
    If ZZ_UMSCHALT_STATUS = True Then
     
    'Lokale Variable
    Dim Umschaltzeit
    
    'Variable zur aktuellen Zeit addieren
    Umschaltzeit = DateAdd ("s",ZZ_UMSCHALTZEIT,Time) 
    
    'Vergleich der beiden Zeiten bis die aktuelle Zeit > der Umschaltzeit ist
    Do Until DateDiff ("s",Time,Umschaltzeit) <= 0
    
     ZZ_UMSCHALTZEIT_AUSGABE = DateDiff("s",Time,Umschaltzeit)
     
    Loop
    
    'Aktiveren des Hauptbildes
    ActivateScreen "ST_0001_OVERVIEW_TOTAL_GENERATOR",0
    'Ende des Scripts
    
    Else
     Exit Sub
    End If
    Zitieren Zitieren WinCC flexible Skript beim Bildabbau beenden  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo,
    einen Loop in einem Script auszuführen halte ich für mehr als bedenklich.
    Mein Vorschlag :
    Du baust dir mit dem Aufgabenplaner eine Aufgabe, die jede Minute aufgerufen wird. Hier zählst du deine Flex-interne Variable, die du mit dem Aufrufen der Bildschirmseite setzt herunter. Ist sie <= 0 dann führst du die gewünschte Aktion aus.
    Also nicht mit einer im Script dimensionierten Variablen arbeiten sondern mit einer von Flex (allerdings einer internen, die keine Anbindung zur SPS hat).

    Gruß
    Larry

  3. #3
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    mit dem aufgabenplaner ginge es sicherlich auch.
    ich würde beim bildaufbau eine variable in der steuerung setzen. dort die zeit ablaufen lassen.
    wenn zeit abgelaufen das gewünschte bild anspringen.
    wird das bild vor ablauf der zeit verlassen bei bildabbau dir var die bei bildaufbau gesetzt wurde zurücksetzen.
    das ganze funtz ohne script
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  4. #4
    philippD ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.01.2012
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    danke für die Antworten.

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hier zählst du deine Flex-interne Variableherunter
    Wie genau zähle ich die Variable herunter? Mit "VerringereWert" ?


    Zitat Zitat von Larry Laffer Beitrag anzeigen
    die du mit dem Aufrufen der Bildschirmseite setzt
    Wie kann ich die Variable denn setzen? Ich will die Minutenanzahl vorher schon global festlegen und auch wieder ändern können (im Eisntellungsmenü).

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Ist sie <= 0 dann führst du die gewünschte Aktion aus.
    Das geht dann aber wieder über ein Skript oder?

    VIele Fragen, vermutlich auch Anfängerfragen. Hatte bisher aber sehr wenig mit der Materie zu tun

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Zitat Zitat von philippD Beitrag anzeigen
    Wie genau zähle ich die Variable herunter? Mit "VerringereWert" ?
    Das geht auch als "myZeitwert = myZeitwert -1", da wir ja insgesamt von einem Script im Aufgabenplaner reden - also etwa so :
    Code:
    if (myZeitwert > 1) then myZeitwert = myZeitwert -1
    Zitat Zitat von philippD Beitrag anzeigen
    Wie kann ich die Variable denn setzen? Ich will die Minutenanzahl vorher schon global festlegen und auch wieder ändern können (im Eisntellungsmenü).
    Entweder in enem Script, wie du es schon gemacht hast mit "myZeitwert = 7" (für 7 Minuten) oder mit der Einzel-Funktion (die könnte SetzeWert heissen).

    Zitat Zitat von philippD Beitrag anzeigen
    Das geht dann aber wieder über ein Skript oder?
    Ja ...

  6. #6
    philippD ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.01.2012
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,

    danke für deine Tipps. Hier mal so wie ich das jetzt umgesetzt habe:

    ---
    * Aufgabenplaner ruft das Skript jede Minute auf

    * bei "Bildufbau" habe ich diese Funktion gesetzt:
    SetzteWert
    Variable: Umschaltzeit_Skript
    Wert: Umschaltzeit

    Die Variable "Umschaltzeit" kann in einem anderen Bild vom Bediener beliebig gesetzt werden
    Die Variable "Umschaltzeit_Skript" übernimmt diesen Wert und reicht ihn an das Skript weiter

    Durch die Funktion "SetzeWert" bei jedem Bildaufruf, läuft der Timer bei jedem Bildaufruf von neuem los.

    Das Skript schaut so aus:

    Code:
    If (ZZ_UMSCHALTZEIT_STATUS) = True Then
    
        If (ZZ_UMSCHALTZEIT_SKRIPT >= 1) Then ZZ_UMSCHALTZEIT_SKRIPT = ZZ_UMSCHALTZEIT_SKRIPT -1
    
    
        If (ZZ_UMSCHALTZEIT_SKRIPT = 0) Then ActivateScreen "ST_0001_OVERVIEW_TOTAL_GENERATOR",0
    
    Else
    End If
    Die Variable "Umschaltzeit_Status" kann vom Bediener ebenfalls gesetzt werden. Damit lässt sich die Funktion aktivieren bzw. deaktivieren.
    ---

    Es funktioniert Aber, kann man das so machen oder ist daran noch irgendwas ungünstig?

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo,

    ich hatte es dir vorgeschlagen, weil ich das für eine ähnliche Funktion so mache.
    Bei dir wird allerdings das Bild "ST_0001_OVERVIEW_TOTAL_GENERATOR" nun im Minutentakt immer wieder aufgerufen wenn die Zeit abgelaufen ist. Das würde ich ggf. noch so abändern, dass das nur einmal geschieht. Z.B. mit einer Hilfsvariable, die TRUE ist, wenn die Zielseite sowieso schon aktiv ist und die mit dem Bildaufbau der Seite gesetzt und mit dem Bildabbau zurück-gesetzt wird.

    Also vielleicht so :
    Code:
    If (ZZ_UMSCHALTZEIT_SKRIPT >= 1) Then 
       ZZ_UMSCHALTZEIT_SKRIPT = ZZ_UMSCHALTZEIT_SKRIPT -1
    elseif not Aktiv_ST_0001_OVERVIEW_TOTAL_GENERATOR then
       ActivateScreen "ST_0001_OVERVIEW_TOTAL_GENERATOR",0
    end if
    Gruß
    Larry

  8. #8
    philippD ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.01.2012
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    vielen Dank für den Hinweis. Hatte ich übersehen bzw. gar nicht mehr drangedacht. Da die Funktion nicht auf allen 60 Bildern aktiv sein soll, ist das sogar zwingend notwendig!

    Viele Grüße,
    Philipp

Ähnliche Themen

  1. Skript WinCC Flexible
    Von Ruud im Forum HMI
    Antworten: 7
    Letzter Beitrag: 23.05.2011, 08:27
  2. Antworten: 1
    Letzter Beitrag: 15.02.2011, 08:37
  3. Antworten: 0
    Letzter Beitrag: 12.11.2010, 12:17
  4. VB-Skript mit WinCC flexible 2007
    Von Earny im Forum HMI
    Antworten: 4
    Letzter Beitrag: 27.07.2008, 21:03
  5. WinCC flexible und VB-Skript
    Von herdi im Forum HMI
    Antworten: 3
    Letzter Beitrag: 26.07.2008, 09:02

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •