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

Ergebnis 1 bis 4 von 4

Thema: WinCC 7.3 - Performance C-Script

  1. #1
    Registriert seit
    14.06.2011
    Beiträge
    16
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo WinCC Experten,
    ich habe ein kleines WinCC Performance Problem bei dem ich nicht direkt die Ursache lokalisieren kann. Vielleicht habt Ihr eine Idee?
    System: Einplatzsystem WinCC 7.3 Update 8 – nicht S7 integriert und somit kein AS-OS Engineering
    Netzwerk: 5 S7-300 unterschiedlichster Art und Alters (angeschlossen über Onboard PN oder CP343) sowie eine S7-1500 (1516).

    Grundsätzlich habe ich den SPSen einen Analogwertbaustein mit dem ich eine Struktur füttere. In diesem sind Alarmwerte, Steuerbits usw. sowie als String dass BMK („+47-4A5“), die SPS Adresse („EW345“) sowie eine kurze Beschreibung („Temp. Zone 1“) hinterlegt.
    In WinCC habe ich diese Struktur ebenfalls angelegt und die Daten werden korrekt ausgelesen.
    Nun habe ich mir in WinCC ein Anwenderobjekt gebaut in dem ich die Beschreibung sowie den Prozesswert anzeigen lasse. Idee war, dem Anwenderobjekt den Namen des BMKs zu geben (+47-4A5) und über zwei kleine Scripte automatisch den Messwert sowie die Beschreibung anzeigen zu lassen. Somit reduziert sich der Projektierungsaufwand auf ein Minimum.
    Als Trigger habe ich den „Bildzyklus“ genutzt. Das Ganze Funktioniert auch (keine Meldungen in APDiag)!
    Das Problem:
    Befinden sich viele Objekte (>10) auf einem Bild dauert das Anzeigen der Beschreibung sowie des Messwerts sehr lange. Gefühlt würde ich sagen, dass dies nur bei den „alten“ 300er SPSen mit CP auftritt. Kann es sein, dass die Script-Engine erst „neue“ Werte aus der Steuerung abfragt? (Die CP Anbindung ist ja definitiv die Langsamste.) Eigentlich sollte dies ja nur bei den „GetTagWait“ Abfragen geschehen?

    Unten ist der Code des Anwenderobjektes sowie der Projektfunktion zu finden. Vielleicht habt Ihr noch eine gute Idee?

    Vorab schonmal vielen Dank.
    Gruß

    Code:
    Script an Ausgabewert des Anwenderobjektes:
    
    
    #include "apdefap.h"
     double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
    {
        return BIB_Analog_Faceplate_Wert(lpszPictureName, lpszObjectName, lpszPropertyName);
    }
    Code:
    Globale Projektfunktion:
    
    
    double BIB_Analog_Faceplate_Wert(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
    {
    #define Struct_Part  "._9_Prozesswert"
    
    
    char* pszProp= NULL;       //Temporäre Variable für die Eigenschaft "ObjectName" 
    
    
    char BMK[100] = '\0';      //Temporäre Variable für das BMK
    
    
    char tagname[255] = '\0';  //Temporäre Variable für den Variablennamen
    
    
    //Get the property Text
    pszProp = lpszObjectName;
    
    
    //Check if valid Pointer
    if(pszProp != NULL)
        {
        
          //BMK Auslesen
          strncpy(BMK, pszProp, 100);
    
    
          //Variablennamen zusammenführen und Prozesswert auslesen
          strcat(tagname, BMK);
          strcat(tagname, Struct_Part);
          return GetTagFloat(tagname);
        
          }
    return  -1.0;
    }
    Geändert von dariyos (15.06.2016 um 12:00 Uhr)
    Zitieren Zitieren Gelöst: WinCC 7.3 - Performance C-Script  

  2. "
    Zitat Zitat von Egon88 Beitrag anzeigen
    Code:
         //Variablennamen zusammenführen und Prozesswert auslesen
          strcat(tagname, BMK);
          strcat(tagname, Struct_Part);
          return GetTagFloat(tagname);
    Sowas ist halt immer ein bisschen ein Problem...
    Zitat Zitat von Egon88 Beitrag anzeigen
    Befinden sich viele Objekte (>10) auf einem Bild dauert das Anzeigen der Beschreibung sowie des Messwerts sehr lange. Gefühlt würde ich sagen, dass dies nur bei den „alten“ 300er SPSen mit CP auftritt. Kann es sein, dass die Script-Engine erst „neue“ Werte aus der Steuerung abfragt? (Die CP Anbindung ist ja definitiv die Langsamste.) Eigentlich sollte dies ja nur bei den „GetTagWait“ Abfragen geschehen?
    In dem Fall nicht. Ich nehme an die Tags die du im dem Script-Teil abfragst werden im Bild sonst nirgens "statisch" verwendet oder?
    Somit erfährt WinCC erst in der Laufzeit dass du diesen Tag brauchst und dieser zur Aktualisierung bei der SPS angemeldet werden muss.

    Dieses Problem hat mir Thomas hier schon mal ausführlich erklärt.
    http://www.sps-forum.de/hmi/68190-wi...variablen.html

    Aber ob das bei >10 Float-Werten schon ausreicht um die Sache langsam wirken zu lassen? Klar geht die Sache über lahme CPs, aber...
    Du könntest es zumindest leicht testen im dem du die Variablen, welche in den Skripten dynamisch geholt werden, einfach mal in ein paar E/A-Felder einfügst und diese ins Bild legst."


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

    Standard

    Warum denn Bildzyklus?
    Solche Texte ändern sich doch "seeeehr langam", also ich würde da was in der Art von 1 Stunden Zyklus einstellen. Aber egal was für einen Zyklus du einstellst, bei einem Bildwechsel wird normalerweise immer eine aktuelle Anfrage an die SPS abgesetzt, außer Siemens hat an diesem Verhalten bei der V7.3 etwas geändert (bis V7.2 ist es so).
    Ich habe noch nicht überprüft was der "Bildzyklus" auf SPS-Seite so treibt da ich diesen selber nie verwende. Evtl. verstopft er durch einen zu kleinen Zyklus die restliche Kommunikation.

    Strings aus der SPS lesen sind von der Performance immer recht bescheiden. Gerade bei der voreinsgestellten 254 Byte Stringlänge nehmen da beispielsweise 10 Strings in etwa so viel Bandbreite in Anspruch wie eine komplette mittlere Anlage.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  4. #3
    Registriert seit
    30.11.2008
    Ort
    Baesweiler
    Beiträge
    830
    Danke
    255
    Erhielt 120 Danke für 87 Beiträge

    Standard

    Schau dir doch einfach in der Channel Diagnose die Queue Depth und so Werte an,
    daran kann man gut sehen was die Leitung verstopft
    gruss Markus

  5. #4
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.347
    Danke
    451
    Erhielt 691 Danke für 516 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Egon88 Beitrag anzeigen
    Code:
         //Variablennamen zusammenführen und Prozesswert auslesen
          strcat(tagname, BMK);
          strcat(tagname, Struct_Part);
          return GetTagFloat(tagname);
    Sowas ist halt immer ein bisschen ein Problem...
    Zitat Zitat von Egon88 Beitrag anzeigen
    Befinden sich viele Objekte (>10) auf einem Bild dauert das Anzeigen der Beschreibung sowie des Messwerts sehr lange. Gefühlt würde ich sagen, dass dies nur bei den „alten“ 300er SPSen mit CP auftritt. Kann es sein, dass die Script-Engine erst „neue“ Werte aus der Steuerung abfragt? (Die CP Anbindung ist ja definitiv die Langsamste.) Eigentlich sollte dies ja nur bei den „GetTagWait“ Abfragen geschehen?
    In dem Fall nicht. Ich nehme an die Tags die du im dem Script-Teil abfragst werden im Bild sonst nirgens "statisch" verwendet oder?
    Somit erfährt WinCC erst in der Laufzeit dass du diesen Tag brauchst und dieser zur Aktualisierung bei der SPS angemeldet werden muss.

    Dieses Problem hat mir Thomas hier schon mal ausführlich erklärt.
    WinCC V7.2 C-Skript Performance beim ersten lesen von 150 String-Variablen

    Aber ob das bei >10 Float-Werten schon ausreicht um die Sache langsam wirken zu lassen? Klar geht die Sache über lahme CPs, aber...
    Du könntest es zumindest leicht testen im dem du die Variablen, welche in den Skripten dynamisch geholt werden, einfach mal in ein paar E/A-Felder einfügst und diese ins Bild legst.
    Geändert von RONIN (04.06.2016 um 09:35 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 20.11.2014, 12:24
  2. WinCC 7 Performance Variablen-Trigger
    Von Krumnix im Forum HMI
    Antworten: 1
    Letzter Beitrag: 25.09.2013, 08:43
  3. Antworten: 2
    Letzter Beitrag: 03.07.2012, 08:33
  4. Antworten: 0
    Letzter Beitrag: 10.11.2011, 10:55
  5. Antworten: 15
    Letzter Beitrag: 29.08.2010, 11:28

Stichworte

Lesezeichen

Berechtigungen

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