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

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

Thema: WinCC flexible 2008 PC-Runtime Varialblen sind im VB-Script nicht aktuell

  1. #1
    Registriert seit
    14.01.2013
    Beiträge
    45
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forum

    In einem VB-Script in einer PC-Runtime greife ich auf mehrere Variablen der Steuerung zu und generiere dann einen Ordner auf dem PC bestehend aus den Infos der Variablen.
    sporadisch kommt es vor das hier noch versucht wird den gleichen Ordner erneut zu erstellen.

    Das Script rufe ich mit Wertänderung einer Variable (Erfassung zyklisch fortlaufend) aus dem Programm auf. Im SPS Programm werden genau davor die Variablen (zyklisch bei Verwendung) beschrieben.
    Dieses Variablen werden aber nur in dem Script verwendet.

    Muss ich nun alle Variablen auf "zyklisch fortlaufend" stellen oder kann ich im Script die Variable aktualisieren bzw. eine Wartezeit einbauen?
    Anbei das Script

    Vielen Dank im vorraus.


    'Ordner erstellen
    Dim fso, f, Pfad, Ordner

    Pfad = SmartTags("Komm_Daten\DB_Pfad_Name.Laufwerk_aktiv") & ":\"
    Ordner = Pfad & SmartTags("Komm_Daten\DB_Pfad_Name.OrdnerName")

    ShowSystemAlarm "Ordner: " & Ordner

    ' Objekt erstellen
    Set fso = CreateObject("Scripting.FileSystemObject")

    If Err.Number <> 0 Then
    ShowSystemAlarm "Error #" & CStr(Err.Number) & " " & Err.Description
    Err.Clear
    Exit Sub
    End If

    ' Wenn Ordner nicht existiert,Ordner erstellen
    'Set f = fso.CreateFolder (Ordner)
    If Not fso.FolderExists(Ordner) Then
    fso.CreateFolder (Ordner)

    End If

    If Err.Number <> 0 Then
    ShowSystemAlarm "Error #" & CStr(Err.Number) & " " & Err.Description & Ordner
    Err.Clear
    Exit Sub
    End If

    Set fso = Nothing
    Set f = Nothing

    ' Anforderung Skript ausführen wieder auf 0 schreiben
    SetValue SmartTags("Komm_Daten\DB_Allgemein.HMI_Script_02"),0

    ' Ausgabe alles iO
    ShowSystemAlarm "Ordner wurde erstellt: " & Ordner
    Exit Sub
    Zitieren Zitieren WinCC flexible 2008 PC-Runtime Varialblen sind im VB-Script nicht aktuell  

  2. #2
    Registriert seit
    13.10.2007
    Beiträge
    12.054
    Danke
    2.793
    Erhielt 3.285 Danke für 2.165 Beiträge

    Standard

    Versuch doch die Variablen in eine Rezeptur zu legen, diese Rezeptur kannst
    aus dem Script überwacht laden, so hast du auch die Garantie das die Daten
    Konsistent sind.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

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

    Standard

    Hallo,

    die Variablen auf 'Zyklisch fortlaufend' zu stellen wird in den meisten Fällen ausreichen, um die beschriebenen Probleme zu lösen. Eine Gewähr für aktuelle Werte hat man nur, wenn man -z.B. wie rostiger Nagel beschrieben hat- die Variablen gezielt im Script aktualisiert. Seine Methode hat den Nachteil, dass man bei Änderungen am Variablen-Mengengerüst zusätzlich die Rezeptur mitpflegen muss, was mit dem Siemens-Rezepteditor (ob WinCC flex oder TIA) ein Graus ist. Im TIA-Portal gibt es mittlerweile eine Aktualisierungsart 'Auf Anforderung', diese habe ich aber noch nicht verwendet bzw. testen können.

    Gruß, Fred

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.285
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard

    VBS-Codebeispiel für Variablen Lesen/Schreiben mit Fertigmeldung (GetDataRecordTagsFromPLC/SetDataRecordTagsToPLC)

    Schau Dir auch mal diesen Thread an, besonders ab Beitrag #12, wo ein sicherer Export von Speicherbereichen aus der CPU in eine CSV-Datei beschrieben ist (ereignisgesteuert, kein Warten im Script).

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.285
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard

    Zitat Zitat von faust Beitrag anzeigen
    Im TIA-Portal gibt es mittlerweile eine Aktualisierungsart 'Auf Anforderung', diese habe ich aber noch nicht verwendet bzw. testen können.
    'Auf Anforderung' gibt es auch schon in WinCCflex, das löst aber das Problem nicht, da die zugehörige Systemfunktion "AktualisiereVariable" nicht in Skripten verwendet werden kann (und es außerdem nicht direkt eine Fertigmeldung gibt).

    Zitat Zitat von faust Beitrag anzeigen
    die Variablen auf 'Zyklisch fortlaufend' zu stellen wird in den meisten Fällen ausreichen, um die beschriebenen Probleme zu lösen.
    Wir sind Automatisierer, wir müssen Programme schreiben, die immer sicher funktionieren und nicht nur "meistens". Da darf uns der Aufwand für Nachführung von Rezepturen nicht von abhalten.

    Zitat Zitat von faust Beitrag anzeigen
    Eine Gewähr für aktuelle Werte hat man nur, wenn man -z.B. wie rostiger Nagel beschrieben hat- die Variablen gezielt im Script aktualisiert. Seine Methode hat den Nachteil, dass man bei Änderungen am Variablen-Mengengerüst zusätzlich die Rezeptur mitpflegen muss, was mit dem Siemens-Rezepteditor (ob WinCC flex oder TIA) ein Graus ist.
    Den Aufwand in WinCC flexible finde ich nicht so grausig - man muß doch lediglich die verwendeten Variablen in eine Liste der Rezepturelemente eintragen.
    (TIA kenne ich nicht)

    Nur mit Rezepturen (Datensatzvariablen) oder aufwendig selbstprogrammierten Handshakes bekommt man kontrolliert Variablen aus/in eine CPU gelesen/geschrieben. Arbeiten mit den in WinCCflex verfügbaren Variablen-Erfassungszyklen ergibt mehr oder weniger zufällige Ergebnisse.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

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

    Standard

    Hallo Harald,

    ich stütze meine Aussage über den Rezepteditor auf Erfahrungen mit Rezepten > 150 Variablen, solche -und dann gleich mehrere in einem Projekt!- müsste ich nämlich dann verwenden. Und das Einfügen/Sortieren von Variablen war damals und ist noch heute (TIA) für jede Variable EINZELN durchzuführen, es existieren kaum (besser: keine) Hilfsfunktionen wie z.B. Alphab. Sortierung o.ä., von der meiner Meinung nach sinnfreien Vorbesetzung der Rezeptelementnamen und der dadurch aufgeblähten Projekttextliste ganz zu schweigen.

    Gruß, Fred

  7. #7
    Registriert seit
    14.01.2013
    Beiträge
    45
    Danke
    8
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen

    Danke für die Rückmeldungen.

    ich habe mich erstmal gegen die Variante entschieden eine Rezeptur anzulegen.
    Das Script habe ich etwas angepasst, wobei die Variable der SPS gar nicht im Script zusammen gebaut wird sondern nur der Ordner.
    Also müsste die Variable aktuell sein. Erfassung steht nun auch auf zyklisch.

    Code:
    'Ordner erstellen
    Dim fso, f, Pfad, Ordner, Name
    
    Pfad = SmartTags("Komm_Daten\DB_Pfad_Name.Laufwerk_aktiv")
    Name = SmartTags("Komm_Daten\DB_Pfad_Name.OrdnerName") 
    
    Ordner = Pfad &  ":\" & Name
    Nun schreibe ich erst die Variablen in der SPS und nach 300ms wird das Script angestossen. Dann sollten die Werte im HMI aktuell sein.
    Das Problem ist das die Anlage bereits beim Kunden steht (nicht um die Ecke) und ich nur eine schlechte Fernwartungsmöglichkeit habe.
    Daher die Variante der Problemlösung. Wenn da was schief geht kann ich da hin........

    Die ersten Versuche beim Kunden haben funktioniert. Wir werden mal abwarten wie es sich in der nächsten Woche verhält ob der Fehler noch wieder auftritt.

    Schönes Wochenende

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

    Standard

    Ein bisschen OT, aber dennoch...

    Ich sehe bei den meisten Scriptbeispielen hier im Forum und auch sonst, dass dort der Ausdruck 'Smarttags("<Variablenname>")' verwendet wird, wenn globale Variablen im Spiel sind. Bei Namen, die z.B. in Schleifen dynamisch zusammengesetzt werden, kann ich das auch nachvollziehen und mache dies ebenso. Ansonsten verzichte ich auf diese Kapselung (sofern keine Punkte im Variablennamen enthalten sind, diese ersetze ich aber schon von Anfang an durch Unterstriche). Gibt es eigentlich Nachteile durch diesen Verzicht?

    Gruß, Fred

  9. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.285
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard

    Wenn man Variablen aus Variablen-Ordnern verwendet, dann geht das m.W. nur via Smarttags(...)
    Warum dann einen Unterschied machen, wenn es ausnahmsweise mal auch ohne ginge?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.783
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Faust:
    Das war beim guten alten Protool auch schon so. Hintergrund dabei war, dass PT wie auch Flex heute, die "PTVars" bzw. "SmartTags" identifizieren konnte.
    Bahandelt worden sind sie bzw. werden sie dadurch nicht anders was den Zugriff anbelangt ...

    @TE:
    Es ist alles gut, solange wie alles nach Wunsch funktioniert.
    Nach meiner Erfahrung kannst du allerdings auf diese Weise niemals eine wirkliche Variablen-Konsistenz sicherstellen - das heißt : es wird immer wieder vorkommen, dass du in einer Reihe von korrekten Werten einen "uralten" Vorgängerwert mit drin haben wirst (oder sogar mehrere).

    Gruß
    Larry

Ähnliche Themen

  1. WinCC Flexible 2008 - Symbole sind inaktiv
    Von Harry_99 im Forum HMI
    Antworten: 17
    Letzter Beitrag: 03.03.2014, 15:08
  2. Antworten: 1
    Letzter Beitrag: 25.04.2013, 19:48
  3. Antworten: 4
    Letzter Beitrag: 10.03.2013, 16:33
  4. Antworten: 3
    Letzter Beitrag: 18.09.2012, 08:06
  5. Antworten: 1
    Letzter Beitrag: 03.07.2007, 08:25

Lesezeichen

Berechtigungen

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