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

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

Thema: Probleme mit VB-Script auf Panel

  1. #1
    Registriert seit
    06.07.2015
    Beiträge
    110
    Danke
    2
    Erhielt 9 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Tag.
    Zunächst einmal möcht eich um Entschuldigung bitten, falls dies der falsche Zweig für dieses Problem ist. Ich bin noch nicht lange hier...

    Zum Problem:
    Ich hab ein VB-Script geschrieben, mit dessen Hilfe eine Variable hochgezählt wird, die die Animation eines Objektes steuert. Als Zusatzfunktion soll eine Hilfsvariable (bool) steuern, ob auf halbem Wege eine Pause eingelegt wird. Die Übersetzung des Scriptes gibt keine Probleme, allerdings kann ich auf meinem Panel (TP900 Comfort) das Programm nicht laufen lassen. Wenn ich das Script starte (Schaltfläche), erhalte ich eine Meldung mit "Object required in Script!"
    Beide Variablen sind HMI-Variablen (keine Verbindung mit PLC)

    Hier der Text:

    Sub VBFunktion_1()
    If halt Is 1 Then // halt ist die Hilfsvariable (1= Pause vorgesehen)
    Do While fahrt<2500
    fahrt = fahrt +1 // fahrt ist die Variable für die Animation
    Loop
    Do While halt Is 1
    fahrt = fahrt // Pause bei der Hälfte, bis Schaltfläche betätigt wird
    Loop
    Do While fahrt<5000
    fahrt = fahrt +1 // Fahrt bis zum Ende
    Loop
    Else
    Do While fahrt<5000
    fahrt = fahrt +1 // wenn keine Pause vorgesehen ist, Fahrt bis zum Ende
    Loop
    End If
    End Sub


    Die Syntax ist vom Programm erzeugt, die KOmmentare sind im Programm nicht vorhanden und sind nachträglich eingefügt, demnach auch keine Fehlerquelle.

    Habt ihr Ideen, warum das Script nicht läuft?

    Grüße
    Januar
    If in doubt, set something on fire and restart.
    Zitieren Zitieren Probleme mit VB-Script auf Panel  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Auf HMI-Variablen muss mit SmartTags("...") zugegriffen werden.

    Wenn deine Variable "halt" heißt, dann
    If SmartTags("halt") Is 1 Then...

  3. #3
    Januar ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.07.2015
    Beiträge
    110
    Danke
    2
    Erhielt 9 Danke für 9 Beiträge

    Standard

    Löst das Problem leider nicht.

    Hätte mich ehrlich gesagt auch gewundert, da ich zuvor eine sehr schmale Version des gleichen Scripts hatte, die ohne SmartTags funktioniert hatte.

    P.S. Ich arbeite mit Tia Portal V13
    Geändert von Januar (07.08.2015 um 13:58 Uhr)
    If in doubt, set something on fire and restart.

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Mal abgesehen davon ist das mit der Do-While Schleife eine zur Animation nicht funktionierende Lösung, weil so lange das Skript läuft nichts anderes gemacht wird.
    Also musst du dir eh was komplett anderes überlegen.

  5. #5
    Januar ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.07.2015
    Beiträge
    110
    Danke
    2
    Erhielt 9 Danke für 9 Beiträge

    Standard

    Ich hab jetzt folgendes Script getestet:

    Sub
    Do while fahrt <5000
    fahrt = fahrt +1
    Loop
    End Sub

    FUnktioniert ohen Probleme, macht genau das, was es soll.
    If in doubt, set something on fire and restart.

  6. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Und was macht es?

  7. #7
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard

    Ja wenn du ein objekt hast dann musst du in dem Script das auch ansprechen.So ist es zumindest in WinCC.
    Das was du bewegst muss im Bild einen Namen haben.In WinCC kannst du dann ein Objekt erzeugen.Dem musst du dann mit Hochomma den Objektnamen aus dem Bild zuweisen.Das ist eine spezielle Syntax.

    Danach kannst du die Objekteigenschaften manipulieren.
    Reicht nicht:

    Script wird über zyklus aufgerufen(alle Sekunde)

    if wert >100;
    wert=1;
    end_if;

    wert= wert +1;

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

    Standard

    Hallo,

    der Casus Knacktus ist die Stelle " if halt is 1 then...".

    Der Operator "is" verlangt ein Objekt als Argument, und "1" ist keines.

    Besser ist eine dem Datentyp angepasste Syntax:
    + Wenn "halt" ein INT ist, dann "if halt = <Wert> then..."
    + Wenn "halt" ein Boolean ist, dann "if halt then...
    usw.

    Gruß, Fred


    PS: Ein Debugger hilft ungemein...
    Geändert von faust (07.08.2015 um 14:25 Uhr)

  9. #9
    Januar ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.07.2015
    Beiträge
    110
    Danke
    2
    Erhielt 9 Danke für 9 Beiträge

    Standard

    @faust: Ich hatte auch schon vermutet, dass es irgendwo an der if-Bedingung hing. Da ich aber noch keine Erfahrungen mit VB hab, kam mir der Gedanke nicht.
    Ich werds Montag gleich mal ausprobieren, dank dir erstmal

    @freaky: Ich will das Objekt ja nicht direkt mit dem Script bewegen. Das Script soll eine Variable erhöhen, an der die Bewegung des Objektes und potentiell noch andere Sachen hängen.

    Grüße,
    Januar
    If in doubt, set something on fire and restart.

  10. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.780
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Januar Beitrag anzeigen
    Ich hab jetzt folgendes Script getestet:

    Sub
    Do while fahrt <5000
    fahrt = fahrt +1
    Loop
    End Sub

    FUnktioniert ohen Probleme, macht genau das, was es soll.
    das kann ich mir eigentlich auch nicht vorstellen ...
    Wie schon von Thomas geschrieben : während ein Script läuft passiert nicht so schrecklich viel anderes. Es kann allerdings schon sein, dass du den Beginn-Wert und den End-Wert deiner Schleife als Animation siehst. Von dem dazwischen kannst du eigentlich nichts gesehen haben.
    Vielleicht bringst du doch mal etwas mehr Informationen rüber ...

    Gruß
    Larry

Ähnliche Themen

  1. Mit WinCC flex über CP auf Panel zugreifen
    Von al3x im Forum Feldbusse
    Antworten: 0
    Letzter Beitrag: 29.10.2014, 07:38
  2. Antworten: 2
    Letzter Beitrag: 06.03.2014, 08:38
  3. Antworten: 11
    Letzter Beitrag: 02.01.2014, 20:44
  4. Antworten: 2
    Letzter Beitrag: 09.08.2013, 09:00
  5. Antworten: 0
    Letzter Beitrag: 01.06.2012, 14:05

Lesezeichen

Berechtigungen

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