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

Seite 2 von 6 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 51

Thema: WinCC flexible: Indirekte Adressierung innerhlab eines Skriptes / Schleife

  1. #11
    Registriert seit
    12.05.2007
    Beiträge
    416
    Danke
    14
    Erhielt 45 Danke für 40 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Markus und LL.

    Fast richtig! Schaut euch mal das an...
    http://www.sps-forum.de/showthread.php?t=25678

  2. Folgender Benutzer sagt Danke zu xhasx für den nützlichen Beitrag:

    Markus (19.01.2010)

  3. #12
    Registriert seit
    12.05.2007
    Beiträge
    416
    Danke
    14
    Erhielt 45 Danke für 40 Beiträge

    Standard

    So in etwa sieht das bei mir aus...

    Code:
     
    Dim AblaufDatensatzArray(500)
     
    ' A B L A U F     
    'Alle Daten in eine Interne Struktur kopieren! Dann die Interne der 'Externen Struktur zuweisen damit nur einmal die Verbindung zur Stuerung 'belastet wird   
    
    For i = 0 To (UBound(AblaufDatensatzArray)-1)
        AblaufDatensatzArray(i) = SmartTags("xyz")(i)
    Next
    
    SmartTags("SteuerungArray") = AblaufDatensatzArray

  4. Folgender Benutzer sagt Danke zu xhasx für den nützlichen Beitrag:

    Markus (19.01.2010)

  5. #13
    Avatar von Markus
    Markus ist offline Administrator
    Themenstarter
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.811
    Danke
    1.231
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    so ganz begriffen habe ich es noch nicht...

    du kopirst die variablen der sps in einer schleife in das lokale array im skript?

    also variable für variable?

    die müssen auf ständig lesen sein wel sie ja indirekt sind?


    und wie siht das dann am ende aus?
    sollte doch auch wieder ne schleife zum umkopieren her, zumindest verstehe ich das hier nicht:

    SmartTags("SteuerungArray") = AblaufDatensatzArray



    bzw. ich verstehe es schon, aber sollte es dann am anfang nicht auch gehen? wozu dann die schleife?

    bei mir ist das mit der zuweisng des array etwas blöd.
    in der sps ist das ein array of udt.
    ich brauche aus jedem udt aber nur bestimmte werte, wenn ich den kompletten array of udt hochkopiere, müssen ja mehrere variablen kpert werden.

    aber mit weniger verbindungen, da sonst die schleife für jede variable eine neue verbindung auf machen muss? habe ich das so verstanden?

    danke euch!
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  6. #14
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Hallo Markus,
    der Trick an dieser Stelle ist, dass es für die Visu deutlich einfacher ist, einen kompletten Datenblock zu laden (auch wenn er eine Menge unbenötigte Informationen enthält) als Variable für Variable einzeln - daß müßte im Grunde auch Rainer (Hönle) bestätigen können.

    Warum xHasx erst Einzel-Elemete in sein Temp-Array schreibt habe ich auch nicht richtig verstanden. Entscheidend bei der Array-Kopiererei ist aber ein identischer Aufbau - deshalb mein Hinweis "wie bei SCL".

    Gruß
    LL

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

    Markus (20.01.2010)

  8. #15
    Avatar von Markus
    Markus ist offline Administrator
    Themenstarter
    Registriert seit
    16.06.2003
    Ort
    88356 Ostrach
    Beiträge
    4.811
    Danke
    1.231
    Erhielt 1.101 Danke für 527 Beiträge

    Standard

    also die cpu kann je nach typ einen block bestimmter größe mit einer verbindung übertragen, das sind irgendwas mit so ca. 250byte soweit ich weiß (bin mir da aber nicht sicher!). alles was innerhalb dieses blockes liegt kommt mit, somit brauche ich weniger verbindungen.
    aber ich ging da von aus das wincc flexible so schlau ist und das selber optimiert, also wenn ich auf mehrere variablen in einem block zugreife diese auch zusammen holt...

    kann ich in vb skript sowas wie einen udt anlegen? also das lokale array gleich definieren wie das in der sps? da muss ich doch dann die datentypen mit angeben.
    "Es ist weit besser, große Dinge zu wagen, ruhmreiche Triumphe zu erringen, auch wenn es manchmal bedeutet, Niederlagen einzustecken, als sich zu den Krämerseelen zu gesellen, die weder große Freude noch großen Schmerz empfinden, weil sie im grauen Zwielicht leben, das weder Sieg noch Niederlage kennt." Theodore Roosevelt - President of the United States (1901-1909)

  9. #16
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Hallo Markus,
    soweit ich sehen konnte kann man in VB-Script (bei Siemens) keine TYPE's deklarieren. Es geht also nur mit ARRAY's gleichen Datentyp's - hier möglicherweise (das habe ich noch nie probiert) mit eindimensionalen ARRAY's ... Sorry ...

    Gruß
    LL

  10. #17
    Registriert seit
    12.05.2007
    Beiträge
    416
    Danke
    14
    Erhielt 45 Danke für 40 Beiträge

    Standard

    Sorry bin spät dran!

    Ich muss gestehen dass es sich bei mir zuerst um Interne Variablen Handelt. Hier muss man Variablen in ner Schleife kopieren (anders hat es bei mir nicht funktioniert).
    Auf das Externe Variablenarry kann man dann mit = zuweisen.

    Ich lass mich aber gerne eines besseren belehren - mich würd's auch freuen wenn ich die Zählschleife nicht brauchen würde!!!

  11. #18
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Idee

    Hi,
    nur mal am Rande: muss man sich irgendwelche Gedanken darüber machen, wie die Variablen gelesen/aktualisiert werden(im Script, nicht als Variable allegemein, zyklisch usw.!)? Es gibt da einige Methoden:

    Dim Var1
    Set Var1 = HMIRuntime.Tags("BlaBla").Read

    If Var1.Value = 5 then.........

    Oder:
    Set Var1 = HMIRuntime.Tags("BlaBla")
    Var1.Read
    Var1.Value = 666
    Var1.Write

    Kann man diesbezüglich Etwas optimieren?

    Gruss: V.
    ______________________________________
    relax, take it easy
    Zitieren Zitieren VB Script..  

  12. #19
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    der Trick an dieser Stelle ist, dass es für die Visu deutlich einfacher ist, einen kompletten Datenblock zu laden (auch wenn er eine Menge unbenötigte Informationen enthält) als Variable für Variable einzeln - daß müßte im Grunde auch Rainer (Hönle) bestätigen können.
    So ganz pauschal stimmt das nicht. Es hängt davon ab, wie groß die Lücken sind, die mitgelesen werden. Bei kleinen Lücken (ca. 10 Bytes) ist es auf jeden Fall besser, diese mitzulesen. Bei großen Lücken hängt es davon ab, wie groß die Anfrage bereits ist. Ist diese gering, dann nicht mitlesen. Ist diese schon relativ voll, dann mitlesen. Im AGLink gibt es hierzu spezielle Optimierungsfunktionen, die genau dies erledigen und eine für die SPS optimale Anfrage zusammenstellen.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  13. #20
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Rainer:
    Als hoch-wissenschaftlich sollte meine Aussage hier auch nicht verstanden werden. Ich weiß, dass verschiedenene Link-Tool's (ich nenne das hier mal so) den Datenverkehr recht unterschiedlich handhaben ... und ich weiß, dass sich Siemens hier in Sachen Optimierung nicht unbedingt viel Mühe gegeben hat - ich kann meißtens eine Profilkurve mit 200 REAL's schneller einlesen/aktualisieren als 10 Einzel-Variablen beliebigen Typ's, die ein bißchen verstreut sind.
    Mein Verweiß hier auf dich/euch sollte sich eher auf die Kenntnis des genauen Protokolls im Hintergrund für die Abfrage von Variablen von der SPS beziehen ...

    Gruß
    LL

Ähnliche Themen

  1. WinCC - indirekte Adressierung
    Von georg_demmler im Forum HMI
    Antworten: 3
    Letzter Beitrag: 17.04.2011, 10:11
  2. Indirekte Adressierung
    Von Rainer im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 21.05.2008, 15:07
  3. Antworten: 29
    Letzter Beitrag: 11.06.2007, 22:21
  4. Indirekte Adressierung eines Pointers
    Von merlin im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 12.04.2007, 13:30
  5. indirekte Adressierung eines Datenbausteins
    Von linax im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 20.11.2003, 17:12

Lesezeichen

Berechtigungen

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