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

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

Thema: Aktueller Bildname mit VBScript

  1. #1
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich möchte in einer Statusleiste in einem WinnCC flex Projekt (MP277) einen Text passend zum aktuellen Bild Schreiben.
    In der Vorlage habe ich ein EA Feld angelegt und als Anzeigevariable eine interne String Variable zugewiesen.

    Jetzt geht es mir darum in einem Script den aktuellen Bildnamen auszulesen und mit einem Switch oder if Konstrukt einen Text der internen Variablen zuzuweisen.
    Die Switch / if the... Geschichte werde ich als VBScript Neuling ohne Probleme hinbekommen. Was mir Sorgen macht ist die Abfrage woher ich komme, das heißt welche Taste ich gedrückt habe.
    Ich möchte nicht für jede Taste ein Script hinterlegen sondern alles über eins Organisieren.


    Über konstruktive Tips und Hilfestellungen würde ich mich sehr freuen!


    Gruß
    mkd
    Zitieren Zitieren Aktueller Bildname mit VBScript  

  2. #2
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.719
    Danke
    729
    Erhielt 1.159 Danke für 970 Beiträge

    Standard

    Wenn ich mich nicht täusche sollte man mit
    HmiRuntime.BaseScreenName
    den aktuellen Bildanamen heraus bekommen
    [EDIT]
    Ich habe wohl deine Frage nicht zu Ende gelesen

    Du wolltest ja was anderes wissen, muss ich also noch mal gucken
    [\EDIT]
    Geändert von marlob (23.10.2008 um 08:54 Uhr)

  3. #3
    Registriert seit
    24.10.2007
    Ort
    USA
    Beiträge
    815
    Danke
    3
    Erhielt 73 Danke für 57 Beiträge

    Standard

    Zitat Zitat von mkd Beitrag anzeigen
    Hallo,

    ich möchte in einer Statusleiste in einem WinnCC flex Projekt (MP277) einen Text passend zum aktuellen Bild Schreiben.
    In der Vorlage habe ich ein EA Feld angelegt und als Anzeigevariable eine interne String Variable zugewiesen.

    Jetzt geht es mir darum in einem Script den aktuellen Bildnamen auszulesen und mit einem Switch oder if Konstrukt einen Text der internen Variablen zuzuweisen.
    Die Switch / if the... Geschichte werde ich als VBScript Neuling ohne Probleme hinbekommen. Was mir Sorgen macht ist die Abfrage woher ich komme, das heißt welche Taste ich gedrückt habe.
    Ich möchte nicht für jede Taste ein Script hinterlegen sondern alles über eins Organisieren.


    Über konstruktive Tips und Hilfestellungen würde ich mich sehr freuen!


    Gruß
    mkd

    Ein Skript in dem Fall wäre nicht nötig........
    Du kannst in der Vorlage mehrere Textfelder (übereinander) projektieren
    Mit der Scihtbarkeit kannst du mit einer Variable (Var_Sps) aus der SPS
    den Text des akt. Bildes einblenden.
    Die Var_Sps (Wort) sollst du in Verbindungen-->Bereichzeiger-->Bildnummer projektieren
    Dadurch wird die aktuellle aufgeschlagene Bildnummer in die Steuerung übertragen.

    Die Hilfe zum Bereichzeiger kannst Du der Hotline-Doku entnehmen...
    Partys sind krass, am besten ist das Bier aus dem fränkischen Fass ...
    "Programming today is a race between the programmers and software engineers to create better
    and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
    the universe is winning". - Rich Cook

  4. #4
    mkd ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard

    Zitat Zitat von johnij Beitrag anzeigen
    Ein Skript in dem Fall wäre nicht nötig........
    Du kannst in der Vorlage mehrere Textfelder (übereinander) projektieren
    Mit der Scihtbarkeit kannst du mit einer Variable (Var_Sps) aus der SPS
    den Text des akt. Bildes einblenden.
    Die Var_Sps (Wort) sollst du in Verbindungen-->Bereichzeiger-->Bildnummer projektieren
    Dadurch wird die aktuellle aufgeschlagene Bildnummer in die Steuerung übertragen.

    Die Hilfe zum Bereichzeiger kannst Du der Hotline-Doku entnehmen...

    Hallo,

    das ist schon richtig, ich könnte ja auch mit Textlisten arbeiten.
    Ich möchte die Kommunikation mit der SPS Vermeiden, da ich das dann zusätzlich im S7 Programm integrieren muss.
    Ein Script könnte ich auch schneller in neue Projekte einbinden.
    Zusätzlich möchte ich mal was mit Scripten machen

  5. #5
    mkd ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard

    So, habe ein wenig herumgespielt.

    Mit:
    Code:
    'If    (HmiRuntime.ActiveScreen.ObjectName = "Bild_3") Then
        Bildname = "Behälter"
    End If
    Klappt es soweit. Wenn ich mit einer Taste Bild_3 aufrufe und mit der gleichen Taste im Loslassen Event das Script ausführe erscheint schonmal der Text.
    Leider muss ich aber dann zweimal drücken bis der richtige Text erscheint.

    Gibt es da so eine Art Verzögerung die ich am Anfang in das Script einbauen kann?

    Was mich auch noch stört: Bei allen Tasten (Bildaufruf) klappt es, nur bei einer Taste bekomme ich im Simulator immer folgende Meldung.

    "Objekt erforderlich HMI.Runtime.ActiveScreen wurde nicht behandelt."
    Warum nur bei der einen Taste?

  6. #6
    Registriert seit
    24.10.2007
    Ort
    USA
    Beiträge
    815
    Danke
    3
    Erhielt 73 Danke für 57 Beiträge

    Standard

    .
    Du kannst auch eine Var_intern projektieren.

    Beim Bild-Aufbau (Allegemein-->Ereignisse-->Aufgebaut) soll Var_Intern=Akt. Bildnummer
    Anschließend kannst Du Var_Intern im Skript einsetzen.........
    Partys sind krass, am besten ist das Bier aus dem fränkischen Fass ...
    "Programming today is a race between the programmers and software engineers to create better
    and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
    the universe is winning". - Rich Cook

  7. #7
    Registriert seit
    13.10.2007
    Beiträge
    12.038
    Danke
    2.790
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard

    ...es gebe auch noch die möglichkeit die Variablen übern den Aufgabenplaner zu bearbeiten. Da gibt es ein Ereignis "Bildwechsel",
    dieses Ereignis kann dann eine Funktion aufrufen die dann dein Script bearbeitet.
    So mußt du das nicht bei jedem Bild projektieren...

    gruss Helmut
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  8. #8
    mkd ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard

    @Helmut:
    Danke für den Tip! Genau so mache ich es jetzt. Ich lege eine Aufgabe Bildwechsel an und führe hier mein Script aus.

    Code:
    Select Case HmiRuntime.ActiveScreen.ObjectName
        Case "Bild_01"
            Bildname = "Übersicht"    
        Case "Bild_02"
            Bildname = "Entladung"
        Case "Bild_03"
            Bildname = "Behälter"
        Case "Bild_04"
            Bildname = "Entnahme"          
    End Select
    Klappt soweit wunderbar.
    Komischerweise kommt es bei Wechsel auf Bild_03 im Script zu dem Fehler:

    "Objekt erforderlich HMI.Runtime.ActiveScreen wurde nicht behandelt."

    Kann jemand mir da weiterhelfen?

    Gruß
    mkd

  9. #9
    Registriert seit
    13.10.2007
    Beiträge
    12.038
    Danke
    2.790
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard

    ...schau doch einmal nach ob du das Bild richtig bezeichnet hast....
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  10. #10
    mkd ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.12.2006
    Beiträge
    185
    Danke
    25
    Erhielt 26 Danke für 21 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ja, habe ich richtig bezeichnet. Das Problem habe ich bei mehreren Bildern.

    Stelle ich jetzt vor den Code
    Code:
    Dim objActiveScreen
    Set objActiveScreen = HmiRuntime.ActiveScreen
    
    'wenn ein Bild gefunden wurde
    If Not objActiveScreen Is Nothing Then
    ...
    End If
    Dann kommt es schon einmal nicht mehr zur VB Script Fehlermeldung.

    In der Hilfe steht dazu:
    "Wenn Sie in einem Skript die Eigenschaft "ActiveScreen" abfragen, so kann es z.B. aufgrund eines ScreenSavers vorkommen, dass die Eigenschaft kein gültiges "Screen"-Objekt sondern "Nothing" zurückliefert und eine Systemmeldung angezeigt wird."




    Toll, warum ist das dann bei manchen Bildern und bei anderen nicht?


    Es handelt sich um ein neues Projekt, also alles neue Bilder...

Ähnliche Themen

  1. Aktueller Stand der Technik - Kommunikation?
    Von ssound1de im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 14.08.2010, 21:47
  2. Bildname in Vorlage anzeigen
    Von RMLIF im Forum HMI
    Antworten: 4
    Letzter Beitrag: 11.06.2009, 16:59
  3. Aktueller Wochentag Date_and_Time
    Von bastler im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 28.10.2008, 18:40
  4. Antworten: 3
    Letzter Beitrag: 02.03.2006, 23:14
  5. WinCC Bildname auslesen
    Von hugolee im Forum HMI
    Antworten: 2
    Letzter Beitrag: 11.03.2004, 10:00

Lesezeichen

Berechtigungen

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