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

Ergebnis 1 bis 8 von 8

Thema: WinCC 7 - Variablen immer zyklisch aktualisieren

  1. #1
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Weiß jemand wie man WinCC dazu bringen kann bestimmte Variablen immer zyklisch zu aktualisieren, auch wenn das Bild in dem diese angezeigt werden nicht aufgerufen ist?

    Ich habe nämlich Variablen die ich über SNMP und Simatic Net OPC-Server von diversen Netzwerkgeräten abfrage. Für die ganzen Geräte habe ich mir eine schicke Übersichtsseite gebaut in dem die Daten angezeigt werden. Jetzt ist es aber so, dass es beim ersten Aufrufen der Seite fast 10 Sekunden dauert bis die Variablenwerte angezeigt werden. Das sieht natürlich äußerst unschön aus.
    Beim OPC-Server kann man dahingehend nichts einstellen, und in WinCC läuft alles über den Zyklus in den Prozessbildern.
    Wenn ich ein paar SNMP Daten mit dem OPC Scout abfrage dauert die Aktualisierung auch nicht so extrem lange.

    Ich möchte ungern irgendwelche Skripte schreiben die zyklisch diese Variablen abfragen.
    Zitieren Zitieren WinCC 7 - Variablen immer zyklisch aktualisieren  

  2. #2
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.480
    Danke
    1.141
    Erhielt 1.241 Danke für 973 Beiträge

    Standard

    Lies die Variablen in einem Script ein und ruf dieses Script einfach mit einem zyklischem Trigger auf.
    Ob es mit OPC geht kann ich allerdings nicht sagen.

    Gruß
    Dieter

  3. #3
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Skript wollte ich ja eigentlich vermeiden, nur wenns nicht anders geht.

    Ich habe den Eindruck als ob die Verbindung zum OPC-Server nach einiger Zeit des Nichtgebrauchs wieder komplett abgebaut wird, und dann der Neuaufbau so lange dauert.
    Denn die Variablenaktualisierung dauert nicht nur beim Erstaufruf des Bildes so lange, sondern ebenfalls wenn man ein paar Stunden das Bild mit den Variablen nicht aufgerufen hat, und dann wieder aufruft. Bei Wertanzeigen die den Variablenstatus auswerten steht dieser nämlich so lange auf "schlecht".

  4. #4
    Registriert seit
    27.10.2009
    Beiträge
    317
    Danke
    0
    Erhielt 64 Danke für 54 Beiträge

    Standard

    Meine Vermutung ist das WinCC die OPC Variablen "abmeldet" wenn das Bild nicht angezeigt wird. Bei erneuter Bildumschaltung zurück auf das Bild mit den OPC Variablen, werden diese (mit AddItem) beim OPC Server wieder neu in eine (aktive) Gruppe hinzugefügt, vermutlich auch noch einzeln einer nach dem anderen. Nun kommen zwei Probleme zutage a) der Server muss warten (jeweils um UpdateRate) um den Client notifizieren zu dürfen, dies sieht man meist daran das "QualityBadInitialValue" nacheinander einzeln nach "Good" wechselt da die Werte nacheinander reintröpfeln und b) der Server gezwungen wird den "Pollzyklus" auf das unterlagerte SNMP sukkzesive aufzubauen und nicht in einem Rutsch.

    Um das Problem a) zu beheben gibt es (oder gab es zumindest mal) einen Schalter in einem Konfigurations.ini File des OPC Servers, mit dem man das "verzögern" von Initialen-DataChange-Callbacks, um jeweils die UpdateRate einzuhalten, abschalten konnte. Damit wird quasi das "Verhalten" des Servers beim (ersten) DataChange-Callback versenden verändert. Der Server sendet - nach frischem Hinzufügen in die Gruppe - den ersten Callback "sofort" auch ohne die Updaterate der Gruppe einzuhalten. Dieses Verhalten ist streng genommen nicht "konform" zur OPC Spezifikation, und dahher auch defaultmäßig abgeschaltet.

    Um Problem b) zu beheben gibt es keine Lösung, hier kann man nur hoffen dass der OPC Server und das SNMP "schnell" genug sind beim Aufbau des Request, denn man kann nicht verhinden das ein Client "einzeln" hunderte Items nacheinander in eine aktive Gruppe einfügt. Der Server ist aber "gezwungen" sofort zu versuchen die Werte für diese Items zu beschaffen. Daher sollte ein Client das "AddItems" immer nur auf eine "inaktive" Gruppe ausführen, und erst wenn alle drin sind die Gruppe abschließend "aktiv" schalten.
    Geändert von Dr. OPC (27.03.2013 um 21:50 Uhr)

  5. Folgende 2 Benutzer sagen Danke zu Dr. OPC für den nützlichen Beitrag:

    Ottmar (27.03.2013),Thomas_v2.1 (27.03.2013)

  6. #5
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Ich habe vor einer Woche mir erstmal mit einem Skript beholfen. Da ich dort nicht alle SNMP-Variablen eintragen wollte, habe ich immer eine Variable von einem Netzwerkgerät (&ping) genommen. Hat aber nicht wirklich geholfen, zumindest die anderen SNMP-Variablen brauchen immer noch lange bis der Wert da ist.

    Mit deiner Erklärung ergibt das ja auch Sinn, wenn die anderen Variablen trotzdem abgemeldet werden.

    Ich habe es schon fast als "Systemeigenschaft" abgeschrieben (Siemens Bezeichnung für Softwarefehler). Aber das mit der ini-Datei behalte ich im Hinterkopf, falls der Kunde bei der Abnahme meckern sollte.

  7. #6
    Registriert seit
    27.10.2009
    Beiträge
    317
    Danke
    0
    Erhielt 64 Danke für 54 Beiträge

    Standard

    Und noch eins habe ich vergessen, das hier vorgeschlagene Script kann in sofern helfen, dass es (wenn permanent aufgerufen) quasi verhindert das WinCC die Items beim OPC Server abmelden kann. Ebenso würde es übrigens helfen alle OPC Items des Bildes auch (zusätzlich) ins TagLogging aufzunehmen, denn auch dadurch wird "erzwungen" dass sie am OPC Server angemeldet bleiben, selbst wenn das Bild weggeschaltet wird, werden die Werte ja zum loggen weiterhin in der Gruppe belassen (loggen bei Änderung, versteht sich) weil sie immer noch benötigt werden. Ich setze natürlich voraus das beim Bild und beim Tagloggin die selbe UpdateRate konfiguriert wird und somit WinCC-Client im SimaticNET-OPC-Server für Bild und Logging nur EINE Gruppe anlegt.

    Ja ich gebe zu das ist mit Kanonen auf Spatzen geschossen, aber so ist es nun mal.
    Geändert von Dr. OPC (27.03.2013 um 22:07 Uhr)

  8. #7
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Ich lasse mein Skript alle 10 Sekunden aufrufen. Im Bild ist der Aktualisierungszyklus aber 2 Sekunden. Kann es dann sein dass die Variablen am OPC-Server dadurch in verschiedenen Gruppen angemeldet werden?

    Taglogging ist schlecht, kostet ja Geld zumindest wenn ich 100 Archivvariablen für nix verschwende...

  9. #8
    Registriert seit
    27.10.2009
    Beiträge
    317
    Danke
    0
    Erhielt 64 Danke für 54 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das mit dem Skript ist nicht so einfach, a) kommt es darauf an welche Funktion du aufrufst z.B. GetTagMultiWait, löst nur einen Read aus, es wird keine Gruppe angelegt und auch keine Items, soweit ich mich erinnere. b) ist natürlich die UpdateRate wichtig, für jede unterschiedliche legt der WinCC-Client eine neue Gruppe an und stellt die UDR ein. Der ganze Wahnsinn funktioniert also nur wenn du "zufällig" überall die selbe UDR hast und somit alles in einer Gruppe landet.

    Also Script ist schlecht und Taglogging auch, ging mir nur ums Prinzip zu erklären. Ich würde den Schalter im ini File des SimaticNET Servers suchen (ich bin nicht sicher ob es den im SNMP gab, sinnvoll wäre er global für den ganzen OPC Server, wenn ich so drüber nachdenke).

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 07.05.2012, 23:48
  2. WINCC RT7.0 Variablen aktualisieren?
    Von Aboden im Forum HMI
    Antworten: 2
    Letzter Beitrag: 30.07.2011, 17:13
  3. Variablenwert immer aktualisieren...
    Von schnecke im Forum HMI
    Antworten: 10
    Letzter Beitrag: 12.08.2010, 10:16
  4. Antworten: 11
    Letzter Beitrag: 17.07.2009, 11:09
  5. Antworten: 0
    Letzter Beitrag: 12.07.2006, 11:06

Lesezeichen

Berechtigungen

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