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

Ergebnis 1 bis 7 von 7

Thema: Über Triggervariable in DB Script in WinCCFlex starten

  1. #1
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich war heute mit einem Freund an WinCCFlex am Testen.

    Eine Triggervariable (Int) sollte bei Wertänderung ein Script anstoßen. In dem Script wurde dann abgefragt, ob sich die Variable von 0 auf 1 geändert hat, dann wurde das Script abgearbeitet und am Ende die Triggervariable im Script wieder auf Null gesetzt.

    Hat man die Triggervariable über einen Butten gesetzt ging das. Über die SPS ging das ab und an, sehr oft wurde das Script gar nicht erst aufgerufen (Kontrolle im Debugger)

    Wir haben ewig rumgeopert, bis wir zum Schluß die Triggervariable einfach in der SPS getoggelt und nicht mehr das Rücksetzen des Triggers im Script vorgenommen haben. Dadurch fehlt leider die Rückmeldung, ob das Script gelaufen ist, eine zweite Variable wäre möglich, aber na ja. Zumindest funktioniert der Aufruf nun immer.

    Ist das Verhalten normal?

    MP277 8" , Triggervariable im DB, Variable im Panel auf Wertänderung überwacht, Zyklus fortlaufend.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal
    Zitieren Zitieren Über Triggervariable in DB Script in WinCCFlex starten  

  2. #2
    Registriert seit
    13.10.2007
    Beiträge
    12.032
    Danke
    2.787
    Erhielt 3.269 Danke für 2.157 Beiträge

    Standard

    Ich bin ja der Auffassung das in den scripten, die steuerungsvariabeln als
    Instanz genutzt werden und ausserhalb wieder anders aktualliesiert wird.
    Wenn also innerhalb des scriptes die variabel nicht mit der Steuerung aktualisiert
    wird, wird nach beenden des scriptes einfach der alte wert aus der Steuerung
    übernommen. Als Beispiel Script braucht 50ms und kleinste aktualisierungszeit
    der Variablen ist 100ms, dann ist es ein glückstreffer innerhalb des scriptes
    zu aktualisieren.
    Versuch doch mal eine warte Zeit am Ende des scriptes einzubauen und schau
    mal was dann passiert, oft reicht es schon aus am Ende einfach noch ein zweites
    Script aufzurufen.
    Geändert von rostiger Nagel (19.05.2011 um 21:41 Uhr)
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    ... das sehe ich nicht so wie Helmut. Im Gegenteil sollte das auf jeden Fall funktionieren und ich bin mir auch sicher, dass ich so etwas mal in einem Script (mal ungeachtet dessen ob das so sinnig ist) am laufen hatte - allerdings PC-Runtime. Bei den MP's ticken die Uhren so ab und an auch mal anders.
    Na jedenfalls ... bei meiner Anwendung war es dann aber auch so, dass der Handshake z.T. über Gebühr langsam vonstatten ging - also länger als von der Script-Bearbeitung und der Variablen-Aktualisierungszeit her vertretbar gewesen wäre (was dann im Grund wieder in Richtung von dem, was Helmut geschrieben hat, geht).

    Fazit:

    Gruß
    Larry

  4. #4
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Wir bauen jetzt noch eine 2. Variable als Rückmeldung ein. Die setze ich dann am Ende des Scriptes und lösche sie aus der SPS heraus. Vorher Toggel ich den Trigger nicht.

    Wir hatten auch mit längeren und kürzeren Aktualisierungszeiten gearbeitet.
    Wartezeit ist eher nicht gut, in der Zwischenzeit geht ja nicht Anderes oder irre ich da?

    Bei WinCC6.2 ist es so, das ein VB-Script alles aufhält, es werden keine Fehler mehr angezeigt, keine anderen Scripte bearbeitet, das geht also dort gar nicht.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #5
    Registriert seit
    13.10.2007
    Beiträge
    12.032
    Danke
    2.787
    Erhielt 3.269 Danke für 2.157 Beiträge

    Standard

    versuche doch mal mit einer Zeit, die muss ja nicht lange sein.
    Hier ein Beispiel, wo ich "Array's" von Variabeln in die einzelenen
    Datenbausteine verteile, ohne Zeit geht da nichts.

    Code:
    Dim i
    Dim Parameter, Dummy, DB, speicher
     
    ReDim Dummy(20)
    ReDim Parameter(20)
    ReDim DB(20)
    Parameter(1) = "001\001-DB.HMI.Parameter"
    Parameter(2) = "111\111-DB.HMI.Parameter"
    Parameter(3) = "121\121-DB.HMI.Parameter"
    Parameter(4) = "122\122-DB.HMI.Parameter"
    Parameter(5) = "131\131-DB.HMI.Parameter"
    Parameter(6) = "132\132-DB.HMI.Parameter"
    Parameter(7) = "141\141-DB.HMI.Parameter"
    Parameter(8) = "142\142-DB.HMI.Parameter"
    Parameter(9) = "151\151-DB.HMI.Parameter"
    Parameter(10) = "152\152-DB.HMI.Parameter"
    Parameter(11) = "161\161-DB.HMI.Parameter"
    Parameter(12) = "207\207-DB.HMI.Parameter"
    DB(1) = "001"
    DB(2) = "111"
    DB(3) = "121"
    DB(4) = "122"
    DB(5) = "131"
    DB(6) = "132"
    DB(7) = "141"
    DB(8) = "142"
    DB(9) = "151"
    DB(10) = "152"
    DB(11) = "161"
    DB(12) = "207"
     
    'Fenster einblenden
    SmartTags("INI\Status") = 1
     
    'Parameter laden
    SmartTags("INI\Text_1") = "Parameters are loaded"
    SmartTags("INI\Text_2") = " "
    For i = 1 To 12
     speicher = Parameter(i)
     Dummy(i) = SmartTags (speicher)  
     SmartTags("INI\Text_2") = "Parameters Group " & DB(i)
     Delay 10
    Next
     
    'Initalisierung Beendet
    SmartTags("INI\Text_1") = "Initialization completed"
    SmartTags("INI\Text_2") = " "
    Delay 10
     
    'Fenster ausblenden
    SmartTags("INI\Status") = 0
     
    'Homebild aufrufen
    ActivateScreen "001:1 - Home", 0
    und hier das script für die Zeit
    Code:
    Dim StartTime, StopTime, i
    StartTime = Now
    StopTime = StartTime + DelayTime / 24 / 360000
    Do
    Loop Until Now >= StopTime
    Geändert von rostiger Nagel (20.05.2011 um 09:23 Uhr)
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Wartezeit ist eher nicht gut, in der Zwischenzeit geht ja nicht Anderes oder irre ich da?

    Bei WinCC6.2 ist es so, das ein VB-Script alles aufhält, es werden keine Fehler mehr angezeigt, keine anderen Scripte bearbeitet, das geht also dort gar nicht.
    Das ist bei Flex auch nicht anders.
    Es wird immer nur das eine Script ausgeführt (oder keins). Du kannst natürlich aus Script1 das Script2 aufrufen (und gibst dann so den "Token" weiter), Script2 bearbeiten und am Ende dessen wieder in Script1 zurückkehren (wie bei den Bausteine in der SPS).
    Wenn ein Scrippt viele Variablen aktualisiert (zumindestens beim Einlesen) kann die Laufzeit davon schon ganz schön ansteigen.

    @Helmut:
    Der Sinn deiner Delay's in dem Script erschießt sich mir jetzt nicht wirklich.
    Schreib doch mal etwas mehr dazu. Was wird dadurch besser ?

    Gruß
    Larry

  7. #7
    Registriert seit
    13.10.2007
    Beiträge
    12.032
    Danke
    2.787
    Erhielt 3.269 Danke für 2.157 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ich lade die Variabeln im Script über eine schleife um, das mach ich
    über zeiger. In jeden Schleifendurchlauf stelle ich den Zeiger auf eine
    neu Variabel und warte ich einen kleinen Augenblick. bis die Variabeln
    aktualisiert werden, wenn ich die Zeit nicht einbaue, werden
    die werte nicht übertragen. Baue ich die Zeit ein funktioniert es.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

Ähnliche Themen

  1. winccflex script dezimaltrennzeichen
    Von Bensen83 im Forum HMI
    Antworten: 3
    Letzter Beitrag: 13.03.2011, 23:17
  2. Antworten: 1
    Letzter Beitrag: 01.10.2009, 09:27
  3. Antworten: 1
    Letzter Beitrag: 03.03.2009, 19:42
  4. Script über Bit starten
    Von Kamania im Forum HMI
    Antworten: 5
    Letzter Beitrag: 26.08.2006, 13:51
  5. VB Script und WinCCflex
    Von Lazarus™ im Forum HMI
    Antworten: 0
    Letzter Beitrag: 04.07.2005, 22:19

Lesezeichen

Berechtigungen

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