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

Ergebnis 1 bis 3 von 3

Thema: VbScript - Aktives Element erkennen?

  1. #1
    Registriert seit
    18.03.2013
    Ort
    Wittlich, RP
    Beiträge
    50
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute.

    Ich habe folgendes vor:

    Ich habe 52 EA Felder, die ich "gegeneinander" prüfen möchte.
    Wenn der eingegebene Wert = einem Wert ist, der schon vorhanden ist färbe beide hintergründe ein.
    D.h. bei abgeschlossener Eingabe soll das Script ausgeführt werden nach diesem Prinzip:
    var steht hier stellvertretend für den variablennamen ohne index

    Code:
    Dim tmp, aktivesElement, pruefElement
    
    for tmp = 1 to 52
    
               Set aktivesElement = HmiRuntime.Screens("Bild").ScreenItems("aktivesElement")
               Set pruefElement = HmiRuntime.Screens("Bild").ScreenItems("pruefElement")
    
                    if aktivesElement = SmartTags("var" & tmp) then
                              aktivesElement.backColor = rgb(255,0,0)
                              pruefElement.backColor = rgb(255,0,0)
                    end If
    
    next

    folgende Probleme habe ich: das aktive und pruef Element kann ich nicht erfassen, da das Script quasi global sein soll.

    ich müsste also herausfinden, mit welcher variable das script arbeiten soll.
    zudem kann ich ein via Set definiertes Element nicht mit einem laufindex verknüpfen.
    dazu bräuchte ich ein wenig hilfe

    vielen dank

    sven
    Zitieren Zitieren VbScript - Aktives Element erkennen?  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    du mußt für so etwas allerdings schon die Namen deiner Objekte auf dem jeweiligen Bild kennen - diese Namen mußt du ja ScreenItems übergeben.
    Mein Vorschlag wäre hier : du gibst den relevanten Bildelementen statt dem vom System automatisch vergebenen Namen einen eigenen Namen (das könnte z.B. auch Eingabe_01 bis Eingabe_52 werden). Nun könntest du mit dem Script gezielt suchen - vielleicht in etwa so :
    Code:
    for ae = 1 to 52
       Set aktivesElement = HmiRuntime.Screens("Bild").ScreenItems("Eingabe_"+right(str(100+ae),2))
       for pe = 1 to 52
          Set pruefElement = HmiRuntime.Screens("Bild").ScreenItems("Eingabe_"+right(str(100+pe),2))
    
          // und nun dein Vergleich - allerdings an den Eigenschaften des adressierten Objektes
       next
    next
    Gruß
    Larry

  3. #3
    Registriert seit
    18.03.2013
    Ort
    Wittlich, RP
    Beiträge
    50
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey Larry.
    bin leider erst gerade dazu gekommen, aber irgendwie akzeptiert mein wincc flex das string replace nicht.
    der kringelt str ein.... und in der hilfe finde ich keine syntax um es zu korrigieren.


    gruß sven

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 22.11.2013, 22:23
  2. Antworten: 2
    Letzter Beitrag: 25.06.2012, 12:49
  3. aktives Zweidraht-Signal an ET200S 2 AI 4 WIRE
    Von SPSKiller82 im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 02.04.2011, 17:16
  4. Aktives Signal (4DMU) an ET200S (2DMU)
    Von Peter31 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.01.2010, 19:01
  5. Antworten: 2
    Letzter Beitrag: 27.08.2008, 00:32

Lesezeichen

Berechtigungen

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