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

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

Thema: WinCC Flex - Variablen für Script aktualisieren

  1. #1
    Registriert seit
    19.06.2003
    Ort
    Im Staub ...
    Beiträge
    337
    Danke
    115
    Erhielt 26 Danke für 23 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    habe an einer S7-315-2DP über Profibus einen PC mit WinCCFlex2007 RT hängen.
    Ich muss immer wieder Protokolldaten aus einem DB in eine Datei auf dem PC speichern bzw. anhängen (jeweils ein Block mit 384 Bytes).
    Die Variablen sind verschiedenen Typs (Word, Real, Byte ...), und kommen in keinem Bild vor.

    Ich dachte mir VB-Script wäre das Beste hierfür.
    Habe für den Script-Aufruf eine Variable (Steuerbyte) angelegt und auf Erfassungszyklus 'zyklisch fortlaufend' gestellt.

    Script-Aufruf und das Script an sich funktioniert soweit, aber wie bekomme ich die Variablen aktualisiert?
    80 x AktualisiereVariable vor dem Script-Aufruf? Nee, oder?

    Bitte um Eure Hilfe.
    Danke im Voraus.

    Gruß.
    Zitieren Zitieren WinCC Flex - Variablen für Script aktualisieren  

  2. #2
    Registriert seit
    22.06.2007
    Ort
    Dresden
    Beiträge
    155
    Danke
    28
    Erhielt 15 Danke für 10 Beiträge

    Standard

    Aktualisiere die Variable doch über einen Taktmerker (von der SPS, musste in der HW-Config der CPU einstellen), sodas das Skript immer "bei Änderung" des Taktmerkers ausgeführt wird... -> in dem Skript liest du dann deine Daten aus dem DB in der SPS und schreibst sie in deine Datei

  3. #3
    Avatar von ssound1de
    ssound1de ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.06.2003
    Ort
    Im Staub ...
    Beiträge
    337
    Danke
    115
    Erhielt 26 Danke für 23 Beiträge

    Standard

    Zitat Zitat von bastimeister Beitrag anzeigen
    Aktualisiere die Variable doch über einen Taktmerker (von der SPS, musste in der HW-Config der CPU einstellen), sodas das Skript immer "bei Änderung" des Taktmerkers ausgeführt wird... -> in dem Skript liest du dann deine Daten aus dem DB in der SPS und schreibst sie in deine Datei
    Danke für Deine Antwort, aber leider ist das so nicht durchführbar.
    Zum einen muss ich nicht nur eine Variable sondern ingesamt 384 Bytes aktualisieren (Bus-Belastung usw.). Zum anderen handelt es sich um Protokolldaten. D.h., wenn eine Mischung fertig ist sollen die Werte gespeichert werden (Soll/Istwerte der Mischung). Wird 1 Std. nix gemischt braucht auch nix gespeichert zu werden. Wird in 1 Min. 5x gemischt muss 5x gespeichert werden.

    EDIT: Mal ne andere Frage ...
    Wenn ich in einem Bild eine Variable Anzeige, wird sie ja gemäß Einstellungen aktualisiert (z.B. bei Bildaufruf oder zyklisch bei Verwendung)
    Wie ist das denn in einem Script? Wenn ich im Script auf eine Variable zugreife, wird sie dann ebenfalls automatisch aktualisiert?
    Geändert von ssound1de (16.07.2009 um 12:17 Uhr)

  4. #4
    Registriert seit
    18.04.2005
    Ort
    Fast an der Schweiz
    Beiträge
    856
    Danke
    208
    Erhielt 108 Danke für 76 Beiträge

    Standard

    Also ich hab die selbe Funktion wie Du implementiert,
    Bei z.B Produktionsbeginn wird ein File geschrieben (CSV), und während der Produktion machte ein Blinker (z.B. 1s) den Takt für die Speicherung (via scipt) der Daten im File. Das geht ohne Probleme.
    Wenn Du eine Variable im script aufruftst dann wird sie natürlich lt. : zyklisch bei Verwendung aktualisiert.
    Lediglich das Blinkerbit musst du aufständig lesen setzen.

    Gruss Wälder
    Code:
     RTFM ! Read The F..ing Manual
    Arbeitet mit : Step7 V5.5 SPx / WinCC Flex 2008 SPx / Intouch / Winmod /TIA V14 (abgestürzt...Zitat der Hotline : "Sie dürfen nicht so viel rumdrücken....." TIA, so isses halt)

    ║▌║█║║▌║█║ Warnung! Falscher oder fehlender Kaffee - Benutzer angehalten --(◔̯◔)--
    1334566890111

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

    Standard

    @ssound:
    Die Variablen werden durch das Script nicht aktualisiert. Du mußt schon das Attribut "zyklisch fortlaufend" nehmen.
    Wenn du möchtest, dass die Variablen konsistent sind - also alle Inhalte mit dem aktuellen Zustand in der Steuerung übereinstimmen - so kannst du das nur erreichen wenn dein Triggerbit unbestimmt sehr lange nach der Wert-Änderung der letzten Variablen in der Steuerung kommt.

    Ein ähnliches Problem habe ich auch schon so dann und wann.
    Ich habe das umgangen, in dem ich die Daten alle in das gleiche Format gepackt habe und der Visu als "bitgetriggerte Kurve" untergeschoben habe. Die Kurve wird (nach Möglichkeit und wenn nicht zu groß) immer vollständig übertragen. Die erste und die letzte Variable meiner Kurve (des Daten-Array's) ist eine Zählvariable. Diese müssen beiden gleichen Wert haben und mit dem erwarteten übereinstimmen - dann wird gespeichert.
    Ist ein etwas umständliches Verfahren ...

    Gruß
    LL

  6. #6
    Avatar von ssound1de
    ssound1de ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.06.2003
    Ort
    Im Staub ...
    Beiträge
    337
    Danke
    115
    Erhielt 26 Danke für 23 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    @ssound:
    Die Variablen werden durch das Script nicht aktualisiert.
    Hatte sowas noch von Protool in Erinnerung.

    Gäbe es nicht eine Möglichkeit über Steuerungsauftrag?
    Mal angenommen ich würde eine Rezeptur passend zu dem Protokolldaten-DB anlegen.
    Wenn die Daten dann gespeichert werden müssen löse ich den Auftrag 69 aus (Datensatz aus Steuerung lesen) oder die Funktion 'LeseDatensatzvariablenAusSteuerung' oder so ähnlich.
    Und wenn der Auftrag erledigt ist, fahre ich mein Speicher-Script durch.
    Könnte doch funktionieren, oder?

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

    Standard

    geht auch ohne den steuerungsauftrag.
    im scripts die rezeptur laden. in eine endlosschleife gehen und dort den rückgabewert von rezeptur laden auswerten.

    Code:
    2 = Systemfunktion wird gerade ausgeführt.
    4 = Systemfunktion wurde erfolgreich beendet.
    12 = Systemfunktion wurde nicht ausgeführt, weil ein Fehler aufgetreten ist.
    evtl kannst du aber auch die rezeptur laden und dann einfach exportieren falls du die daten nicht noch aufbereiten willst.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

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

    Standard

    @SSouind:
    das mit der Rezeptur funktioniert genauso - auch diese Daten werden im Zusammenhang geladen/aktualisiert. Für meine Sache konnte ich das allerdings nicht gebrauchen, da die Hintergrund-Speicherung der rezeptur zu lange dauert. Deswegen die Kurve ...

    @Volker:
    zu der Sache mit der Endlos-Schleife im Script kann ich nicht unbedingt raten. Denk bitte dran : es wird immer nur ein Script ausgeführt - das kann dann schnell Stress geben ...

    Gruß
    LL

  9. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    ssound1de (17.07.2009)

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

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    zu der Sache mit der Endlos-Schleife im Script kann ich nicht unbedingt raten. Denk bitte dran : es wird immer nur ein Script ausgeführt - das kann dann schnell Stress geben ...
    weiss ich. alternativ kann man den rückgabewert in eine var schreiben und dann bei wertänderung das folgescript auslösen.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  11. #10
    Avatar von ssound1de
    ssound1de ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.06.2003
    Ort
    Im Staub ...
    Beiträge
    337
    Danke
    115
    Erhielt 26 Danke für 23 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für Eure Antworten.

    Zitat Zitat von volker Beitrag anzeigen
    alternativ kann man den rückgabewert in eine var schreiben und dann bei wertänderung das folgescript auslösen.
    Das würde dann also in etwa so aussehen ...

    GetDataRecordTagsFromPLC "Rezeptname" , "Rückgabe-Var"
    Bei Wertänderung von Rückgabe-Var und Rückgabe-Var=4 mit Script den Datensatz auf Platte schreiben.

    Und das Script wird dann trotzdem beendet, während der Datensatz im Hintergrund geladen wird?

    EDIT: Nochwas nebenbei ...
    Ich habe GetDataRecordTagsFromPLC nicht in der VBS-Hilfe gefunden. Gibt es zu den VBS-Funktionen unter WCCF irgendwo eine Hilfe?
    Geändert von ssound1de (17.07.2009 um 07:11 Uhr)

Ähnliche Themen

  1. WINCC RT7.0 Variablen aktualisieren?
    Von Aboden im Forum HMI
    Antworten: 2
    Letzter Beitrag: 30.07.2011, 17:13
  2. Script für WinCC flex
    Von TI 1 im Forum HMI
    Antworten: 5
    Letzter Beitrag: 08.03.2011, 06:52
  3. Antworten: 1
    Letzter Beitrag: 17.11.2010, 08:28
  4. WinCC flex Script/Archiv
    Von Wowa05 im Forum HMI
    Antworten: 4
    Letzter Beitrag: 26.05.2010, 15:00
  5. Antworten: 6
    Letzter Beitrag: 21.07.2008, 08:34

Lesezeichen

Berechtigungen

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