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

Ergebnis 1 bis 9 von 9

Thema: WinCC VBA Skript kennt Befehle nicht

  1. #1
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebes Forum,

    ich habe WinCC flexible 2008 und Runtime SP3, V1.4.0.0_1.16.0.16

    ich habe mir ein kleines Skript zusammengeschrieben um TXT-Files zu verarbeiten und verschiedene Werte in interne Variablen abzuspeichern.
    Es funktioniert soweit recht gut.
    Daraufhin wollte ich ein paar spielerein einbauen...MessageBox, ErrorHandling und so weiter.

    Jedoch stehe ich jetzt vor dem Problem, dass anscheinend gewisse Anweisungen nicht verarbeitet werden können.
    Manche Anweisungen sind rot bzw. blau unterstrichen. Bei der As-Klausel wird das "As" rot unterstrichen und die MsgBox ist blau unterstrichen.

    Es wird auch die Sprungmarke der Goto-Funktion nicht als Sprungmarke erkannt und ist rot unterstrichen

    Die Syntax müsste eigentlich stimmen.
    [CODE][

    Dim oldPath As String

    MsgBox ("Fehler")

    On Error Goto errhandl


    errhandl:

    /CODE]

    Gibt es da Probleme mit der Version oder habe ich etwas vergessen aufzurufen?

    mfg
    Kapo
    Zitieren Zitieren WinCC VBA Skript kennt Befehle nicht  

  2. #2
    Registriert seit
    21.12.2006
    Ort
    Wiener Neustadt
    Beiträge
    931
    Danke
    154
    Erhielt 169 Danke für 127 Beiträge

    Standard

    Guten Morgen, mittels der SuFu kommt folgendes:
    Abfragebox bei WinCC flexible 2008

    Daraus der 2. Beitrag:

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    eine MessageBox, wie du sie ggf. von MS kennst hat Flex nicht. Das Einzige, was du aus meiner Sicht machen kannst ist mit der Taste z.B. einen Merker setzen, der macht ein weiteres Bildobjekt sichtbar, z.B. einen (oder 2) zusätzliche Button und der Ja-Button würde dann die Funktion ausführen, der Nein-Button einfach nur die Sichtbarkeit zurücksezten ...
    Deiner weiteren gestalterischen Fantasie sind hier natürlich keine Grenzen gesetzt (vielleicht machst du das sogar als Bildbaustein).

    Gruß
    Larry
    Gruß
    M

    Handbook not read error...
    Klare Frage - klare Antwort

  3. Folgender Benutzer sagt Danke zu Manfred Stangl für den nützlichen Beitrag:

    kapo666 (16.02.2015)

  4. #3
    Registriert seit
    17.10.2007
    Beiträge
    263
    Danke
    5
    Erhielt 52 Danke für 48 Beiträge

    Standard

    Hallo kapo,

    WinCC flex und Comfort/Advanced können nur einen eingeschränkten Befehlssatz von VBS (nicht VBA), eine MessageBox und ErrorHandling gehören nicht dazu.

    Gruß, Fred

  5. Folgender Benutzer sagt Danke zu faust für den nützlichen Beitrag:

    kapo666 (16.02.2015)

  6. #4
    kapo666 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Danke für die Antworten.

  7. #5
    Registriert seit
    27.10.2006
    Ort
    Plauen
    Beiträge
    374
    Danke
    107
    Erhielt 13 Danke für 11 Beiträge

    Standard

    Mit Hilfe eines Skiptes lassen sich unter WinCC flexible aber dennoch einfache Pop-Fenster im Windows-Stile erzeugen und die gedrückten Tasten auswerten.

    Code:
    'title: PopUp Fenster'owner: 
    'date: 01.02.2011
    'purpose:   
    ' Zeigt eine Meldung in einem Dialogfeld an, wartet darauf, dass der Benutzer auf eine Schaltfläche klickt,
    ' und gibt einen Wert zurück, der anzeigt, auf welche Schaltfläche geklickt wurde.
    '
    'Syntax
    ' intButton = MyShellObject.Popup(strText,[nSecondsToWait],[strTitle],[nType]) 
    '
    'Arguments
    ' strText : String, für den Text in der Pop-UP Box
    '
    ' nSecondsToWait : Zeit in Sekunden wie lange die Box angezeigt wird ohne
    ' das der Anwender auf einen Button klickt
    ' (Optionale Angabe, default = unbegrenzt)
    '
    ' strTitle : String, für die überschrifte der Pop Up Box (Optional) 
    '
    ' nType : Welche Buttons und Info-Icons angezeigt werden (Optional, Zahl)
    '
    ' IntButton : Rückgabewert der MsgBox welcher Button gedrückt wurde (Integer Wert) 
    '
    'Hier sind die Tabellen für die meisten einstellungen
    '
    'Button Typ
    '
    ' Wert Beschreibung 
    ' 0 Nur OK
    ' 1 OK und Abbrechen 
    ' 2 Abbruch, Wiederholen und Ignorieren 
    ' 3 Ja, Nein und Abbrechen
    ' 4 Ja und Nein
    ' 5 Wiederholen und Abbrechen 
    ' 
    'Icon Typ
    ' 
    ' Wert Beschreibung 
    ' 16 Stop (Meldung für kritische Fehler) 
    ' 32 Warnung mit Abfrage
    ' 48 Warnung 
    ' 64 Informationsmeldung
    '
    'Rückgabe der betätigten Button's
    '
    ' Wert Beschreibung 
    ' -1 kein Button wurde betätigt, Eingabezeit abgelaufen
    ' 1 OK 
    ' 2 Abbrechen 
    ' 3 Abruch
    ' 4 Wiederholen 
    ' 5 Ignorieren 
    ' 6 Ja 
    ' 7 Nein
    '
    ' 4096 = nicht schliessbar...
    
    
    Dim Obj, PopUpErgebnis, Titel, Meldetext, ButtonType, IconType
    
    
    Titel= "Titel"
    Meldetext = "Text"
    ButtonType = 4
    IconType = 64
    
    
    ' Pop up
    Set Obj = CreateObject("WScript.Shell")
    PopUpErgebnis = Obj.Popup (Meldetext,-1 , Titel, ButtonType + IconType + 4096)
    If PopUpErgebnis = 6 Then 
                    ShowSystemAlarm("Ja gedrückt...")
    End If
    If PopUpErgebnis = 7 Then 
                    ShowSystemAlarm("Nein gedrückt...")
    End If 
                    
    Set Obj=Nothing
    Step7 V5.5 SP4 HF11
    TIA Portal V14
    WinCC flexible 2008 SP3
    WinCC 7.2 Update 10
    =======================

  8. #6
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.337
    Danke
    448
    Erhielt 688 Danke für 513 Beiträge

    Standard

    Muss halt beachtet werden dass Dinge wie MyShellObject.Popup die komplette Scripting-Runtime blockieren, so lange sie auf Antwort warten. Auch wenn's den nSecondsToWait-Parameter gibt, laufen sonst erst mal keine Skripte mehr.
    Ist also mit Vorsicht zu genießen.

    War laut Siemens auch einer der Hauptgründe warum MsgBox nicht integriert wurde.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  9. #7
    kapo666 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard

    hey grimsey, ronin

    danke für die Idee und den Tipp.

  10. #8
    Registriert seit
    15.10.2014
    Beiträge
    91
    Danke
    15
    Erhielt 18 Danke für 15 Beiträge

    Standard

    Hallo Gemeinde,

    die Krücke scheint bei den "neuen Comfort" Panel nicht mehr zu funktionieren.

    Code:
    Dim Obj, PopUpErgebnis, Titel, Meldetext, ButtonType, IconType
    
    Titel= "Titel"
    Meldetext = "Text"
    ButtonType = 4
    IconType = 64
    
    ' Pop up
    Set Obj = CreateObject("WScript.Shell")
    PopUpErgebnis = Obj.Popup (Meldetext,-1 , Titel, ButtonType + IconType + 4096)
    If PopUpErgebnis = 6 Then 
     ShowSystemAlarm("Ja gedrückt...")
    End If
    If PopUpErgebnis = 7 Then 
     ShowSystemAlarm("Nein gedrückt...")
    End If 
    
    If Err.Number <> 0 Then
     ShowSystemAlarm Err.Number & " " & Err.Description
    End If
    Ausgabe der Fehlerauswertung:
    • Fehler 'ActiveXcomponent can't create object: 'WScript.Shell'' in Script ...
    • 424 Object required



    Panel TP700 Comfort
    Runtime V13.0.1.4
    TIA Portal V13 SP1 Upd 4


    Lösungen?


    Stefan

  11. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die "Krücke" funktioniert nicht, weil es das "WScript.Shell"-Objekt nur gibt, wenn die WinCC flexible Runtime auf einem PC mit Windows XP/Vista/7... läuft. Jedoch nicht auf Panels mit Windows CE, Linux, ...

    Das Skript könnte funktionieren, wenn Du das TP700 in TIA ES simulierst, weil die RT-Simulation dann unter Deinem Windows läuft. Nützt allerdings nichts, da es auf dem Panel ja nicht geht.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. libnodave-Befehle funktionieren nicht, Sprache C, OS Linux
    Von wollerosekaufen im Forum Hochsprachen - OPC
    Antworten: 6
    Letzter Beitrag: 19.01.2014, 20:39
  2. WinCC Übersicht der Skribt-Befehle
    Von Fl0Bru im Forum HMI
    Antworten: 7
    Letzter Beitrag: 30.09.2013, 13:19
  3. Antworten: 2
    Letzter Beitrag: 27.04.2012, 09:29
  4. VBA: Warum wird die Excel-Datei nicht geschlossen?
    Von Jan im Forum Hochsprachen - OPC
    Antworten: 15
    Letzter Beitrag: 26.09.2010, 12:01
  5. daveReadBytes schreibt nicht in den Buffer (Excel VBA)
    Von Martin Glarner im Forum Hochsprachen - OPC
    Antworten: 20
    Letzter Beitrag: 02.12.2005, 10:21

Lesezeichen

Berechtigungen

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