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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Index-Beschränkung in For-Schleife bei WinCC flex. 2008

  1. #1
    Registriert seit
    19.04.2012
    Beiträge
    43
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Weiß jemand ob es bei einer Indexvariablen in einem VBS Script von WinCC Flexible 2008 Sp3 eine Beschränkung gibt?
    Kann es sein, dass eine For..Next-Schleife nur eine begrenzte Anzahl an Durchläufe machen kann?
    Ich denke da jetzt aber nicht an die Begrenzung durch den Datentyp (Int).
    Ich möchte eine Schleife 1632 mal durchlaufen, ist das prinzipiell möglich?

    Danke für eure Antworten!
    Zitieren Zitieren Index-Beschränkung in For-Schleife bei WinCC flex. 2008  

  2. #2
    Registriert seit
    17.10.2007
    Beiträge
    263
    Danke
    5
    Erhielt 52 Danke für 48 Beiträge

    Standard

    Hallo Froma,

    eine Beschränkung bei For..Next-Schleifen-Indexvariablen wäre mir neu. Wobei ich gestehen muss, dass ich noch nie eine so 'große' Schleife benötigt habe...


    Gruß, Fred

  3. #3
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von Froma Beitrag anzeigen
    Ich möchte eine Schleife 1632 mal durchlaufen, ist das prinzipiell möglich?
    Ich könnte mir vorstellen, das dadurch die VISU sehr träge wird. Dazu müsste man aber mehr wissen.
    Grüße Frank

  4. #4
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.616
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard

    Nur das Script wird lange dauern.
    Dies wird eventuell andere Scripte behindern, aber der RT selber nicht.

    Warum einfach nicht probieren und sehe wie es geht ?
    Jesper M. Pedersen

  5. #5
    Registriert seit
    05.10.2005
    Beiträge
    188
    Danke
    31
    Erhielt 16 Danke für 14 Beiträge

    Standard

    nö, keine beschränkung.
    bei einem ce panel wird es ein wenig dauern. bei eine pc477 geht es mitlerweile recht flot. do while mit end loop fallen mir perönlich leichter und da ist der rekord bei mir knapp 4 000 durchläufen. lief war aber eigene dumheit . habe es dann anders gelöst. die skripte auf dem pc werden im windoofs ausgeführt. windoof ist also die eigenliche grenze.

  6. #6
    Froma ist offline Benutzer
    Themenstarter
    Registriert seit
    19.04.2012
    Beiträge
    43
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ok, schon mal danke für eure antworten!

    bin jetzt trotzdem noch sehr verwirrt...
    hab nämlich folgendes problem:

    ich bekomme bei nachstehendem script immer die meldung "überlauf des index k" (oder so ähnlich; siehe bitte screenshot).
    warum ist das so? kann mir dabei jemand helfen?
    ich habe nämlich das problem, dass das script manchmal richtig arbeitet, also die daten einer csv (in tabellenform) einliest, diese als textstream umwandelt und anschließend als eindimensionales datenfeld über die gezeigte schleife an den DB schickt. manchmal funktioniert das und manchmal eben nicht. wenn es nicht funktioniert, dann werden nicht alle 1700 schleifendurchgänge gemacht, sondern nur 100 - komisch!?!?


    DB_Datensicht.JPGDB_Deklarationssicht.JPGscriptcode.JPGvariable.JPGausgabe.jpg

  7. #7
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.616
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard

    Check mal was Systemfehler 190010 bedeutet.
    Es kann sein dass das Problem ist das 1700 REALs (=6800 bytes) sind zu viel.
    Abhängig von CPU Type kann nur eine gewisse Menge von Bytes auf einmal übertragen werden.
    Ich meine das für eine S7-300 ist es ungf. 240 Bytes.

    Was WinCC Flex tut in diesen Situation, ist mir nicht ganz klar. Ich glaube das es versucht die Datenmenge über mehrere Sendaufträge zu verteilen. Kann sein das auch Zeifverhältnisse kommen ins Spiel.
    Jesper M. Pedersen

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.708
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    das mit dem "Überlauf von k" könntest du ja damit abfangen, dass du den SmartTag nur zuweist wenn k <= 1699 ist - auch wenn in deiner Schleife k eigentlich nicht größer als 1699 werden kann.
    Die Überlast-Meldung besagt, dass dein Script-Puffer voll ist. Es können nur 20 Scripte in Bearbeitung sein - das 21. (und folgende) wird verworfen.
    Du solltest ggf. mal checken, ob die Bearbeitung deines Scriptes schon beendet ist bevor es wieder aufgerufen wird. Außerdem, was ggf. vorhandene weitere Scripte noch machen.
    In jedem Fall sieht das für mich so aus, als wenn deine Fehlermeldungen in Zusammenhang mit der "Überlast"-Meldung stehen ...

    Gruß
    Larry

    Nachsatz:
    wann wird das Script aufgerufen ? Automatisch über eine SPS-Trigger-Variable ? Wenn ja ... eine Bool ?

  9. #9
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.616
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard

    Aus den WinCC Flex RT User Manual:

    Für Event # 190010:
    Too many values are written to the tag (for example, in a loop triggered by a script).
    Values are lost because only up to 100 actions are saved to the buffer.
    Ich bin relativ sicher das es handelt um zu viele Bytes in Verhältniss zu was möglich ist.

    Es ist mir nicht klar warum der Index K ein System Event # 20010 auslöst.

    Zitat Zitat von Larry Laffer
    Die Überlast-Meldung besagt, dass dein Script-Puffer voll ist. Es können nur 20 Scripte in Bearbeitung sein - das 21. (und folgende) wird verworfen.
    Das ist hier nicht der Fall.
    Das wäre Event # 20015.
    Geändert von JesperMP (08.05.2013 um 09:52 Uhr)
    Jesper M. Pedersen

  10. #10
    Froma ist offline Benutzer
    Themenstarter
    Registriert seit
    19.04.2012
    Beiträge
    43
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Jesper:
    An ein Problem mit der Größe des Datenpakets, das auf einen Schwung übertragen werden kann, habe ich auch schon gedacht. Aus diesem Grund wollte ich die Daten in "50er"-Blöcken übertragen. Ich möchte ja lauter Realwerte übertragen (entspr. 4Byte * 50 = 200Byte) -> sollte bei einer max. Übertragung von 240Byte kein Problem sein..

    @Larry:
    Ich trigger das Script mit einer internen Bool-Variable (siehe Screenshot). Zu Info, ich habe nur noch ein einziges weiteres Script in Verwendung, dieses wird ebenfalls nur einmal als Button-Event aufgerufen. In diesem Script lese ich den Dateipfad der zu übertragenden CSV-Datei ein und prüfe deren Plausibilität. Das sollte also nicht in das Script zur Übertragung mitreinpfuschen.
    Ich habe irgendwie die vermutung, dass die Aktualisierungszeit der Visu mit der Zykluszeit der CPU ein Problem darstellt..

    Scriptaufruf.JPG

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 24.04.2012, 21:06
  2. KTP1000 WinCC flex 2008 ?
    Von mzva im Forum HMI
    Antworten: 1
    Letzter Beitrag: 27.07.2010, 14:37
  3. Antworten: 3
    Letzter Beitrag: 01.07.2010, 17:24
  4. Antworten: 4
    Letzter Beitrag: 28.01.2010, 10:38
  5. Antworten: 7
    Letzter Beitrag: 14.05.2009, 12:44

Lesezeichen

Berechtigungen

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